########################################################################## ## covdeg3.g ## ## Author: Nils Bruin ## date: 28 May 2001 ## ## Computations for the example in "N-covers of hyperelliptic curves" by ## Nils Bruin and Victor Flynn. ## ## The computations in this file prove that the only rational solutions to ## y^2=(x^3+2)^2+(x^2+x+1)^3 ## have x=1. ## ## some classgroup information is proved in classgrp.g ## ## This file needs KASH 2.2 and ALGAE. ########################################################################## Time(); InitPolyAlg(Z,["x","u","z"]); k:=1; Ghom:=x^3+2*z^3; Hhom:=x^2+x*z+z^2; Ddelta:=delta->2*delta*u^3*Ghom-delta^2*u^6+k*Hhom^3; #First let's check for local solubility of D_delta deltas1:=List(Cartesian([1,2,4],[1,3,9]),Product); deltas2:=Filtered(deltas1,delta->HasNoLocalPoint(PlaceInit(2),[Ddelta(delta)],5)<>true); deltas3:=Filtered(deltas2,delta->HasNoLocalPoint(PlaceInit(3),[Ddelta(delta)],5)<>true); #we see that we end up with only delta=3,9 ########################################################################## #We consider the value delta=3 first. delta=9 follows by symmetry. delta:=3; InitPolyAlg(Z,["x","y","z"]); Ghom:=Meval(Ghom,[x,y,z]); Hhom:=Meval(Hhom,[x,y,z]); #limitations of the software force us to call "w" "y". F:=2*k*Ghom-y^3-3*k*Hhom*y; ec:=Quar(x^3+1485*x-75762); Cubic(F,[0,1,1],ec); EllAddHint(ec,31); EllAddHint(ec,43); EllGensMod2(ec); O:=OrderMaximal(x^3-k*delta); alpha:=XOrderPrimElt(O); HEAP(O, "USE_ELT_PROD_REP", 50); ecO:=Quar(EllYsqr(ec,x)+RingZero(O)); Aa:=OrderSimplify(OrderLLL(EllAa(ecO))); HEAP(Aa, "USE_ELT_PROD_REP", 50); PRINTLEVEL("CLASS_GROUP_CALC",4); PRINTLEVEL("CLASS_GROUP_CHECK",4); #This is what you SHOULD do , assuming GRH #OrderClassGroup(Aa, OrderBach(Aa), "fast", "euler"); #A lot FASTER and the same result: OrderClassGroup(Aa, 300, "fast", "euler"); #See accompanying file for removal of GRH (approx. 10 UltraSparc days) #remove the "fast" provision: OrderClassGroupCheck(Aa,2,"pmax"); EllAddHint(ecO,36*alpha^2+60*alpha+39); EllAddHint(ecO,31); EllAddHint(ecO,43); OrderIsSubfield(O,Aa); Ell2DescInit(ecO,Aa); #the following command shows generators (mod 2ecO). Furthermore, we see #that the basis of the Mordell-Weil group over Q together with 1 new point #generate a subgroup of odd index in the mordell weil group. #(this command takes some 3 minutes on a Pentium III) EllGensMod2(ecO); EllTorBound(ecO); #we extract the birational map ... mp:=ec.tocub([x,y,z]); dn:=Gcd(Gcd(List(PolyDecomp(mp[1]),u->u[1])), Gcd(List(PolyDecomp(mp[3]),u->u[1]))); #and take the "x"-coordinate. This should be rational. phi:=[mp[1]/dn+RingZero(O),mp[3]/dn+RingZero(O)]; #now we determine the trace-0 subgroup, which we know to be infinite cyclic. #we're lazy, so we compute the trace by passing to the splitting field Os:=OrderSplittingField(O); OrderIsSubfield(O,Os); ecOs:=Quar(EllYsqr(ec,x)+RingZero(Os)); zeta:=OrderTorsionUnit(Os); #Select those automorphisms that have a particular (non-trivial) action on #O. OrderAutomorphisms(Os); idx:=Filtered([1..6],i->(EltAutomorphism(alphas,i)-zeta^2*alphas) = 0); #and choose one. Call it sigma sigma:=elt->EltAutomorphism(elt,idx[1]); alphas:=EltMove(alpha,Os); #Our third generator pnt:=[39+60*alphas+36*alphas^2,1008+828*alphas+324*alphas^2]; #compute the trace of a particular linear combination EllPnt(ecOs,pnt)+EllPnt(ecOs,List(pnt,sigma))+ EllPnt(ecOs,List(List(pnt,sigma),sigma))- EllPnt(ecOs,[31,8])+EllPnt(ecOs,[43,260]); g1:=EllPnt(ecO,[31,8]); g2:=EllPnt(ecO,[43,260]); g3:=EllPnt(ecO,[39+60*alpha+36*alpha^2,1008+828*alpha+324*alpha^2]); #so, a basis (up to some finite odd index) of the Mordell-Weil group over O is basis:=[g1, g3, -g1+g2+3*g3]; #and in this group, basis[3] spans the trace-0 part. EllGenInit([basis[3]],1); #we define the cover cov:=EllCov(ecO,phi); #and we get the rational part of the image of the trace 0 subgroup #under phi. Note that, as the computations show, we need our subgroup to #be of index prime to 2. We know it is, because of the data from the 2-descent. EllCovChab(cov,29); #or, alternatively EllCovChab(cov,67); #we find that, indeed, (0:1:0) on ec is the only trace-0 point that maps to a #(since the only index requirements we meet are that basis[3] should generate #a subgroup of odd index in the trace-0 subgroup. This is met by the 2-descent #data. That the index is prime to 29 and 67 follows from the mere fact that the #computation succeeds) #rational value under phi.