################################################################################ # trinomials.g # # Nils Bruin, 8 Januari 2002. # # Electronic data supporting the article: # # Nils Bruin and Noam D. Elkies, Trinomials ax^7+bx+c and ax^8+bx+c with Galois # groups of order 168 and 8*168. # # This file contains instructions for KASH 2.2 with Algae 0.beta to assert # Lemmas 2,3,4,5 of the article above. It also contains a MAGMA transcript # of computations asserting Lemma 1. # # KASH can be obtained free of charge from # ftp://ftp.math.tu-berlin.de/pub/algebra/Kant/Kash # Algae can be obtained free of charge from # http://www.cecm.sfu.ca/~bruin/ell.shar ################################################################################ ################################################################################ # Proof of Lemma 1. # # This file is suitable as input for KASH with Algae 0.beta. However, the genus # 2 computations have to be done with Stoll's package in MAGMA. Here is a # transcript of the instructions that assert Lemma 1 # #Magma V2.8-3 Tue Jan 8 2002 16:34:52 on dizzy [Seed = 842374695] #Type ? for help. Type -D to quit. # #> _:=PolynomialRing(Rationals()); #> F:=48*x^5 + 29*x^4 + 64*x^3 - 108*x^2 + 64*x - 16; #> C:=HyperellipticCurve(F); #> J:=Jacobian(C); #> rk:=TwoSelmerGroupData(J);rk; #2 #> g1:=J![x-1,9]; #> g2:=J![x-2/3,28/9]; #> Determinant(HeightPairingMatrix([g1,g2])); #0.1223302522324420925876649079 # #End of Lemma 1. ################################################################################ F:=48*x^5 + 29*x^4 + 64*x^3 - 108*x^2 + 64*x - 16; O:=OrderMaximal(x^5 - 2*x^4 + 3*x^3 - 4*x^2 + 5*x - 6); dn:=Elt(O,[6, -7, 5, -2, 0]); theta:=Elt(O,[19, -38, 9, -4, 11] / 48); Qpol:=dn*(x-theta); Rpol:=F/Qpol; ################################################################################ # Proof of Lemma 2. #Determine the deltas satisfying local conditions at finite primes deltas:=FilterTwists(Qpol,Rpol); #extract leading coefficient of Rpol lcf:=PolyToList(Rpol)[1]; #Since Rpol in the real embedding does not have real zeros, the leading #coefficient of delta*Rpol should be positive. Only keep those delta. deltas:=Filtered(deltas,delta->Re(EltCon(delta*lcf,1)) > 0); #End of Lemma 2 ################################################################################ #Some precomputed information for the next step Aa:=OrderSimplify(OrderLLL(OrderMaximal(x^15+3*x^14-3*x^13- 11*x^12+6*x^10+81*x^9-195*x^8-180*x^7+782*x^6-987*x^5-1227*x^4+ 4619*x^3-6021*x^2+4644*x-1080))); OrderIsSubfield(O,Aa); #Correct information, but no proof: OrderClassGroup(Aa,300); #execute this line instead for check conditional on GRH (remove "#" in front) #OrderClassGroup(Aa,OrderBach(Aa)); #alternatively, execute this line and go home for an unconditional check #OrderClassGroup(Aa,OrderMinkowski(Aa)); ############################################################################# #Proofs of lemmas 3, 4 (for i=1,2,3 separately) #Fix representation of "deltas" as in text. deltas:=List([[5,9,-18,14,-5],[1,3,0,0,-1],[19,0,11,-3,6]],u->Elt(O,u)); #### Case i=1 #### E1:=Ell(1,0,0,0,Elt(O,[864,324,-138,-282,-21]), Elt(O,[-14592,5080,-360,4338,-1330])); #Check Lemma 3 E1:=Quar(deltas[1]*Rpol,1,E1); #Check Lemma 4 EllAddHint(E1,Elt(O,[52, -14, 7, -26, 8])); EllAddHint(E1,Elt(O,[86, -69, 36, -25, 4] / 8)); EllAddHint(E1,Elt(O,[ 16, -10, -2, 4, -2 ])); Ell2DescInit(E1,Aa); EllGensMod2(E1); #### Case i=2 #### E2:=Ell(1,0,0,0,Elt(O,[1629, 2274, -90, -318, -924]), Elt(O,[-71778, -25520, -7230, 21394, 11312])); #Check lemma 3 E2:=Quar(deltas[2]*Rpol,2/3,E2); #Check lemma 4 I3:=Ideal(3,EltMove(Elt(Om,[2,1,0,0,0]),O)); E2atI3:=EllLocalise(E2,PlaceInit(I3)); EllAddHint(E2atI3,Elt(O,[-655498,443379,-685029,57771,-331794]/390625)); EllAddHint(E2,Elt(O,[-77, 64, -18, 34, -22])); EllAddHint(E2,Elt(O,[192, 68, -9, -74, -45] / 12)); Ell2DescInit(E2,Aa); EllGensMod2(E2); #### Case i=3 #### E3:=Ell(1,0,0,0,Elt(O,[3501, -2562, 738, -1584, 795]), Elt(O,[2982, -39856, 3894, -6586, 14068])); E3:=Quar(deltas[3]*Rpol,E3); EllAddHint(E3,Elt(O,[-104, 156, 2, 30, -47] / 4)); EllAddHint(E3,Elt(O,[3462/25,-1026/25,601/25,-1374/25,261/25])); EllAddHint(E3,Elt(O,[-66, 34, 0, 24, -13] / 9)); Ell2DescInit(E3,Aa); EllGensMod2(E3); #End of Lemmas 3,4 ################################################################################ ############################################################################# #Proofs of lemma 5 (for i=1,2,3 separately) #### Case i=1 #### P1:=EllXtoPnt(E1,Elt(O,[86, -69, 36, -25, 4] / 8));; P2:=EllXtoPnt(E1,Elt(O,[ 52, -14, 7, -26, 8 ]));; P3:=EllXtoPnt(E1,Elt(O,[ 16, -10, -2, 4, -2 ]));; EllGenInit([P1,P2,P3],3);; cov:=QuarCov(deltas[1]*Rpol,1,E1);; EllCovChab(cov,[1,10],1439,947); #### Case i=2 #### P1:=EllXtoPnt(E2,Elt(O,[-77, 64, -18, 34, -22]));; P2:=EllXtoPnt(E2,Elt(O,[192, 68, -9, -74, -45] / 12));; EllGenInit([P2,P1+P2],2);; cov:=QuarCov(deltas[2]*Rpol,2/3,E2);; EllCovChab(cov,[2/3],5); #### Case i=3 #### P1:=EllXtoPnt(ec,Elt(O,[-104, 156, 2, 30, -47] / 4));; P2:=EllXtoPnt(ec,Elt(O,[3462/25,-1026/25,601/25,-1374/25,261/25]));; P3:=EllXtoPnt(ec,Elt(O,[-66, 34, 0, 24, -13] / 9));; EllGenInit([P1,P2,P3],3);; cov:=QuarCov(HypEllRev(deltas[3]*Rpol),0,ec);; Unbind(cov.IsEllDblCov); L1:=EllCovFibStrict(cov,PlaceSupport(71*O));; L2:=EllCovFibStrict(cov,PlaceSupport(947*O));; L3:=EllCovFibStrict(cov,PlaceSupport(1439*O));; L23:=EllCovFibSect(L2,L3);; L123:=EllCovFibSect(L1,L23);; #This shows that 0 is the only fiber EllCovFibTranslate(L123); #and this shows that there's only 1 (2 with involute) point above it. EllCovThetaTest(cov,PlaceSupport(1439*O),EllZero(ec)); #End of Lemma 5 ################################################################################