Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Project: Math 582b
Views: 597

Math 582: computational number theory

Homework 4 -- due by Friday Feb 5 at 9am

WARNING: I haven't exactly tried the problems below. I don't know how computationally difficult they are for sure.

︠fcaf67de-0ff6-4544-b9f2-d6d494060f6bi︠ %md **Problem 1:** Let $\rho_{E,2}$ denote the mod 2 representation attached to $E$ for each of the following elliptic curves: 17a1, 32a1, 32a2, 37a1. For each, compute explicitly the matrix of $\rho_{E,2}(\text{Frob}_P)$, where $P$ is a choice of prime ideal over each of 3,5,7,11,13. Be sure to check that $X^2 - a_p(E)X + p$ is the charpoly of $\rho_{E,2}(\text{Frob}_P)$.

Problem 1: Let ρE,2\rho_{E,2} denote the mod 2 representation attached to EE for each of the following elliptic curves: 17a1, 32a1, 32a2, 37a1. For each, compute explicitly the matrix of ρE,2(FrobP)\rho_{E,2}(\text{Frob}_P), where PP is a choice of prime ideal over each of 3,5,7,11,13. Be sure to check that X2ap(E)X+pX^2 - a_p(E)X + p is the charpoly of ρE,2(FrobP)\rho_{E,2}(\text{Frob}_P).

def frob(X): p = X[0].parent().characteristic() return X.parent()([X[0]^p, X[1]^p]) def in_terms_of_basis(X, P0mod, P1mod,n=2): for i in range(n): for j in range(n): if X == i*P0mod + j*P1mod: return [i,j] raise ValueError def rhoFrob(prime,n=2): """ Compute the matrix of Frob_P, where P is a prime of the ringer of integers of K. The 2-torsion points P0, P1 in E(K) above must be defined. INPUT: - P = prime ideal of R. """ F = prime.residue_field() EF = E.change_ring(F) P0mod = EF(P0) P1mod = EF(P1) return matrix(Integers(n), 2, [in_terms_of_basis(frob(Q), P0mod, P1mod,n) for Q in [P0mod, P1mod]]).transpose() def frob_report(p,n=2): R.<X> = Integers(n)[] for P, e in K.factor(p): A = rhoFrob(P,n) print '-'*30 print "p = %s"%p print A print A.charpoly() print X^2 - E.ap(p)*X + p
for i in ['17a1','32a1','32a2','37a1']: print "------------- next curve ----------------------" print "looking at curve %s" % i E = EllipticCurve(i) print "is rho_{E,2} surjective? %s" % E.galois_representation().is_surjective(2) arr = [f[0] for f in E.division_polynomial(2).factor()] f = [f for f in arr if f.degree() == max([f.degree() for f in arr])] K.<a> = NumberField(f,'b').galois_closure() print "QQ(E[2]) = \n\t%s" % K H = E.change_ring(K).torsion_subgroup() print "double check this has Z/2 + Z/2 in it: \n\t%s" % H while True: P0 = H.random_element().element() P1 = H.random_element().element() if P0.order()%2 != 0 or P1.order()%2 != 0: continue P0 = int(P0.order()/2)*P0 P1 = int(P1.order()/2)*P1 if P0 != P1 and not P0.is_zero() and not P1.is_zero(): break print "basis for E[2]:\n\t%s, %s" % (P0,P1) for p in [3,5,7,11,13]: frob_report(p)
------------- next curve ---------------------- looking at curve 17a1 is rho_{E,2} surjective? False QQ(E[2]) = Number Field in a with defining polynomial x^2 + 2*x + 5 double check this has Z/2 + Z/2 in it: Torsion Subgroup isomorphic to Z/4 + Z/2 associated to the Elliptic Curve defined by y^2 + x*y + y = x^3 + (-1)*x^2 + (-1)*x + (-14) over Number Field in a with defining polynomial x^2 + 2*x + 5 basis for E[2]: (11/4 : -15/8 : 1), (-a - 2 : 1/2*a + 1/2 : 1) ------------------------------ p = 3 [1 1] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 5 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 5 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 7 [1 1] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 11 [1 1] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 13 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 13 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------- next curve ---------------------- looking at curve 32a1 is rho_{E,2} surjective? False QQ(E[2]) = Number Field in a with defining polynomial x^2 + 4 double check this has Z/2 + Z/2 in it: Torsion Subgroup isomorphic to Z/4 + Z/2 associated to the Elliptic Curve defined by y^2 = x^3 + 4*x over Number Field in a with defining polynomial x^2 + 4 basis for E[2]: (-a : 0 : 1), (0 : 0 : 1) ------------------------------ p = 3 [1 0] [1 1] x^2 + 1 X^2 + 1 ------------------------------ p = 5 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 5 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 7 [1 0] [1 1] x^2 + 1 X^2 + 1 ------------------------------ p = 11 [1 0] [1 1] x^2 + 1 X^2 + 1 ------------------------------ p = 13 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 13 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------- next curve ---------------------- looking at curve 32a2 is rho_{E,2} surjective? False QQ(E[2]) = Number Field in a with defining polynomial x + 1 double check this has Z/2 + Z/2 in it: Torsion Subgroup isomorphic to Z/2 + Z/2 associated to the Elliptic Curve defined by y^2 = x^3 + (-1)*x over Number Field in a with defining polynomial x + 1 basis for E[2]: (-1 : 0 : 1), (1 : 0 : 1) ------------------------------ p = 3 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 5 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 7 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 11 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 13 [1 0] [0 1] x^2 + 1 X^2 + 1 ------------- next curve ---------------------- looking at curve 37a1 is rho_{E,2} surjective? True QQ(E[2]) = Number Field in a with defining polynomial x^6 - 56*x^4 - 40*x^3 + 784*x^2 + 1120*x - 932 double check this has Z/2 + Z/2 in it: Torsion Subgroup isomorphic to Z/2 + Z/2 associated to the Elliptic Curve defined by y^2 + y = x^3 + (-1)*x over Number Field in a with defining polynomial x^6 - 56*x^4 - 40*x^3 + 784*x^2 + 1120*x - 932 basis for E[2]: (-10/2861*a^5 + 147/11444*a^4 + 1400/8583*a^3 - 1315/2861*a^2 - 12956/8583*a + 16016/8583 : -1/2 : 1), (15/2861*a^5 - 441/22888*a^4 - 700/2861*a^3 + 3945/5722*a^2 + 28773/11444*a - 8008/2861 : -1/2 : 1) ------------------------------ p = 3 [1 1] [1 0] x^2 + x + 1 X^2 + X + 1 ------------------------------ p = 3 [0 1] [1 1] x^2 + x + 1 X^2 + X + 1 ------------------------------ p = 5 [1 1] [0 1] x^2 + 1 X^2 + 1 ------------------------------ p = 5 [1 0] [1 1] x^2 + 1 X^2 + 1 ------------------------------ p = 5 [0 1] [1 0] x^2 + 1 X^2 + 1 ------------------------------ p = 7 [0 1] [1 1] x^2 + x + 1 X^2 + X + 1 ------------------------------ p = 7 [1 1] [1 0] x^2 + x + 1 X^2 + X + 1 ------------------------------ p = 11 [1 1] [1 0] x^2 + x + 1 X^2 + X + 1 ------------------------------ p = 11 [0 1] [1 1] x^2 + x + 1 X^2 + X + 1 ------------------------------ p = 13 [0 1] [1 0] x^2 + 1 X^2 + 1 ------------------------------ p = 13 [1 0] [1 1] x^2 + 1 X^2 + 1 ------------------------------ p = 13 [1 1] [0 1] x^2 + 1 X^2 + 1
︠81f969b4-b3ab-4008-a2ad-004aa6f0aa23︠ ︠b7d0ad95-db24-4d1f-8eb5-af5f7ede042a︠ ︠679c8d56-85fd-4034-bd07-3af1eefd70e3︠ ︠6a1f1acc-7cb0-44a3-959b-7865ed4fea2a︠ ︠56f2221a-e6a2-4dca-bd56-bae196a60aa2i︠ %md **Problem 2:** Let $\rho_{E,4}$ denote the mod 4 representation attached to $E$ for the curve 32a1. This is the homomorphism $G_\QQ\to\text{GL}_2(\ZZ/4\ZZ)$ defined by the action of $G_\QQ$ on $E[4]$. Be sure to check that $X^2 - a_p(E)X + p$ is the charpoly of $\rho_{E,2}(\text{Frob}_P)$. Try to compute explicitly the matrix of $\rho_{E,4}(\text{Frob}_P)$, where $P$ is a choice of prime ideal over each of 3,5,7,11,13.

