Demo: Elliptic Curves in Sage

October 19 at ECC 2010

William Stein

{{{id=8| /// }}}

Elliptic Curves over $\QQ$

{{{id=7| E = EllipticCurve([1,2,3,4,5]); E /// Elliptic Curve defined by y^2 + x*y + 3*y = x^3 + 2*x^2 + 4*x + 5 over Rational Field }}} {{{id=13| E = E.minimal_model(); show(E) ///
\newcommand{\Bold}[1]{\mathbf{#1}}y^2 + xy = x^3 - x^2 + 4x + 3
}}} {{{id=172| E. /// }}}

Invariants

{{{id=12| E.discriminant() /// -10351 }}} {{{id=6| N = E.conductor(); N /// 10351 }}} {{{id=22| N.factor() /// 11 * 941 }}} {{{id=5| E.tamagawa_numbers() /// [1, 1] }}}

Rank

{{{id=4| E.rank() /// 1 }}} {{{id=125| E.analytic_rank() /// 1 }}} {{{id=11| E.gens() /// [(2 : 3 : 1)] }}} {{{id=10| E.regulator() /// 1.26539379176449 }}} {{{id=3| E.simon_two_descent() /// (1, 1, [(2 : 3 : 1)]) }}} {{{id=173| print E.mwrank() /// Curve [1,-1,0,4,3] : Basic pair: I=-183, J=-6858 disc=-71546112 2-adic index bound = 2 By Lemma 5.1(b), 2-adic index = 1 2-adic index = 1 One (I,J) pair *** BSD give two (I,J) pairs Looking for quartics with I = -183, J = -6858 Looking for Type 3 quartics: Trying positive a from 1 up to 6 (square a first...) (1,2,-9,22,-11) --nontrivial...(x:y:z) = (1 : 1 : 0) Point = [2:3:1] height = 1.26539379176449 Rank of B=im(eps) increases to 1 (4,3,6,3,-4) --trivial Trying positive a from 1 up to 6 (...then non-square a) Trying negative a from -1 down to -5 (-4,3,6,3,4) --trivial Finished looking for Type 3 quartics. Mordell rank contribution from B=im(eps) = 1 Selmer rank contribution from B=im(eps) = 1 Sha rank contribution from B=im(eps) = 0 Mordell rank contribution from A=ker(eps) = 0 Selmer rank contribution from A=ker(eps) = 0 Sha rank contribution from A=ker(eps) = 0 Used full 2-descent via multiplication-by-2 map Rank = 1 Rank of S^2(E) = 1 Searching for points (bound = 8)...done: found points of rank 1 and regulator 1.26539379176449 Processing points found during 2-descent...done: now regulator = 1.26539379176449 Saturating (bound = 100)...done: points were already saturated. Transferring points from minimal curve [1,-1,0,4,3] back to original curve [1,-1,0,4,3] Generator 1 is [2:3:1]; height 1.26539379176449 Regulator = 1.26539379176449 The rank and full Mordell-Weil basis have been determined unconditionally. (0.113583 seconds) }}}

Integral and $S$-Integral Points (up to sign)

{{{id=1| E.integral_points() /// [(2 : 3 : 1)] }}} {{{id=14| E.S_integral_points([2]) /// [(-39/64 : 279/512 : 1), (2 : 3 : 1)] }}}

The Complex $L$-series

{{{id=15| L = E.lseries(); L /// Complex L-series of the Elliptic Curve defined by y^2 + x*y = x^3 - x^2 + 4*x + 3 over Rational Field }}} {{{id=17| line([(s,L(s).real()) for s in [0.5,0.55,..,2]]) /// }}}

Evaluate anywhere:

{{{id=19| L(2+3*I) /// 0.763030838302007 - 0.343385137835191*I }}}

Taylor series about any point:

{{{id=16| L.taylor_series(1) /// 3.51873114993151*z - 7.76698842523228*z^2 + 12.5750690885479*z^3 - 13.7330374564920*z^4 + 8.64019179676616*z^5 + O(z^6) }}} {{{id=133| L.taylor_series(1+I) /// -0.485502124065793 + 0.627256178203893*I + (8.10448376619248 + 3.38500260152220*I)*z + (-16.8659849368413 - 18.6176821545456*I)*z^2 + (19.6975963690651 + 43.4411765145958*I)*z^3 + (-10.7717354501570 - 67.9428401937405*I)*z^4 + (-8.01551313473187 + 81.0705067446227*I)*z^5 + O(z^6) }}}

Imaginary parts of the zeros in the critical strip

{{{id=20| L.zeros(10) /// [0.000000000, 0.895959461, 2.61710659, 3.23646650, 3.80592295, 4.36500628, 5.27684817, 5.77700168, 6.37368526, 7.48823858] }}} {{{id=131| points([(1/2,y) for y in L.zeros(20)]).show(xmin=0,xmax=1,figsize=[2,3]) /// }}}

A rank 4 curve

{{{id=144| E = elliptic_curves.rank(4)[0]; E /// Elliptic Curve defined by y^2 + x*y = x^3 - x^2 - 79*x + 289 over Rational Field }}} {{{id=142| time E.rank() /// 4 Time: CPU 0.00 s, Wall: 0.00 s }}} {{{id=151| E.gens() /// [(-9 : 19 : 1), (-8 : 23 : 1), (-7 : 25 : 1), (4 : -7 : 1)] }}} {{{id=145| L = E.lseries() /// }}} {{{id=146| L.taylor_series(1) /// 5.54631009473167e-24 + (-2.08951550639391e-23)*z + (-4.15704192504384e-22)*z^2 + (1.66720224204167e-21)*z^3 + 8.94384739590089*z^4 - 33.6950287693207*z^5 + O(z^6) }}}

Open Problem: Prove that $\text{ord}_{s=1} L(E,s) = 4$.

{{{id=132| /// }}}

$p$-adic Invariants Associated to the rank 2 curve "389a"

{{{id=26| E = EllipticCurve('389a'); E /// Elliptic Curve defined by y^2 + y = x^3 + x^2 - 2*x over Rational Field }}} {{{id=174| E.rank() /// 2 }}} {{{id=21| L5 = E.padic_lseries(5); L5 /// 5-adic L-series of Elliptic Curve defined by y^2 + y = x^3 + x^2 - 2*x over Rational Field }}} {{{id=23| show(L5.series(3)) ///
\newcommand{\Bold}[1]{\mathbf{#1}}O(5^{5}) + O(5^{2})T + \left(4 + 4 \cdot 5 + O(5^{2})\right)T^{2} + \left(2 + 4 \cdot 5 + O(5^{2})\right)T^{3} + \left(3 + O(5^{2})\right)T^{4} + O(T^{5})
}}} {{{id=137| show(E.padic_regulator(5)) ///
\newcommand{\Bold}[1]{\mathbf{#1}}5^{2} + 2 \cdot 5^{3} + 2 \cdot 5^{4} + 4 \cdot 5^{5} + 3 \cdot 5^{6} + 4 \cdot 5^{7} + 3 \cdot 5^{8} + 5^{9} + 2 \cdot 5^{12} + 4 \cdot 5^{13} + 5^{14} + 4 \cdot 5^{15} + 4 \cdot 5^{16} + 5^{17} + 5^{19} + 4 \cdot 5^{20} + O(5^{21})
}}} {{{id=27| S = E.sha(); S /// Shafarevich-Tate group for the Elliptic Curve defined by y^2 + y = x^3 + x^2 - 2*x over Rational Field }}} {{{id=29| S.an() /// 1.00000000000000 }}} {{{id=138| S.an_padic(5, prec=3) /// 1 + O(5^2) }}} {{{id=30| S.p_primary_bound(5) /// 0 }}}

Prove that Sha[29] = 0, using explicit computation with $p$-adic $L$-series, regulator, results from Iwasawa theory, etc. (See Wuthrich-Stein.)

{{{id=32| time S.p_primary_bound(29) /// 0 Time: CPU 1.93 s, Wall: 1.94 s }}}

Open Problem: Prove that Sha is finite for the rank 2 curve $E$ above.  (Using Sage I verified that Sha[p]=0 for p < 2466, except p=107, 599, 1049.)

{{{id=139| /// }}}

Shafarevich-Tate Groups

Back to our rank 1 curve, whose Sha we prove trivial below (hence proving the full BSD conjecture for this curve).

{{{id=34| E = EllipticCurve([1..5]).minimal_model() S = E.sha() S.an() /// 1 }}} {{{id=31| S.bound_kato() # no info, since rank is 1 /// False }}} {{{id=38| E.heegner_discriminants_list(3) /// [-24, -39, -43] }}} {{{id=36| S.bound_kolyvagin(-39) /// ([2], 1) }}} {{{id=37| E.selmer_rank() /// 1 }}}

Heegner Points: Find point over class field, then trace it down "by hand" (yes, there are better ways)

{{{id=41| y = E.heegner_point(-39); y /// Heegner point of discriminant -39 on elliptic curve of conductor 10351 }}} {{{id=40| y.numerical_approx() /// (-0.888422002508970 - 0.788950457973954*I : -1.26899253838416 + 2.02424289524747*I : 1.00000000000000) }}} {{{id=43| z = y.point_exact(100); z /// (1/9*a : 1/10449*a^3 - 22/3483*a^2 + 23/387*a + 114/43 : 1) }}} {{{id=44| z.parent() /// Abelian group of points on Elliptic Curve defined by y^2 + x*y = x^3 + (-1)*x^2 + 4*x + 3 over Number Field in a with defining polynomial x^4 - 87*x^3 - 315*x^2 + 7695*x + 139239 }}} {{{id=45| PHI = z.curve().base_ring().complex_embeddings() /// }}} {{{id=46| EC = E.change_ring(CC) X = [EC.point((phi(z[0]),phi(z[1]), 1), check=False) for phi in PHI]; X /// [(-0.888422002508657 - 0.788950457974162*I : 2.15741454089335 - 1.23529243727291*I : 1), (-0.888422002508657 + 0.788950457974162*I : 2.15741454089335 + 1.23529243727291*I : 1), (1.51393212680968 : 2.53038144982774 : 1), (9.92957854487430 : 25.8214561350522 : 1)] }}} {{{id=47| sum(X) /// (1.99999999999999 : 3.00000000000005 : 1.00000000000000) }}} {{{id=48| E.gens() /// [(2 : 3 : 1)] }}}

Image of Galois

{{{id=51| E.division_polynomial(5) /// 5*x^12 - 15*x^11 + 257*x^10 + 900*x^9 - 4245*x^8 + 9630*x^7 - 31215*x^6 - 2757*x^5 - 113225*x^4 + 5985*x^3 - 55160*x^2 - 202620*x - 33911 }}} {{{id=50| rho = E.galois_representation(); rho /// Compatible family of Galois representations associated to the Elliptic Curve defined by y^2 + x*y = x^3 - x^2 + 4*x + 3 over Rational Field }}} {{{id=49| rho.non_surjective() /// [] }}} {{{id=53| F = EllipticCurve([1..5]) E.is_isomorphic(F) /// True }}} {{{id=54| E.isomorphism_to(F) /// Generic morphism: From: Abelian group of points on Elliptic Curve defined by y^2 + x*y = x^3 - x^2 + 4*x + 3 over Rational Field To: Abelian group of points on Elliptic Curve defined by y^2 + x*y + 3*y = x^3 + 2*x^2 + 4*x + 5 over Rational Field Via: (u,r,s,t) = (1, 1, 0, 1) }}}

Same mod 5 representation:

{{{id=105| F = E.mod5family(); F /// WARNING: Output truncated! full_output.txt Elliptic Curve defined by y^2 = x^3 + (-350100912848470557262178354914780276580297990571157449372901113371873512333562228749157572253063355118187409237207899324506760329921263064807247723908536755135051803613540977040182671638923846671210152426310283686085796678191332592937705890916935518557151598754822259731517510192150922826648559120159488597001572610400764151973851684392714878778723876501221425099461085590917912292724983607637645107524865556414431757422205058997175127024919679973700729626963052615689100194152515484014289804500994560339954531764384106772741292665339904*t^20-3076148796739621953443219074961560223321319021417154542217433481890039421403133361733468069441814085528551842954583515856927480386779263830554314459667991524379298105797089586641140433228801228410106047409502556922621995718848910503560837300872037541227759970904447681142751663853907541247685568093133174022760283293193431559118771450835627388250514425123655428923179973280471609300183262344137220027781119360322565674277599408304848530625914691755189946375875290182368565932293775457411843189471819619076958858710326520370180451981066240*t^19-9255805954515104139134796453109504875910216663589848919548603527609214366856591797450154219943513430001925852260771135809779164982607856099958139058201304192413720067175387955738378326497063933119902127963007753700718469307791073884476912050068709908984129857476607321136187279477936956595851146255586236255154101892736506944366171652485954524092360987277877800894175331125913263664938284780195683813723391967099337666658862104161796749655723114885475782299038021043653771944363976685021561398409853716872744762532370949276783161198510080*t^18-19397013449155320116122269126763868609414612020482748191142375841983183486810718516386492337645036452836314625194877805425950009935690179217819728655275526230940295981347238035715348090570054869224742868936210569879798936643390185822146593403579732595328213957213839826551749150139201891925648214323765604948255786188599198288718346287937814342642254971778504394083272770293660706608881106176260975328036488365620284230377669104532085302934447006783353481701070318387373697332532472683862310554447900899741133492764684208892853235713310720*t^17-33322256906608665762486911443172822768459203130474271370223873457806377892513528789543149965395147151715342596677812777521737511634301712627151152006957725950586006558570724133001395236816995945330205506557199514285483882700898891843101086409906178676688895195736930100074642928621217186443694319305476310619831090690829050530250069484681282703517083550557367748108912358016846278545232230216448743840545021747910766463724918861084223906996834238969444740431327386546034771810232842143352195031615390772584229096246184065652637527179264000*t^16-40609447907018192735213912804962068205670962757903062390340258313605635785312494812762898124562177207642532851803543035912414278122402260936404402918636161572059665503776313013887578694615712204187410242158865333126345394590734906115745861851339390901692201972986406091886158707627955085006216802645272011689291019520028838975822408470016814034447402524589041250488784069367624587509209999105986290571681058528555669881333790591650150554766795569132584732641423573742768663225954242244850336227462156532620220650264756353552932812582027264*t^15-31731901206502079507143908513980355856508398758627105660839562374610621021939981435759508452202444560181593622165934304607430156057005663506319818063785026055713655623777066128714741695000804228746783981925948781105147069396966508865777790939490722482041065835749288984045987520798603906530794297933289745146616203500035712653712212911683847391197615597426335260093161827629559683658564946467384115000672726092868187518169623808965646760662245986066750501648083311609291925866992781834914925432160951632497766724270759032756603288268308480*t^14-14685725012897922331847447917284722047275557120481621112109393023537797720853707757690175837152848274435994135583882219483685393780340893062866261352756565192013134147345673400530675569679843840597219480945722046209396906634395233846297238710337811475235567476848470647044976817649801638022513243645859771513766612644829446415715804280417969729933965865848717114167493509569554581735198004685603429709053817147863722301925058091615724760333618448110685907580440422954617841984650644692263134076766865008173924160321376901012785997398671360*t^13-6305671210764502404382844686599298061187190279662192697272491442184177009184745323105549734834664960742044636619467780798299989643839382498153413555330282920116492251253654690509789556887359262851284730283138844983071419228359335848121747023531694626521601533383744910289520937123303793189182255171057212431627171254075670215277112284201082493538520967028800404870013813867944164501532624713064770220983916943138517395428089730500175138267148816516019479781997913911038493174515845033960521716745460372256599456119525832443565013456650240*t^12-10229195092244162261088361237248472612713619672224323674757179234223081608786812289725432999279362738287296261940164819814436661980553896466866771543323901283482392838391720863479216688473745918621963907873190789969022738198280689102642472416837589437054043706153872371115123095832193811864730965701449742352853563620412576356887087473405028502554094469521448342830849028958518851599988629507223524994045961200822513626629503975220473250802550301784024496168616133969538531892494290362529875029191130225444619730680457910053816105959424000*t^11-15551796468324226821460001934602449432121918531030089724731604393621165407826515639277727325832815659732027689608695017736534145210728625413179622788564132929792500398007322127402394923357501914610704871737030696160364764321879003968255022497583012171335119443716882452659236035024388698553200790298865708716662833749722504276083013405180388973179938568783740314768317602101504756519739740369160821373009255494635335207476264180634590899470173199574363815400142605763118359554338457931106546410684139196677608279603856198825055688729821184*t^10-13858043130140802833060838161451669689176236721891649040171215248826184399592794693517169807015193709554633964438800675533786933129340478448586056952876711417289375509716079865770841276687214070835134482866337815926051725293342257801446731943253515646804492223469602889796597757666721378871155623977809432174138418575769636664950979836006893331997956391971924275688276091855663477139523797494751980021528059808623937971025976379350591391020776461970434610473765324466543630529010566908806812662896207035949865946784545097993195020951224320*t^9-8116670348431445132134124415107152584147865134591237481434450737336758604844819557895552560331333815699256701383590875372273235805279392219589094259538323957606562229752021486491537550752313898572036728871399016967606507587964048798693299541002583706432894870339372705161304380667318643247214254550283761489032970130541443898679749867239858908671345436039348409966810026573340360898115686266981749312701909301063563554076322795258346635402266333493168435694398740232625736152895355844106578851312001427896197007633160851156699574215639040*t^8-3500959532752506499203495260375058934537965060865760185302577947438642491822807889593657931706240134155295880917314815255866617274343384857234135871857956421379101325026796734834682390305910859186024167264258111782327591973431579859850429435585887416119443553555267568906909728807301297155678399704803154988372632480073042322352814784173549295688841312834942051699365683426983823930214908120942080362121396393093827153305096243803873719453446033374827133525864501872687754052473095491247143646987070839710363134063250634543717464523407360*t^7-1221275187614874514445289778944454285596465104048360758067024947261026267529811959050564855340757913569466778763853100851306645547477407351364656754346965718561742939356633346172578329650921845429997914062753761068893595634551163298230807344350870646494775479925891545575088494975222837664785648410832732031700833026404516467457732741331058596420625081687441120078371128068355447080092929625644520204924219900318777683252437222767599674311130487349270040101097890990590782910346535908025289042898620063370664854409701199814757598625792000*t^6-381417246079249206694614166162696978855619056812394668899293382395883635840021705074896702015673439787722764907670390693451095016130578131424876494550459102198105561298058440903741209757258631889190598883645011057028193753219579437394697749328319361473073697462728839979773272707641564205244309447860841435570964341275600617569755559741445693064486076957754631402063528964390577201968382728056700832802350150200945336493600472595606868007506936479512654416009669129254582788357497532738077354863148049605477788771741657954886132091060224*t^5-112551570574980891773811636302021468927877315616126700666456896007082977913836709461407582925778667686941854631366840661772035148455795719253997758930588343717517057258536281025775501942452954309258694738893101816754060163230873634785137080431298305546230176005151045782618103369364770190723100011341690703910047892416299145131582766538870319183947787859450221517354693134506827441057307001936308044394667535228905337998053123865018264322577284704512400448028351873217939294683640611420506602444522400424458375827598076092589800381480960*t^4-26058361711608879213191088535712635764809873901756516264266552718091923202181342014859534514236090628933845539409336919144419779593705376521719810413575709595942441927094880923384135766196588123786400814555677341429647453860340594869889180892901812758360585532518319292039245925653548646264624437904388877055803564576678611103695720318232686544148050214733899766357250051779537896787774261593324474603651401015992448886054161205245498219421595449407687373319973807680313133898702520724362544964113821329716960721042207720977020244459520*t^3-3303367856862239658625675643619141569877394430332379754297924675941817823009137853167614402176988451597810372126900279460600625219347337429950306610862540153072644597835618381587943370965429296290179377307076708373776927165571842421687770883332473461871566921903230794214218659299397154117582883761993976238241189017658710639718558027312527786921359719639549300206148364440954027531426042737251914300488063774907865071436195337259960727979222267343848517638086739040546351203734333810417419468174168783735457080051441942178630918471680*t^2+26448096093767231873475749788462477911063036527931534720023760339223108259612110047450405125775971164253458082425295793558529538168082632788670098774276182392099134824654767423276965398531384491020404700169639403847968907092673809347334090755563528547253529980706260995605099454774968390274349068294110429045574092038329130319915984695584423778160313047585208626933722472954254772342658635123358518377822044181319349666847925877130530609872468284322117648541933457451496360348958714726363303209062756926139310762619634977393214488576)*x + (-3625078754241032940340142870639382239824437442834354414665625448741596096475113283032950127770969513894815461392713912597448334593802328134012764726468640856322606923195180841008674360770490995542461635800546342725905237392507101183724035756991852554545184932257984590280634990775411222914593488198055160348861512771039995408434383439739435596490916611987464411122809198352576516458335191484652248862542355532297684611173120589003961621899636838015467017610220888656418531238253170331207153082343570066733771528483753155559065774985815751389328370148361777302626408993756250221116011170504690155433747332722028214541404088230258228723888708190629846816202533912811712885582793649524618124783849719751159933532263973906903386673207418479506272804035673160990592244698806485479537808233452125497493827878912*t^30-29643494017469117355105243834298949093885853845245185816555060248704899486930860699822842630941476446024904172307973959846071477864929377631279044052742671664344115609718670953472658057280606258942551399795386093876459151472185963832855231401067925186994458041032395794883865459205063491004564119572094103448717844014957399408736897719260132563159146545897163434141130055732448320026124975941724914592392294838001010853400130072898951902924794700016916853823083549115412002741070212744640743786305840478424659731309475894794067146199261684522087995180055057720282725041894272150906568526379012335960867724121888227363330867764018325822795468593794938675916775924922153464057467331777664006969976935597740405729978546324980655362983050067521196439849617822100072019267313116420395172794206642118293926707200*t^29-158250198077095267357432534319406493873983463737886057741667493805362795542502120203654292742439872633810426920692131103715868026336033660777371955545442746227997654510196931480560312775187735564841585266187941079556282065253162952279109137381542935391776531808268559809839265960266253787998850763762124202407797216943036704743710712554273584316123846632441577335471412613757634021886161184361398710147597290662153786543407797717216784204510130727245935469119089171045393283873163635367343008523336853646046555496507509578160857806318829414173294338713039611124087612749305455906259223018987423123595555852631565157498328928384383836769096072921940985785415239087455135141191497125993515484025330685214220815125215328345616859373688983384730806297262510021754041773328008215670705258982200154246571769200640*t^28-580287130793241721440855052873157278528883211304629929311431967045741232442242251475413454703364066077595965128539759168876623156368672118195825778365306172705075594456197200200252247129817002621177779254155040038946136156291472533130212001971411691076486549833780849298858716183438757432083523993146734160525941366876981027784393770909560841390716582033215069844440885702259345962314501636286180669398411076005272005812790476247983913956694541563736790280513930029871856040450832707038124197739822895387232377565261665765172092874680235444129501257341101186623286294355790585534643248722780403397316412394341737028141967887672646109743899149156532380491198735041243563061271403560330321859036792105044132707449010890864169782327975793127486700562723179445473694920888356977780461301168241617944004190535680*t^27-1418464789749877277213843374875491177258396060010767261436575114973837987585161810029347928006734881658578556996912116225017143099782914925527700961852502494573030312663305430764470156152721251323845956110277336654178423029218906861384794904904785221727876533270501727730163715851421548840608716700085384235304617175009781669349059966056199935381769942942262939465844918863288107244155610026181870119462391107234412199219656819241996731189482121439186037004420786365047934893317264817007778260959274238002148152393351955262450510759866830147083930790026360702799474803759325546253698180359853232517318333177649707187899071906139435920038569550928267349585564486141833093036856997398985953118008925416891543295728415033349327206554970089002367632529781394401434903505053881280830036749173997454591783149240320*t^26-2510028060053460215513665690110207175521734668807065693720507863845383615097826620388629011614189976720782121631185376659192886731954408496123480394720851899747402887686159966105225504823389261550299425140272195088890079243441414805975933460665344922029900472088760720796202629662252562079136103877499619142216052441396006900752625578783317329301394829270046607218585647417121415138670100281656074423053713582185512410259817814306511576262491943775325158921217496735020133050699484839573947157661100747390470061161551374250552360403795396264957199113199017985255078547681720028089748997296493082392851136380331390209066518363499461522404751815606391725452161627764191266722425651924077279109884869032263716217232129463937962310348937186597005641676516233891203940447253092519431574097490011534514425570525184*t^25-356411717256297956112917833840641643087089494076091186270012632147022844775569347753146833250419132944544263704694886292555390549735664959689226535610761526212473483526061805784914546451765554861925589361404996282 ... 873347609011612102871371407056769886700078785604018364257096692936601233458166690171957164274383064073693351112306113328933136171380396875946689939176058771672133237006633723597222747334721038822586843103011113755599704145150773694367819195680730313644861166473486751609971217696707955903193878440298051804447704625636629160825603194709408473879545459691903123975021679368417612667276207505223015130669202408095925309080901003896168483619806722920172887685597084959059367175948360141515832389477386971645887679849661936435200*t^19+795806354924869266373325970184766841850378685832573550999713737587613924200236970461131719806794375057430310264527538750255870131083593879050870894145669816286934961416425356445429823566284817385573777022614893150741521883034201353187235131206579893164581576546186839261195619053483002449776636245583170832063572311855928084751029893228889160952320067104184024353317771172046774748829795137420956127030713359951511972643855329113972672350190254860133483173869532659882228013245649741577611160504600583356127695964609143926749438354809351794562352105502176389840044815948260918746497260094580642861395483545309141940718145133102838439897369662513941510441302862591570998800253687621240475996538864620545077975145982038651639542008145501684832659862244498555316130332857444075371070018276593512880941511475200*t^18+2615193020464744849319961868068658811722539502929127516529725582482184444809773327973385191116749751228108211261217693764616065516933099803073970993222294736230894655827062253576796313669765047422746950104458446716248153583810954033681207799635682689457647237681874696538057050831525124161202497533415479860813530693767724145132115596421032239869413839313713604663843992746774102744527322745640128992905846916726435826935224386579527793936949302668420517720943548401468618921848762803038610332166688337798839698071242364900914277579646676260908509922775793665688751177751836233960108796814101358305570031318342239710263543283900977057895265622921838926534686669267864553013480555945930591529747392186990115926017365417090460136483992807000256475100749175225339646839510007093241336889560055811761545779609600*t^17+2839430557851775749341813881127831406751553491933817070577136019767532181880165269836521603347158546506921794447872171033732707780527946458550444740322308673943938050681183801617457556464697483782739779199333176247109017779916617009223971836487061777193291256748736686143769181133358428800943673507771002897717922670209169063520031957807823849120552030066450468843526035141881090903466666206069411310923756193232580732838581011960855741262812061211648158410567382326693071790701723673547248153958700430905096512678883558579633328317826240411506069082953542772167487754357160422429464713424427178978249730056722685043266669367172091229353512977067088887458112097246786564379358176377086061928457733358405902605897991406025316884026774475186819647545153884581981666148650695903501843393472607947520304008396800*t^16+2099856227636950456288674268929434671236886429211352206981980460861283185079938533673134282289577582648616727474412702102385250336629924782041615901046389835289189165992286028296484779067918410982823894943798802599644260862189657766362598307114587667840560755747192541705539015581429127827550490812074370872535481865962358825702028087800823347952484302297224123914061257232405139249615546574617271374916084245765098875451306971105732043429791168098818442459718820484821941255664693459645676433062443018463695559973300595870800042869579710786160363135804021395600590682069427487191228756574777250959574104768325754766118209418025286396813063350150677376024567863420676902299693585338973277550130781747104408767522539235710407917922133302344315873821415462559360822314908513672363544827006286708473731513057280*t^15+1257998980616394386201251505949415749135490519886071621161635959064288959839318677530485519263701316712332284554802876656038195513970715942861315858740198909364688964034670018025361433022934094135791432898334599250944186352316492008827709305518178786816754070655990340345730502916562817535629723840770314531647827306673086952072514054837643862329991065526089180664067408385466890723696145747776715481129215841742193550662228500340821242222216440301337755061173918097987904101627251535329680613349572613860516357032595338164803285334671208893657217593352471726398158226958392594094677455445960862963567932232180659967872329129590918964752950958838250547449393463251728631072062866227880120081575180925504052509035442465515914263391189892178370874030455311467502293613240235678493299171167018466871480208588800*t^14+697478232803568884231052166663781071873553340027557192498556450271766672088908068303803544614277601573380139442438045133549547687073812574737046125508909430904234634814114914002475778334795448797267180509469779732061249880618305438384363215756574077629379806973037581196539268048231997214441641069244450358868129537886865165082018171647668155756997476927782197522142671665410877903981108295176783693999350357495905106183642273024816809371366516373180456119895274877998605577344466257286335674461656936337758479998159498890318692873115197143533090355634853634892315459889598072979692284175135431118143033670859620210236816449684410119977743008570457984075595325556070285423858354704136974992484482094709177151887318474775336725921249241486589155184908587602156725373167175032317407007930894233548043059200000*t^13+387181474682710917704554918673067458587176644030493239987199366523998806100907454314011529932927447375913263241025617529227158764129503471887764328145576528338176593533486573914880123204083618353398004586121926966938700612609947769959449494837220626336966418096992296004494653850401151981057291845386678611123465492550781044712956033889345748204926205562985203406262685273014151259778737692980423463495938628820550334339159640487714640194248641453118161691043833922693019858792383986469220614531970573894328349650724996710175909553310099579141873586124585102528469986133630290086565750064639395529197391351169534488051974781353989573731325940605929349163312759626304785413032222802994895403628348728373118038025409795293281635968748966524662931020474117765490854011856375689992821813250579464794775171891200*t^12+207562506146075643716145752223934477845010327485943582577967235042696025039386925917026236580401195712946941912196963901916924199414643419491359284813682782291758039838970027999608834307720390044955659609848693798465454907957995114969086393505135918708048663171745924849391307060358888101088167435659589301867586010584404447377821816681833159117192349530502381290232174330989374998218020524858457885690941194918534833938054811930852616203353456440322640959286187160601510928690523242644187657549749693647994684717958446354097751794610068868357732143227955977771467571671739568734482996365924982663576164763183391871850104463532658446837236001428629397627825500552954948415805915127545913374847869274082807135142654975544213644242521211086564891992663628284588813612902812656789987021122109581844569862963200*t^11+98763035107913658846581138356778755202528708381266467772036252838432159494302605329200904378937790477947968484831770729369074166755921596005148421186183856925035433091666338753043990170897287896172209432116871745935177168881434456269572232532385211661052596475017434553344467217562216089318953425902822510463993157821419039210202521117446222370677698002708028198103981343925965963974729171105335990588160700319654352797773107798172279042550799341611662610168396283749934464458723440576821556719422259431464047180611134989057246469080149432138421463893058446448311991956753182247569193664850528763622751677236627114889533807829873858828699738544089332231350679526799775238567038748225981556832123814874623100017442187330210432316511149302371393638416944804850740922136945155406798980093399369201664634388480*t^10+39554124518388236926890943977135826715154180028427424486135900977226954409111332945901965023712873898134479136202605998371488601406102607636010049817020525057345352093648562188863138954147122460277826274795514559737610921976376563814652473981861063576458376385505902716066859924540634843687258014705175142417619421434528795353919925962609195200223735005597386514693830392012029623797595608937402053108711944385331952413000681437742574911679613706101812334672447985365363728636308572178800419022581959820317472273123819879912564099132837880961055387724709239781804333112261824941104293085093628450611826550275235542451442457184681467567513712479757543130785856826048088264156667150522006815485396434446883856213702630716971288107661950841465623936959552375998111051317862937497250187555505959076306406604800*t^9+12987112945345368944547987644830162110782455720539584455267366022774070995504996156437831862905006377098071144797170684953293986858106570677308903911035821240748691828030279904237374205310037441161175997583311012096810243985201075342772072057167917640110830514035283977526726804586230086339333628048465562777682382527601828108222029031053185754688324331809916044580990968667573108187471068030892647187557517587057384005063035169174889843390067848446805187806648489801895668914948502536380530136740958004253137049806231232755774085583212649444017616755921821734349034282479490340479796283280875164705885823630711168215374862726493144489071169012970046771542283388564803745652186269180661419372482960714578926586716080131727682888129516821355518969533400227199572154828718087167132906769737960097883514470400*t^8+3405041838607328663736642080065113487091579659052152070476146991680709714480079343816034540483081450054484313721983739637947131269115801865412607633124868363974731708669541166069129310847377856538648363132111544951164323721353363451630251822361259169375644910721661300714562943539934777973332867805745724803531939023372120978088596816060513188824410772752327849052521417603238452065513703064946406257600980267349975002574091521861790716700188023055882329332366442347220554819238585476015676417805019305754278126694899807991933677040307545233827464215376216128841153820836180363153802200143033685382992862968562638440692607541576848993453475074366382435920956798807567923207442587564837195291957399824698502547643044100946297070277239391113279243753981429039219323272159164888155363514022050478084325376000*t^7+689713921916375359701206313748896225453641222878432663163087359242925492790361179684379155957064424761901502088200238200330579574683362355614633518753793439769715205379666466396884345858566297831549306462288909998402726030637263165644630776786905023024925557656074680426509589384022601268780286996737722557938408116844557100615837154275707685080610863683244740734911637348378052746562206675148370636742732616776963729789955734258990180246474676394378617564834922792702718607662876015758483607509060584787751703277937955468847057998937752079462422943975851736243301816325033885529605382532833918448518561808073288374465147891378350774385190514055422026232957321963123237606105298507747979771670172776590336665310616650402501040813592351055402042895137238439795722920834206755296672345229636214161040998400*t^6+108487090618237937390210579127686968016947068130903449868660799331401997723931333927183648807995892698304326605445825804896981976941130947966130825856178025843223818381971789699154431409306649421794161693127152736785905224427931297171064131404892086700723837238290532786666697764554677747732968678818170052782134115308708789370461726376361923034046126018809018287068151331617939840364546351227466172918882492870700232744278559313963465757277192254483059189874961813095200441850823199949306523678166626915586174681800674326998296561916492293277750606440715414467299695063568678246263496255776111930849935685052478082419722067983850626809055380443971272373295590964965805225112926810128467734628386793121670374717268168424979126759323355814781208448793896949410040511226126181792158614167462980120626593792*t^5+16522759374806912692645897997559547006311321128641426299396761843970842527652115121063638615709756612104564418191389937530934947895669543747169381485001257210127360142467133461743637350392740041979339014895287212516604716859821679219829204719411075880487818686675063658767867473689569400498874163065601456363681184451683159534734999242857211515687039996408239534441072926041795616167393065483838118773079831003072292642831677161715474571291319120855577023239229351599030197067601437486277070207673565073881802778496183066030578265024172820880993767580056151773605035146633243148043392619414688700715508255071526378967288334967056844882264665923521977543509977661027303883041275178365322291464506739637222619084251242182372466976147499280886005611181962882236567693061925173464055725260702162389827584000*t^4+3424091298642149186767495796316369555108144640616235733589755418657078068413131303409226574471218708977536212993923544037517993965164364469455740915061593518227226813480722638984883003242193749399662025587034273656039594627059647779205005264199293392409026820198654113420319647751721922538175399000645243733515279990477556995349258323467616969614827584943126315992649781854856480349105437971788134752866135470220776800072235613776134975142946519747363705095396526694751232871421384341526008955918046652122632304761848515344569138763719403546937526074689763909971444654976369761878705145378494902532886443944196760954454864602209344468728891426242117630667084592280868697569688221658810019499679871728610896421213349530508589928122200908051351950126752144444523234456353025250019008340588005551232778240*t^3+655735605369739636946482719795143182622533772841200859137480414786097359036812273513363649076296493788424657834222199655473052065068897567401466749266992963104325549506178486102037161458838175330092509378348988655053775242651758208601790402979199012739129707869877956854563189810954797112281158379842495779791005166362408399732382587198998525727412517378196206491054859995637455842133571580152238777041038350439251528593604240576963516737205012931002340851357307164044728530626692129266134150933203018870053609442543749159992463613809665367656040121182222231313250609842010624902882261527923760708528408056210763291010045242452552336611400181445457985222001398195729005472941900885992756207989898666567299524512813962407048317410433425273056554749474371511684303881975150463137004568654665796896686080*t^2+68794202438189985776413732051359181815776048471819405270367151669304989831261128600333650368818337096662461668995856170253654933160430136445572524995260391622230302165175935782932093731307263188922835205146150353765984002122740821966949021014749947446416780479147858704916601752604042220293365156095642218626289216013437401391940490372077133118618844048851880711902395298719839421579729010091446256889985796949101116918888941882695537210771326943808572555190375163007151241790123479181246838197779667822296906530457272253238159962292966685047983735037736485258849132318697380817931765260852969075718235537370373948294696267330612395910610329030791396144147823222258950348452096578699862190047059159955939451487651687704666385337340515947150894363358226034575233141745631477821113345581207536344760320*t+2293140081272999525880457735045306060525868282393980175678905055643499661042037620011121678960611236555415388966528539008455164438681004548185750833175346387407676738839197859431069791043575439630761173504871678458866133404091360732231634033824998248213892682638261956830553391753468074009778838536521407287542973867114580046398016345735904437287294801628396023730079843290661314052657633669714875229666193231636703897296298062756517907025710898126952418506345838766905041393004115972708227939925988927409896884348575741774605332076432222834932791167924549508628304410623246027264392175361765635857274517912345798276489875577687079863687010967693046538138260774075298344948403219289995406334901971998531315049588389590155546177911350531571696478778607534485841104724854382594037111519373584544825344) over Fraction Field of Univariate Polynomial Ring in t over Rational Field }}} {{{id=108| G = EllipticCurve([a(t=1) for a in F.a_invariants()]).minimal_model(); G /// Elliptic Curve defined by y^2 + x*y = x^3 - x^2 - 640804168893951905637456113348245371201487663923467637718566216386653978913277921550075928125742*x - 98770846242844128774558916352826645288991075442204178749699276893375664008383305935974004704968720083222472651422915574042236889700867998179209 over Rational Field }}} {{{id=109| E.aplist(50) /// [1, 0, -3, -1, -1, 1, 5, 4, -6, -2, 2, 7, 6, 8, 0] }}} {{{id=110| G.aplist(50) /// [1, 0, 0, -1, -1, 6, 5, -6, -6, -7, -8, -3, 6, 8, 0] }}} {{{id=152| factor(G.conductor()) /// 5^2 * 11 * 941 * 109425295591 * 315154685475065659 * 4706373428975316362621837 }}} {{{id=153| factor(E.conductor()) /// 11 * 941 }}}

Plotting

{{{id=55| plot(E, plot_points=300, thickness=2, color=hue(.75), xmax=2) /// }}} {{{id=156| Es = [EllipticCurve('11a'), EllipticCurve('37a'), EllipticCurve('389a'), EllipticCurve('5077a'), elliptic_curves.rank(4)[0]] set_random_seed(1) G = graphics_array([e.plot(thickness=4, color=hue(random()),plot_points=200) for e in Es]) G.show(figsize=[8,2],axes=False) /// }}} {{{id=155| /// }}} {{{id=58| /// }}}

Elliptic Curves over Finite Fields

{{{id=63| k. = GF(7^6); k /// Finite Field in a of size 7^6 }}} {{{id=62| E = EllipticCurve(k, [a,a^2]) E.cardinality() /// 117837 }}} {{{id=61| time E.abelian_group() /// Additive abelian group isomorphic to Z/117837 embedded in Abelian group of points on Elliptic Curve defined by y^2 = x^3 + a*x + a^2 over Finite Field in a of size 7^6 Time: CPU 0.09 s, Wall: 0.10 s }}}

Efficient computation of the point counts mod all small primes:

{{{id=60| E = EllipticCurve([1..5]) time ap = E.aplist(10^6) /// Time: CPU 2.28 s, Wall: 2.29 s }}} {{{id=56| ap[:10] /// [1, 0, -3, -1, -1, 1, 5, 4, -6, -2] }}}

Visualize the Sato-Tate Distribution:

{{{id=64| P = prime_range(10^6) v = stats.TimeSeries([ap[i]/(2*math.sqrt(P[i])) for i in range(len(ap))]) v.plot_histogram(bins=200) /// }}}

Remark: That the above distribution converges to a semicircle for any non-CM elliptic curve over $\QQ$ is a major recent theorem of Taylor et al.

{{{id=159| /// }}}


Point counting over big fields

{{{id=66| E = EllipticCurve(GF(next_prime(10^50)), [1..5]) time E.cardinality() /// 99999999999999999999999982865176588640916234222362 Time: CPU 0.03 s, Wall: 1.55 s }}}

Example with non-prime base field (but $j$-invariant in the prime subfield).

{{{id=111| p = next_prime(10^50) q = p^5 E = EllipticCurve(GF(q,'a'), [1..5]) time E.cardinality() /// 10000000000000000000000000000000000000000000000075500000000000000000000000000000000000000000000228010000000000000000000000000181609431340990491938162471889163591442768033541398879013163210299401542467472841889372639005122561820006471215426251120821802 Time: CPU 0.36 s, Wall: 1.65 s }}} {{{id=112| /// }}}

The Free Abelian Group on the Supersingular $j$-invariants.

{{{id=68| X = SupersingularModule(389); X /// Module of supersingular points on X_0(1)/F_389 over Integer Ring }}} {{{id=69| T2 = X.hecke_matrix(2) DiGraph(T2).show(frame=True, figsize=5) /// }}} {{{id=71| graph_editor(DiGraph(T2)) # WARNING: converts to simple graph (now) ///
}}}

Brandt Modules: Free abelian group on enhanced elliptic supersingular curves (or right ideal classes in an Eichler order)

{{{id=76| M = BrandtModule(389, 2); M /// Brandt module of dimension 97 of level 389*2 of weight 2 over Rational Field }}} {{{id=75| time T2 = M.hecke_matrix(2); T2 /// Time: CPU 10.62 s, Wall: 10.64 s 97 x 97 dense matrix over Rational Field (type 'print T2.str()' to see all of the entries) }}} {{{id=84| M.quaternion_algebra() /// Quaternion Algebra (-2, -389) with base ring Rational Field }}} {{{id=85| M.right_ideals()[:2] /// (Fractional ideal (2 + 2*j + 2*k, 2*i + 2*k, 4*j, 4*k), Fractional ideal (2 + 2*j + 6*k, 2*i + 10*k, 12*j, 12*k)) }}} {{{id=82| T2.charpoly().factor() /// (x - 5) * x * (x + 4) * (x - 1)^16 * (x + 1)^16 * (x^2 - 4*x + 2) * (x^2 + 4*x + 2) * (x^3 - 6*x^2 + 8*x - 2) * (x^3 + 6*x^2 + 8*x - 2) * (x^6 - 9*x^5 + 28*x^4 - 32*x^3 + 2*x^2 + 12*x - 1) * (x^6 + 15*x^5 + 88*x^4 + 256*x^3 + 386*x^2 + 284*x + 79) * (x^20 - 43*x^19 + 845*x^18 - 10037*x^17 + 80272*x^16 - 455306*x^15 + 1876165*x^14 - 5640284*x^13 + 12155786*x^12 - 17733125*x^11 + 14442673*x^10 + 762763*x^9 - 16382696*x^8 + 16704432*x^7 - 3963105*x^6 - 5037274*x^5 + 4041921*x^4 - 621414*x^3 - 347474*x^2 + 141200*x - 14500) * (x^20 + 37*x^19 + 617*x^18 + 6115*x^17 + 39948*x^16 + 179958*x^15 + 565869*x^14 + 1217820*x^13 + 1656778*x^12 + 1017947*x^11 - 682987*x^10 - 1767421*x^9 - 958924*x^8 + 428912*x^7 + 612703*x^6 + 61198*x^5 - 117559*x^4 - 19606*x^3 + 8774*x^2 + 224*x - 4) }}} {{{id=74| graph_editor(DiGraph(T2)) ///
}}} {{{id=117| /// }}}

ECM: Elliptic Curve Factorization

{{{id=124| print ecm((2^197 + 1)/3) /// /Users/wstein/sage/install/sage-4.5.3/local/lib/python2.6/site-packages/sage/interfaces/ecm.py:108: DeprecationWarning: os.popen3 is deprecated. Use the subprocess module. i,o,e = os.popen3(cmd) GMP-ECM 6.2.1 [powered by GMP 4.2.1] [ECM] Input number is 66955751844124594814248420514215108438425124740949701470891 (59 digits) Using B1=10, B2=84, polynomial x^1, sigma=206979353 Step 1 took 0ms Step 2 took 1ms }}} {{{id=121| time ecm.factor((2^197 + 1)/3) /// [197002597249, 1348959352853811313, 251951573867253012259144010843] Time: CPU 0.08 s, Wall: 4.05 s }}} {{{id=123| /// }}} {{{id=116| /// }}}

Plot of elliptic curve over finite field

{{{id=73| @interact def f(p=(389,primes(3,1000))): show(EllipticCurve(GF(p), [1..5]).plot(), frame=True) ///
}}} {{{id=79| /// }}}

Elliptic Curves over Number Fields

{{{id=89| K. = QuadraticField(2); K /// Number Field in w with defining polynomial x^2 - 2 }}} {{{id=88| E = EllipticCurve([ 0, -1, 1, -3*w -4, 3*w + 4 ]); show(E) ///
\newcommand{\Bold}[1]{\mathbf{#1}}y^2 + y = x^3 + \left(-1\right)x^2 + \left(-3 \sqrt{2} - 4\right)x + \left(3 \sqrt{2} + 4\right)
}}} {{{id=102| show(E.j_invariant()) ///
\newcommand{\Bold}[1]{\mathbf{#1}}\frac{1732608}{1031} \sqrt{2} + \frac{266240}{1031}
}}} {{{id=83| N = E.conductor(); N /// Fractional ideal (-24*w + 11) }}} {{{id=92| N.norm().factor() /// 1031 }}} {{{id=99| E.tamagawa_numbers() /// [1] }}} {{{id=93| time T = E.simon_two_descent(); T /// Time: CPU 0.11 s, Wall: 0.54 s (2, 2, [(w + 3/2 : -1/4*w - 1 : 1), (-w - 1 : -w - 2 : 1)]) }}} {{{id=91| P, Q = T[2] /// }}} {{{id=90| P.height() /// 0.933266708161421 }}} {{{id=94| Q.height() /// 0.183656956219703 }}} {{{id=95| E.height_pairing_matrix([P,Q]).det() /// 0.0235582958658636 }}} {{{id=165| embs = K.embeddings(CC) Lambda = E.period_lattice(embs[0]); Lambda /// Period lattice associated to Elliptic Curve defined by y^2 + y = x^3 + (-1)*x^2 + (-3*w-4)*x + (3*w+4) over Number Field in w with defining polynomial x^2 - 2 with respect to the embedding Ring morphism: From: Number Field in w with defining polynomial x^2 - 2 To: Algebraic Field Defn: w |--> -1.414213562373095? }}} {{{id=166| Lambda.basis() /// (10.7444017502464, 5.37220087512321 + 2.12681775202610*I) }}} {{{id=169| /// }}}

Missing: But no $L$-series yet..., though this should be easy.   What is the conjectural order of Sha?  What are the nontrivial zeros of $L(E,s)$?

{{{id=170| for p in primes(20): for P, e in K.factor(p): F = P.residue_field() print p, P, E.change_ring(F).cardinality() /// 2 Fractional ideal (w) 5 3 Fractional ideal (3) 15 5 Fractional ideal (5) 29 7 Fractional ideal (2*w - 1) 13 7 Fractional ideal (2*w + 1) 12 11 Fractional ideal (11) 129 13 Fractional ideal (13) 187 17 Fractional ideal (-3*w + 1) 24 17 Fractional ideal (-3*w - 1) 24 19 Fractional ideal (19) 376 }}} {{{id=77| /// }}}

Sage has 3d plotting...

{{{id=72| from scipy import io x = io.loadmat(DATA + 'yodapose.mat', struct_as_record=True) from sage.plot.plot3d.index_face_set import IndexFaceSet V = x['V']; F3 = x['F3']-1; F4 = x['F4']-1 Y = (IndexFaceSet(F3, V, color = Color('#00aa00')) + IndexFaceSet(F4, V, color = Color('#00aa00'))) Y = Y.rotateX(-1) Y.show(aspect_ratio = [1,1,1], frame = False, figsize = 4, spin=True, zoom=1.3) /// }}} {{{id=81| /// }}} {{{id=171| /// }}}