/////////////////////////////////////////////////////////////////////////// // "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 Lemma 8.11 load "2primary_Ss.txt"; function aux_Id(m,s) // return true if Matrix m (mod 2^s) is congruent to the identity if [Integers(2^s)!t : t in Eltseq(m)] eq [1,0,0,1] then return true; else return false; end if; end function; function Cuenta(G,N,s) // Given a group G that is the 2-adic image of an elliptic curve E over Q, // and two integers N>0, s>=0 // the function determines the (name of the) Galois Groups of the fields K such that E(K)[2]=Z/2^sZ x Z/2^NZ // and [K:Q] \le 4. M:=Characteristic(BaseRing(G)); GG:=sub; Odds:=[[i,j] : i in [0..2^N-1], j in [0..2^N-1] | IsOdd(i) or IsOdd(j)]; L:={}; V := RSpace(GG); for v in Odds do Hv := Stabiliser(GG,V!v); Hvmod2s:=[m : m in Hv | aux_Id(m,s)]; HHv:=sub; ord_s:=#Hvmod2s; hv:=Integers()!(Order(GG)/ord_s); if hv le 4 then Kv:=quo; Gal:=GroupName(Kv); // printf "%o \n", ; L:=L join {Gal}; end if; end for; return L; end function; // C2xC16 // s=1 // N=4 // For each of the possible 2-adic images of a Galois representation attahed to an elliptic curve E over Q (from the Rouse and Zurieck-Brown database) // such that E(K)[2]=C2xC16 where [K:Q]=4 we determine the name of the Galois group of K for rzb in RZB do if rzb[3][2][4] le 4 then G:=sub; printf "%o - %o\n",rzb[1], Cuenta(G,4,1); end if; end for; /* OUTPUT: X193j - { C2^2 } X193l - { C2^2 } X193n - { C2^2 } X213i - { C4 } X213k - { C4 } X215c - { C4 } X215d - { C4 } X235f - { C2^2 } X235l - { C2^2 } X235m - { C2^2 } */ /* CONCLUSION: C2xC16 can appear over biquadratic quartic fields and cyclic quartics = C2^2, C4 */ // C4xC8 // s=2 // N=3 // For each of the 2-adic images of an elliptic curve E over Q (from the Rouse and Zurieck-Brown database) // such that E(K)[2]=C4xC8 where [K:Q]=4 we determine the Galois group of K for rzb in RZB do if rzb[3][3][2] le 4 then G:=sub; printf "%o - %o\n",rzb[1], Cuenta(G,3,2); end if; end for; /* X183d - { C2^2 } X183g - { C2^2 } X183i - { C2^2 } X187d - { C2^2 } X187h - { C2^2 } X187j - { C2^2 } X187k - { C2^2 } X189b - { C2^2 } X189d - { C2^2 } X189e - { C2^2 } X193g - { C2^2 } X193i - { C2^2 } X193n - { C2^2 } X194g - { C2^2 } X194h - { C2^2 } X194k - { C2^2 } X194l - { C2^2 } X195h - { C2^2 } X195j - { C2^2 } X195l - { C2^2 } */ /* CONCLUSION: C4xC8 appears only over biquadratic quartic fields = C2^2, */