Problem 2: Let ρE,4\rho_{E,4} denote the mod 4 representation attached to EE for the curve 32a1. This is the homomorphism GQGL2(Z/4Z)G_\QQ\to\text{GL}_2(\ZZ/4\ZZ) defined by the action of GQG_\QQ on E[4]E[4]. Be sure to check that X2ap(E)X+pX^2 - a_p(E)X + p is the charpoly of ρE,2(FrobP)\rho_{E,2}(\text{Frob}_P).

Try to compute explicitly the matrix of ρE,4(FrobP)\rho_{E,4}(\text{Frob}_P), where PP is a choice of prime ideal over each of 3,5,7,11,13.

E = EllipticCurve('32a1') arr = [f[0] for f in E.division_polynomial(4).factor()] f = [f for f in arr if f.degree() == max([f.degree() for f in arr])] K.<a> = NumberField(f,'b').galois_closure() H = E.change_ring(K).torsion_subgroup() P0 = H.0 P1 = H.1 for p in [3,5,7,11,13]: frob_report(p,n=4)
------------------------------ p = 3 [1 3] [0 3] x^2 + 3 X^2 + 3 ------------------------------ p = 3 [1 3] [0 3] x^2 + 3 X^2 + 3 ------------------------------ p = 5 [1 2] [0 1] x^2 + 2*x + 1 X^2 + 2*X + 1 ------------------------------ p = 5 [1 2] [0 1] x^2 + 2*x + 1 X^2 + 2*X + 1 ------------------------------ p = 7 [1 1] [0 3] x^2 + 3 X^2 + 3 ------------------------------ p = 7 [1 1] [0 3] x^2 + 3 X^2 + 3 ------------------------------ p = 11 [1 3] [0 3] x^2 + 3 X^2 + 3 ------------------------------ p = 11 [1 3] [0 3] x^2 + 3 X^2 + 3 ------------------------------ p = 13 [1 2] [0 1] x^2 + 2*x + 1 X^2 + 2*X + 1 ------------------------------ p = 13 [1 2] [0 1] x^2 + 2*x + 1 X^2 + 2*X + 1
#[[William: Nice!!]]
︠6a517ed1-19c5-43f6-8b06-a6359f979c5f︠ ︠c49d596e-916c-4cbe-a7e8-6ff12f6cf434︠ ︠c7349679-e04f-4c1d-adc4-f279e791dbca︠ ︠809ffae5-6a4e-4115-927e-9392867ca575︠ ︠537fa1a1-325f-4988-a744-34fef7f59ff3︠