> > > iload "ex1-3.m"; Interactive-loading "ex1-3.m" > //Modular polynomials > p := 431; > F:= FiniteField(p, 2); > E:= EllipticCurve([F!26, F!379]); > E; Elliptic Curve defined by y^2 = x^3 + 26*x + 379 over GF(431^2) > IsSupersingular(E); true > j:= jInvariant(E); > R:=PolynomialRing(F, 2); > S:=PolynomialRing(F); > Phi3 :=R!ClassicalModularPolynomial(3); > f := Evaluate(Phi3, [j, Y]); f; Factorization(f); Y^4 + 428*Y^3 + 267*Y^2 + 190*Y + 117 [ , , , ] > N := [f[1] : f in Roots(Evaluate(Phi3, [j, Z]))]; > N; [ z^19698, 107, z^130638, 150 ] > Phi16 := R!ClassicalModularPolynomial(16); > f := Evaluate(Phi16, [j, Z]); > Factorization(f); [ , , , , , , , , , , , , , , ] > Roots(f); [ <0, 2>, <4, 1>, , <419, 2>, <234, 1>, <102, 2>, , <143, 2>, <19, 3>, <242, 2>, , , <356, 2>, <67, 1>, <189, 2> ] > primes := [ell : ell in [1..11] | IsPrime(ell)]; > primes; [ 2, 3, 5, 7, 11 ] > for ell in primes do for> Phi := R!ClassicalModularPolynomial(ell); for> print ell, Roots(Evaluate(Phi, [Z,Z])); for> end for; 2 [ <4, 1>, <242, 1>, <73, 2> ] 3 [ <0, 1>, <419, 2>, <125, 1>, <242, 2> ] 5 [ <4, 2>, <107, 2>, <419, 2>, <358, 1>, <19, 2>, <381, 1> ] 7 [ <0, 2>, <107, 2>, <241, 2>, <125, 2>, <61, 2>, <374, 1>, <356, 2>, <73, 1> ] 11 [ <112, 2>, <57, 2>, <107, 2>, <419, 1>, <274, 2>, <143, 2>, <242, 2>, , <374, 2>, , <422, 3>, <73, 2> ] > > > >