ModifiedSelmer

583 days ago by jen

#Given an elliptic curve E, a Heegner discriminant D, a Kolyvagin prime ell, we do the first step towards computing #the ell-modified 3-Selmer group of E. The quadratic Heegner field is replaced by QQ to be able to carry the #computations. #We use the function division_points_scheme, copied below. #Dictionary to Jared's blackboard exposition on Monday: A = L, A_+ = L.base_field() def division_points_scheme(P,n): """ INPUT P: a point on an elliptic curve over a field n: a positive integer (not divisible by the characteristic of the aforementioned field) OUTPUT The finite subscheme of E consisting of n-th roots of P, given as a list of at most n points with coordinates in extensions of the ground field. This means that there is exactly one element of the list for each Galois orbit of n-th roots of P. *Warning*: each element of the output is a point defined over a different field; in particular, the "a"s that may appear in its coordinates bear no relations with those appearing in the coordinates of other elements of the output. """ nRootsofP=[] if P==E(0): nRootsofP.append(P) g = P.division_points(n,poly_only=true) for g1,e in factor(g): g1monic,d = sage.schemes.elliptic_curves.heegner.make_monic(g1); K.<a> = QQ.extension(g1monic) R.<y> = K['y'] EK = E.change_ring(K) ypoly = E.defining_polynomial()(a/d,y,1) ypoly1=factor(ypoly)[0][0] if ypoly1.degree()>1: ypoly1m, dd= sage.schemes.elliptic_curves.heegner.make_monic(ypoly1) J.<b> = K.extension(ypoly1m); EJ=EK.change_ring(J); newpoints=[EJ.lift_x(a/d)] else: EJ=EK; J=K; newpoints=[Q for Q in EJ.lift_x(a/d, all=True) if n*Q==EJ(P)] nRootsofP+=newpoints return nRootsofP 
       
#Create a list of Kolyvagin primes for a specific discriminant D E=EllipticCurve('5077a') D=-3 ED=E.quadratic_twist(D) kolyD=[ell for ell in prime_range(500) if GF(ell)(E.conductor())!=0 and E.heegner_point(D,ell).satisfies_kolyvagin_hypothesis(3)] print kolyD 
       
[11, 23, 29, 41, 47, 53, 107, 137, 149, 173, 179, 233, 239, 257, 281,
293, 347, 359, 383, 389, 401, 431, 461]
[11, 23, 29, 41, 47, 53, 107, 137, 149, 173, 179, 233, 239, 257, 281, 293, 347, 359, 383, 389, 401, 431, 461]
def I(ell): return [x[0] for x in LJ.factor(ell) if x[0].residue_class_degree()==2] 
       
