/////////////////////////////////////////////////////////////////////////// // "Growth of torsion groups of elliptic curves upon base changes" // Enrique González-Jiménez & Filip Najman /////////////////////////////////////////////////////////////////////////// // 13/10/2016 - Magma 2.21 // Magma script related to Theorem 5.6 function Deg(G) // If the group G acts on the left: M*v (M in G) // the function returns the cardinal of the orbits // excluding (0,0) p:=Characteristic(BaseRing(G)); Gt:=sub; dv:=Sort([#o : o in Orbits(Gt)]); return [dv[k] : k in [2..#dv]]; end function; // For p in [3,7,11,19,43,67,163] we compute the length of the orbits of the action of the groups G_{00}(p), G_{10}(p) and G_{01}(p) on (Z/pZ)^2 // In particular we check that the possible lengths in each of the above groups are: // * for G_{00}(p) they are [1,p*(p-1),p-1]; // * for G_{10}(p) they are [1,p*(p-1)/2,p*(p-1)/2,p-1]; // * for G_{01}(p) they are [1,p*(p-1),(p-1)/2,(p-1)/2]; for p in [3,7,11,19,43,67,163] do print p; Fp:=FiniteField(p); Fp0:=[a : a in Fp | not IsZero(a)]; Fp2:=[a : a in Fp0 | IsSquare(a)]; G00:=sub; G10:=sub; G01:=sub; Sort(Deg(G00)) eq Sort([p*(p-1),p-1]); Sort(Deg(G01)) eq Sort([p*(p-1)/2,p*(p-1)/2,p-1]); Sort(Deg(G10)) eq Sort([p*(p-1),(p-1)/2,(p-1)/2]); end for; /* OUTPUT 3 true true true 7 true true true 11 true true true 19 true true true 43 true true true 67 true true true 163 true true true */