#Dictionary for 5077a: for each Kolyvagin prime ell, a generator for H(ell)^- represented as an element of LJ* (LJ=Q(ED(one 3-torsion point))) LJ.<u>=NumberField( x^8 - 1134*x^4 - 18225*x^2 - 107163 ) dic={11: 1/3402*(-78194096813332063817*u^7 - 226120053042379143270*u^6 + 370356230483142417591*u^5 + 3146670160662562282161*u^4 + 91124428396873011166719*u^3 + 228045575974541486007357*u^2 + 921614535402170900230413*u + 684196453833522406049448), 23: 1/1134*(760740550460831780162296273531698137613192*u^7 - 6884081769616656444697730149446130845488773*u^6 - 17884033888456782992428667525605002727774051*u^5 + 161835926301224098131050924193007751470708233*u^4 - 442249102658779623718059344809321211944243329*u^3 + 4001993824830796854784727663614544571214683834*u^2 - 3467787780001710069044502950375360643090500010*u + 31380652211516773934592954975740782605590272065) , 29 : 1/486*(-31214607373211512911973*u^7 + 5038319165847921205089*u^6 + 340982141547543269892285*u^5 + 637626852468552827913849*u^4 + 33076261072233604062341586*u^3 - 17174018897680340226599910*u^2 + 183583128811644083569677561*u - 690670375078829010553368720), 41:1/1134*(-10966988184217358086*u^7 - 44416731164204646835*u^6 + 257819815470641580373*u^5 + 1044180338321566047420*u^4 + 6375551665283870630589*u^3 + 25821233649904390674354*u^2 + 49992323382280300827195*u + 202470865350278374749060), 47: 1/3402*(-1185825696436316532857265239*u^7 + 8822126791814932076790842064*u^6 + 27877240049874076719596362869*u^5 - 207396877184351079589958731137*u^4 + 689368208176888446777345806157*u^3 - 5128657404759985133335888101141*u^2 + 5405511585813118989552065680893*u - 40215108112416397503841632915816), 53 : 1/162*(8572624172915204539108888450*u^7 + 54619940507689547917433072237*u^6 + 348007545984490811033091509746*u^5 + 2217308384748192600875224014081*u^4 + 4406086336233965117960396248353*u^3 + 28073104419670848512397607181535*u^2 + 22629959205297147813165161898105*u + 144185374344299733402620108569731), 107 : 1/3402*(2620654456761778466*u^7 + 1135108563202145553*u^6 - 30070623441986109864*u^5 + 48911071455199544283*u^4 - 2752293043898245852263*u^3 - 2250397617401182981221*u^2 - 14035668754281097556889*u - 65187444748095323589411), 137 : 1/3402*(-199299462735373897*u^7 - 6374279851387905303*u^6 - 10805862730013826363*u^5 + 45647724380033886579*u^4 + 433019315646327973122*u^3 + 7164241307114115335202*u^2 + 13562331029022273247467*u + 60377765484044818862640), 149 : 1/1134*(-233544073630146*u^7 + 1198121695758519*u^6 + 6244603402437925*u^5 - 10980526567677660*u^4 + 144871257819097215*u^3 - 1228262224302112356*u^2 - 547965057479790969*u - 12196897001758649376), 173 : 1/3402*(-1584903104*u^7 - 3405205482*u^6 + 23699071263*u^5 - 11948870304*u^4 + 1570279695642*u^3 + 4448283020811*u^2 + 3228365469501*u + 66920142322656), 179 : 1/3402*(194346102103*u^7 - 3860118862824*u^6 - 4568827406304*u^5 + 90746439786828*u^4 - 112981211803593*u^3 + 2244042469142586*u^2 - 885914438961177*u + 17596108178668593), 233 : 1/1134*(170713597719211269793075*u^7 + 4150643370036198268123989*u^6 - 10220474947340024110173325*u^5 - 23270837327098778001129804*u^4 - 38126489409373780846278036*u^3 - 4775288116663468057316876136*u^2 + 6970106205364006125557264556*u - 45473546788061429550968278803), 239 : 1/3402*(-305744886141881*u^7 - 1419691085411991*u^6 + 7187578834699221*u^5 + 33374926482024834*u^4 + 177744534874329150*u^3 + 825331227109449354*u^2 + 1393758374449283712*u + 6471574363490006925), 257 : 1/1134*(419901788283*u^7 - 3530364406233*u^6 - 8237620827562*u^5 - 15613619983983*u^4 - 801448366605642*u^3 + 1997873635345119*u^2 - 8832921978758688*u + 9728835319972188), 281 : 1/3402*(157059164678421969019771386604*u^7 - 477378711459665084850510385656*u^6 - 3692259367402069752217479495981*u^5 + 11222560764245799890590029931143*u^4 - 91304814238301681041617958103550*u^3 + 277519460009791214778884479993401*u^2 - 715944288337433879361555865512888*u + 2176100723209736255814628335676395), 293 : 1/3402*(-1610513608817246309341186097627977*u^7 - 10261287060541771043283218267530260*u^6 - 65379150826405876772063785841118612*u^5 - 416559183810246951226148478130837929*u^4 - 827758439305923396341783466225866961*u^3 - 5274011294286410286452638111922226648*u^2 - 4251423663510073522355421755744787810*u - 27087680841948963309547137801991430934), 347 : 1/3402*(-22494060096257*u^7 - 207131856271284*u^6 + 1721192648735385*u^5 + 5480103311360874*u^4 + 39319072086763665*u^3 + 423790556573790945*u^2 - 319143037144696740*u + 4243015872945218565), 359 : 1/486*(316132956130636033931182*u^7 + 2014221420033093147506019*u^6 + 12833486228807011469176131*u^5 + 81767757376997327525593032*u^4 + 162483397189075099881725229*u^3 + 1035252834831741900609910908*u^2 + 834525783048935091796016373*u + 5317128996486037068436978680), 383 : 1/3402*(-108610469673135457*u^7 - 237664861958993700*u^6 + 2553364834281297162*u^5 + 5586736468837659030*u^4 + 63140869650692442735*u^3 + 138156301346493101112*u^2 + 495102066414603987573*u + 1083328687670258431647), 389 : 1/567*(-24947673314868718692741306*u^7 + 120388756836374254316078886*u^6 + 20389450688337674050426921*u^5 - 1317043415193734087483913450*u^4 + 30743651313865771782699626568*u^3 - 127535639168034876598046906553*u^2 + 387347164458278820075609590781*u - 706192881801524425254826644093), 401 : 1/1134*(-14923902440962031949803858483809654*u^7 - 95086714059308640941209487284293237*u^6 - 605839071004669108255169020621761682*u^5 - 3860065873418096766387795475888778310*u^4 - 7670463711236044728950100222881100261*u^3 - 48871881366010588028729188849162333347*u^2 - 39396023505828588481197235506849795930*u - 251009307853066659835804699937881000314), 431 : 1/3402*(-3168207929132022760*u^7 + 17116071548575846560*u^6 - 113597040913151605614*u^5 + 747101262781847949633*u^4 - 1071951115162296273156*u^3 + 10257400629011486676852*u^2 - 3582058149518017526901*u + 50623027981583205248037), 461 : 1/1134*(13569171902371728719347562*u^7 + 129645098157464043619223696*u^6 + 118943498480665746721739185*u^5 - 1132765268813605184058492849*u^4 - 18943451460683008643562597468*u^3 - 142220393572248415915357562577*u^2 - 334776471379613260240009604364*u - 1032994362495251641982948037279) } 
       
def reduction(ell1, ell2): """ INPUT: two kolyagin primes OUTPUT: n if there are n primes in L above ell2 such that the Kolyvagin class dic[ell1] (a generator of H(ell1)^+) is nonzero in the corresponding localization map. n=0 iff loc_ell2(H(ell1)^+)=0 iff H(ell1*ell2)^+ has dimension 2; viceversa n>0 iff H(ell1*ell2)^+=0. For this reason (+epsilon) the function is symmetric. """ n=0 if ell1!=ell2: for J in I(ell2): F.<uu>=J.residue_field() if F(dic[ell1])^((ell2^2-1)/3)!=1: n+=1 return n else: return 0 
       
proof.number_field(False) m=[] row=0 for ell1 in kolyD: # if ell1<30: row=[] for ell2 in kolyD: row.append(reduction(ell1,ell2)) m.append(row) M=matrix(m); print M latex(M) 
       
23 x 23 dense matrix over Integer Ring (type 'print M.str()' to see all
of the entries)
\newcommand{\Bold}[1]{\mathbf{#1}}\hbox{\left(\begin{array}{rrrrrrrrrrrrrrrrrrrrrrr}
0 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 0 \\
3 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 0 & 3 \\
3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 \\
3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 3 \\
3 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 \\
0 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 \\
3 & 3 & 3 & 0 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 \\
3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 3 \\
3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 0 & 0 & 3 & 0 & 0 \\
3 & 3 & 0 & 3 & 0 & 0 & 3 & 0 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 0 & 3 & 0 & 0 & 3 & 0 & 0 & 0 \\
0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 0 & 3 & 0 & 3 & 0 & 3 & 0 & 3 & 0 & 0 \\
0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 0 & 0 & 0 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 0 \\
3 & 3 & 0 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 0 & 3 & 0 & 3 & 3 & 3 \\
3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 0 & 0 & 0 & 3 \\
0 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 \\
3 & 0 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 0 & 3 \\
3 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 \\
3 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 0 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 \\
3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 0 & 3 & 0 & 3 \\
0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 3 & 0 & 0 & 3 & 3 & 3 & 0 & 0 & 0 & 3 & 3 & 0 \\
0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 3 \\
3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 0 & 3 & 3 & 0 & 3 & 0 & 0 & 3 & 0 & 3 & 0 & 0 & 3 \\
0 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 0 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0
\end{array}\right)}
23 x 23 dense matrix over Integer Ring (type 'print M.str()' to see all of the entries)
\newcommand{\Bold}[1]{\mathbf{#1}}\hbox{\left(\begin{array}{rrrrrrrrrrrrrrrrrrrrrrr}
0 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 0 \\
3 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 0 & 3 \\
3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 \\
3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 3 \\
3 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 \\
0 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 \\
3 & 3 & 3 & 0 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 \\
3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 3 \\
3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 0 & 0 & 3 & 0 & 0 \\
3 & 3 & 0 & 3 & 0 & 0 & 3 & 0 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 0 & 3 & 0 & 0 & 3 & 0 & 0 & 0 \\
0 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 0 & 3 & 0 & 3 & 0 & 3 & 0 & 3 & 0 & 0 \\
0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 0 & 0 & 0 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 0 \\
3 & 3 & 0 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 0 & 3 & 0 & 3 & 3 & 3 \\
3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 0 & 0 & 0 & 3 \\
0 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 \\
3 & 0 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 0 & 3 \\
3 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 \\
3 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 0 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 \\
3 & 3 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0 & 0 & 3 & 0 & 3 \\
0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 3 & 0 & 0 & 3 & 3 & 3 & 0 & 0 & 0 & 3 & 3 & 0 \\
0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 3 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 3 \\
3 & 0 & 3 & 3 & 3 & 3 & 3 & 3 & 0 & 0 & 0 & 3 & 3 & 0 & 3 & 0 & 0 & 3 & 0 & 3 & 0 & 0 & 3 \\
0 & 3 & 3 & 3 & 3 & 3 & 0 & 3 & 0 & 0 & 0 & 0 & 3 & 3 & 0 & 3 & 3 & 3 & 3 & 0 & 3 & 3 & 0
\end{array}\right)}
#Now for the plus + part : we check whether the reduction of E(QQ) is # nonzero mod ell1, ell2 def kernel_of_red(E, ell1,ell2): P1,P2,P3=E.gens() p=3 Ered1=E.change_ring(GF(ell1)) Ered2=E.change_ring(GF(ell2)) Ker=[] for i,j,k in GF(p)^3: if Ered1(ZZ(i)*P1+ZZ(j)*P2+ZZ(k)*P3).is_divisible_by(p) and Ered2(ZZ(i)*P1+ZZ(j)*P2+ZZ(k)*P3).is_divisible_by(p): Ker.append((i,j,k)) return Ker 
       
latex(M) 
       
Traceback (click to the left of this block for traceback)
...
NameError: name 'M' is not defined
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_3.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("bGF0ZXgoTSk="),globals())+"\\n"); execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>
    
  File "/tmp/tmpdIzlhT/___code___.py", line 2, in <module>
    exec compile(u'latex(M)
  File "", line 1, in <module>
    
NameError: name 'M' is not defined
 
       
D=-3 E=EllipticCurve('5077a') kolyD=[ell for ell in prime_range(500) if GF(ell)(E.conductor())!=0 and E.heegner_point(D,ell).satisfies_kolyvagin_hypothesis(3)] 
       
for ell1 in kolyD: for ell2 in kolyD: if ell1!=ell2: print ell1, ell2, len(kernel_of_red(E, ell1,ell2))<4 
       
WARNING: Output truncated!  


11 23 True
11 29 True
11 41 True
11 47 True
11 53 True
11 107 True
11 137 True
11 149 True
11 173 True
11 179 True
11 233 True
11 239 True
11 257 True
11 281 True
11 293 True
11 347 True
11 359 True
11 383 True
11 389 True
11 401 True
11 431 True
11 461 True
23 11 True
23 29 True
23 41 True
23 47 True
23 53 True
23 107 True
23 137 True
23 149 True
23 173 True
23 179 True
23 233 False
23 239 True
23 257 False
23 281 True
23 293 True
23 347 True
23 359 True
23 383 True
23 389 True
23 401 True
23 431 True
23 461 True
29 11 True
29 23 True
29 41 True
29 47 True
29 53 True
29 107 True
29 137 False
29 149 True
29 173 True
29 179 True
29 233 True
29 239 True
29 257 True
29 281 True
29 293 True

...

257 47 True
257 53 True
257 107 True
257 137 True
257 149 True
257 173 True
257 179 True
257 233 False
257 239 True
257 281 True
257 293 True
257 347 True
257 359 True
257 383 True
257 389 True
257 401 True
257 431 True
257 461 True
281 11 True
281 23 True
281 29 True
281 41 False
281 47 True
281 53 True
281 107 True
281 137 True
281 149 False
281 173 True
281 179 True
281 233 True
281 239 True
281 257 True
281 293 True
281 347 True
281 359 True
281 383 True
281 389 True
281 401 True
281 431 True
281 461 True
293 11 True
293 23 True
293 29 True
293 41 True
293 47 True
293 53 True
293 107 True
293 137 True
293 149 True
293 173 True
293 179 True
293 233 True
293 239 True
293 257 True
293 281 True
293 347 True
293 359 True
293 383 True
293 389 True
293 401 True
WARNING: Output truncated!  


11 23 True
11 29 True
11 41 True
11 47 True
11 53 True
11 107 True
11 137 True
11 149 True
11 173 True
11 179 True
11 233 True
11 239 True
11 257 True
11 281 True
11 293 True
11 347 True
11 359 True
11 383 True
11 389 True
11 401 True
11 431 True
11 461 True
23 11 True
23 29 True
23 41 True
23 47 True
23 53 True
23 107 True
23 137 True
23 149 True
23 173 True
23 179 True
23 233 False
23 239 True
23 257 False
23 281 True
23 293 True
23 347 True
23 359 True
23 383 True
23 389 True
23 401 True
23 431 True
23 461 True
29 11 True
29 23 True
29 41 True
29 47 True
29 53 True
29 107 True
29 137 False
29 149 True
29 173 True
29 179 True
29 233 True
29 239 True
29 257 True
29 281 True
29 293 True

...

257 47 True
257 53 True
257 107 True
257 137 True
257 149 True
257 173 True
257 179 True
257 233 False
257 239 True
257 281 True
257 293 True
257 347 True
257 359 True
257 383 True
257 389 True
257 401 True
257 431 True
257 461 True
281 11 True
281 23 True
281 29 True
281 41 False
281 47 True
281 53 True
281 107 True
281 137 True
281 149 False
281 173 True
281 179 True
281 233 True
281 239 True
281 257 True
281 293 True
281 347 True
281 359 True
281 383 True
281 389 True
281 401 True
281 431 True
281 461 True
293 11 True
293 23 True
293 29 True
293 41 True
293 47 True
293 53 True
293 107 True
293 137 True
293 149 True
293 173 True
293 179 True
293 233 True
293 239 True
293 257 True
293 281 True
293 347 True
293 359 True
293 383 True
293 389 True
293 401 True
#SCRATCH PAPER 
       
#Create a list of Kolyvagin primes E = EllipticCurve('11a') koly=[] for D in E.heegner_discriminants(50): koly+=[ell for ell in prime_range(500) if GF(ell)(E.conductor())!=0 and E.heegner_point(D,ell).satisfies_kolyvagin_hypothesis(3)] koly=set(koly) koly=list(koly) koly.sort() koly 
       
#Create a dictionary listing the Kolyvagin classes (represented as elements of L*) from Magma input #Here for '11a' LJ.<u>=NumberField(x^8 - 4*x^7 + 7*x^6 - 7*x^5 + 7*x^4 - 7*x^3 + 2*x^2 + x - 1) dic={29 : 1/7*(57*u^7 - 343*u^6 + 609*u^5 - 1036*u^3 + 609*u^2 + 513*u + 23), 53 : 1/7*(858*u^7 - 189*u^6 - 2457*u^5 + 3003*u^4 + 5586*u^3 - 3780*u^2 + 372*u + 1219), 71 : 1/7*(-2250*u^7 + 6874*u^6 - 8442*u^5 + 6342*u^4 - 11200*u^3 + 10689*u^2 + 4152*u - 1791), 83 : 1/7*(13164*u^7 - 46613*u^6 + 67893*u^5 - 52206*u^4 + 57505*u^3 - 59178*u^2 - 9687*u + 15709), 89 : 1/7*(2463*u^7 - 9233*u^6 + 13860*u^5 - 11907*u^4 + 16324*u^3 - 20769*u^2 + 1839*u + 7817), 107 : 1/7*(2181*u^7 - 8064*u^6 + 12663*u^5 - 11256*u^4 + 12362*u^3 - 11844*u^2 - 615*u + 3865),113 : 1/7*(4071*u^7 - 13419*u^6 + 18165*u^5 - 13629*u^4 + 17374*u^3 - 15435*u^2 - 6369*u + 2556),131 : 1/7*(876*u^7 - 3864*u^6 + 6531*u^5 - 3591*u^4 - 1820*u^3 + 756*u^2 + 1395*u - 1153),167 : 1/7*(2874*u^7 - 11004*u^6 + 19866*u^5 - 21693*u^4 + 23772*u^3 - 23562*u^2 + 11166*u - 1364), 173 : 1/7*(990*u^7 - 441*u^6 - 4788*u^5 + 8715*u^4 - 2520*u^3 + 8106*u^2 - 12258*u - 8296),179 : 1/7*(855*u^7 - 2415*u^6 + 2205*u^5 + 420*u^4 - 1498*u^3 + 2226*u^2 - 4149*u + 1675),227 : 1/7*(6822*u^7 - 25515*u^6 + 38199*u^5 - 28665*u^4 + 32193*u^3 - 42966*u^2 + 6420*u + 14260),233 : 1/7*(-3342*u^7 + 16954*u^6 - 35196*u^5 + 39879*u^4 - 36596*u^3 + 39585*u^2 - 22140*u - 3506),239 : 1/7*(22410*u^7 - 51436*u^6 + 64512*u^5 - 43638*u^4 + 87724*u^3 - 19824*u^2 - 351*u + 13971),281 : -10176*u^7 + 33090*u^6 - 42855*u^5 + 26451*u^4 - 32593*u^3 + 33279*u^2 + 14316*u - 4919,293 : 1/7*(-20184*u^7 + 67102*u^6 - 90762*u^5 + 63420*u^4 - 78449*u^3 + 78330*u^2 + 24879*u - 15742),311 : 1/7*(79797*u^7 - 322525*u^6 + 532707*u^5 - 462819*u^4 + 438669*u^3 - 496041*u^2 + 51423*u + 186957),353 : 1/7*(-1182*u^7 + 707*u^6 + 5061*u^5 - 10836*u^4 + 3269*u^3 - 8610*u^2 + 13785*u + 7009),389 : 1/7*(960*u^7 - 7469*u^6 + 12306*u^5 - 12873*u^4 + 11746*u^3 - 21000*u^2 - 5577*u + 3796),431 : 1/7*(18453*u^7 - 76300*u^6 + 127239*u^5 - 107226*u^4 + 93674*u^3 - 113127*u^2 + 21408*u + 40168),461 : 1/7*(19422*u^7 - 60326*u^6 + 95214*u^5 - 85050*u^4 + 104937*u^3 - 74067*u^2 + 24816*u + 16962),467 : 1/7*(-23622*u^7 + 74291*u^6 - 93681*u^5 + 57351*u^4 - 71848*u^3 + 59703*u^2 + 49041*u - 3844)}