Skip to content

edgarcosta/genus2isogenies

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

genus2isogenies

Sage code supporting

  • [ arXiv ] Computing isogeny classes of typical principally polarized abelian surfaces over the rationals by Raymond van Bommel, Shiva Chidambaram, Edgar Costa, and Jean Kieffer

Computation of isogeny classes

The computation of isogeny classes from invariants depends be on

  sage -pip install --upgrade git+https://github.com/edgarcosta/pyhdme

and optionally on:

  • Pari/GP >= 2.15.0, precisely hyperellminimalmodel and hyperellred
  • Magma >= 2.28-2, precisely HyperellipticCurveFromIgusaClebsch, ReducedWamelenModel to provide models with reasonable coefficient size.

Examples

See data/README.md for a description of the input/output.

A pair connected by an isogeny of degree 3^4

$ sage -python genus2isogenies.py "704:704.a:2159575534599616393:[[-1856,129536,-44,-2948]]:[[[-1,-1,-2,1,1,-2],[1,1,1,1]]]"
704:704.a:2159575534599616393:[[-1856,129536,-44,-2948]]:[[[-1,-1,-2,1,1,-2],[1,1,1,1]]]:[2,3]:[[-1856,129536,-44,-2948],[771904,687149056,260876,-197548868]]:[[[-1,-1,-2,1,1,-2],[1,1,1,1]],[[-2784,-2492,556,983,-50,-66,-6],[0,0,0,1]]]:[[0,9],[9,0]]

An example where we search for isogenies of degree 29^2 and 29^4

In this we recommend using higher number of threads, e.g., 12:

$ sage -python genus2isogenies.py "976:976.a:78262366554954104:[[1012,52318,-976,-37088]]:[[[1,2,0,-2,-1,-1],[0,0,1,1]]]" 12
976:976.a:78262366554954104:[[1012,52318,-976,-37088]]:[[[1,2,0,-2,-1,-1],[0,0,1,1]]]:[29]:[[1012,52318,-976,-37088]]:[[[1,2,0,-2,-1,-1],[0,0,1,1]]]:[[0]

An example of of square with isogenies of degree 3^4 and 5^4

$ sage -python genus2isogenies.py "277:277.a:639653774064676620:[[1408,49024,-277,-8864],[5482048,12835476224,277,-620480]]:[[[0,-1,-1],[1,1,1,1]],[[-6,11,-19,14,-9,1],[1]]]"
277:277.a:639653774064676620:[[1408,49024,-277,-8864],[5482048,12835476224,277,-620480]]:[[[0,-1,-1],[1,1,1,1]],[[-6,11,-19,14,-9,1],[1]]]:[3,5]:[[-4074752,3079190656,-53383717,155880885760],[1408,49024,-277,-8864],[5482048,12835476224,277,-620480],[5786446528,440253117070336,-3537013,285292529056]]:[[[-10406,-10383,5266,7578,169,-1396,-252],[0,0,0,1]],[[0,-1,-1],[1,1,1,1]],[[-6,11,-19,14,-9,1],[1]],[[-14580,51520,-63684,31054,-3823,-637,-18],[1]]]:[[0,25,0,9],[25,0,9,0],[0,9,0,25],[9,0,25,0]]

and now without reducing the models:

$ sage -python genus2isogenies.py "277:277.a:639653774064676620:[[1408,49024,-277,-8864],[5482048,12835476224,277,-620480]]:[[[0,-1,-1],[1,1,1,1]],[[-6,11,-19,14,-9,1],[1]]]" 1 0 0
277:277.a:639653774064676620:[[1408,49024,-277,-8864],[5482048,12835476224,277,-620480]]:[[[0,-1,-1],[1,1,1,1]],[[-6,11,-19,14,-9,1],[1]]]:[3,5]:[[-4074752,3079190656,-53383717,155880885760],[1408,49024,-277,-8864],[5482048,12835476224,277,-620480],[5786446528,440253117070336,-3537013,285292529056]]:[[[-358788700398291516766687458235974560914616733718839868617824,-357995682897891679664473945691343827212806606400414602715632,181566528569806181750276393914149724944875237340323923519264,261282026870868067851043394052682608361614992131594130730912,5826954676850976968438418262721478069822239861472605976976,-48132714372094460638698413578456706422910336370507443454784,-8680093727202564803576164483077704757856502278850464820732],[]],[[0,-1,-1],[1,1,1,1]],[[-6,11,-19,14,-9,1],[1]],[[-17588459929395102649944419294343078237087543039801061629236836683347243600,20427513364465449728818904641828577313131489378882607185354614789636913000,-8393322150583180805390938327715976335874632430018392406844028984632688200,1353205011709289609225327763793294838113490509389129389918960714769082000,-41850011666885775142989074775546619177508931977339604845350537952215200,-5308650305003134662393957918656152954849370614183853269112133077924600,-81951719974319403021519075931227061052563182723249878939981471185800],[]]]:[[0,25,0,9],[25,0,9,0],[0,9,0,25],[9,0,25,0]]

An example with isogeny graph of size 42

sage -python genus2isogenies.py "2084783416934400:None:0:[[12279421902241,27720894398734429039,-425954713866501456000000,3620409974473702743642699000000]]:[[[2288,-14840,12679,37445,11208,720],[]]]"
2084783416934400:None:0:[[12279421902241,27720894398734429039,-425954713866501456000000,3620409974473702743642699000000]]:[[[2288,-14840,12679,37445,11208,720],[]]]:[2]:[[-3748458025135679,694225931974496339453119,619920649486901346282562500,30351145841140999930007171039437500],[-575638324559759,12286578492875215682839,13102016470383120462000,-224839864777508695166428548000],[-406141282135679,3744876437299379753119,29722918120155643304391992437500,-1217542684354332972753303259813664437500],[-80383490035679,12397649316423490763119,-44463027549129080104213745062500,544326914049434484048879587803148062500],[-39130396949519,224771934218746336471,33504097249407565334531250000,-22901535216381088086967495237500000],[-29736646361519,237523650827887409671,-12179105721334563475668750000,363917869213050132126420492562500000],[-24969123696959,2414177579327779329281,-541688943980706749807580000,-16675118661876865484907715025625000],[-24387851335679,148304114802468233119,42367380329452423095703125000,-95051345113366815740778808593750000],[-20449399330559,51062407712928219041,-7213951625251464843750,-45971304847383611623535156250],[-15791884530719,215590247115509882609,47356053770269104960937500000,267209078469608433644877041015625000],[-4297028635679,273245445614272103119,-31086555719505380859375000000,336139610899237512350800781250000000],[-2643503216399,2268775635162902551,11546728087630519379232000,-85635963507759515483489729262000],[-2050725512399,2503393124571084151,-32808309228897901590528000,10527906496380473534819292288000],[-2009059703519,928052307259830525871,4370829531085326660316875000,-132043020094452069528753363266250000],[-172636530239,36481379719206079,10990213851046510080000,-20351116098435454214056200000],[90869596801,2892831627474105569,14353334880907751993013750,109870671855133255206080231606250],[777877744561,414540923458135159,-366533137580433408000,780690217311844677631872000],[1816339826401,8432560063739880271,19590675599909872252080000,-19187138391597119845216063125000],[5021358420241,11355170114352267161,-18180573015720211200000000,43898147778895338596382000000000],[5109519582241,10636589947593682961,9739924157430697230000000,15877515421679104665502363125000],[5953059888241,6681824907861688361,3579464269632150900000000,29152227758902247320950768750000],[6238363166401,7938132872141753729,3236090384489120196480000,26451732945969965354172683400000],[9611055255601,46287891979495111351,391702997252051856949500,-3204702406547240661097032874500],[12279421902241,27720894398734429039,-425954713866501456000000,3620409974473702743642699000000],[39692690076481,331597027847041232129,-35818527818850527123919000000,231576669217926136204209911646000000],[65296985676481,79686679571018607871,-14234483439565966811359125000,215548932399207542218235190489750000],[66229041888241,966123794833267480361,-3770751561810925268769192000,-121242671841971574307516832737398000],[78382940363041,756916712213286003281,-4269947122294874733733020000,192145443498572255960645822757975000],[80953658652241,681355493422927507961,19342799175023763549311448000,-144964503820539017136574047507798000],[156378318576481,2891757867604992417871,668960409796861607461968750,-548321236899155371003203061031250],[171444930234481,2476832707269627554071,2374777240299077243175000000,-24539275058581066566182900906250000],[176347394664241,2341367101973956253239,-720057292073437500,10779012088755395976562500],[181261323514321,2204992895776892018119,-2142006574417084019531250000,38820796857202495975770023437500000],[318773367269761,32381926358083761671009,-15752110470557433151245117187500,-868638502514177650580196769409179687500],[716020592969761,9259817782446032741009,39068667020133440886840820312500,-479963258886280000703213600463867187500],[749182931689441,20205776948886980402959,-2628609975788326313355000,107301661049562895558152391050000],[1280229737149441,45784496937026387091041,133448568384332221020000,10959940733681371231185600825000],[1290253363788241,45030776685898747426361,2281294577820526632000,187475809071605186449616598000],[2090861907556801,229217014882869168324799,259860698678255081176757812500,-11734750191947142539262771606445312500],[2821415499364321,149863425020255723903119,-12854254237976074218750,687930909813884731750488281250],[3566441356769761,64594205130502291878991,-208386780734661849975585937500,20659430027572340314516957397460937500],[10787852211364321,967263215211677497896881,62734725963892505710687500,57993315830416929896354365476187500]]:[[[65547662,-186088592,128433191,64326466,-83931727,-1638800,13351800],[]],[[20593634,56779779,20285401,-60561897,-43318165,15834654,14486913],[1,0,1]],[[-5992051697036548,1766062200083948,5201837126089951,-100633285331414,-918782055369447,-207793540033740,85013055928350],[]],[[5556759752250,-788738413680,4612486177957,724970578378,-33025768197,13086749880],[]],[[-87056860870,3419187121,19107730,72082,43787,160],[0,1]],[[87657000,74954615,10981348,-8268298,-1419613,540920,-29200],[0,1]],[[94526173377680,109143467497240,-24825829909683,-30873663756331,9663252325078,-279760981335,-94867674825],[]],[[26377406,-897513,-17964,14336,-591,-36],[1,1]],[[-13280706,19138124,13400431,-28688676,2221032,10759320,-3593700],[]],[[-23393352565,-4223823995,-123603695478,113877036009,9812715541,-41879703456,18636177124],[]],[[55566,-52479,-4153,26509,542,-5502,-484],[0,1,0,1]],[[25272203580,1733934465,-10107672552,1573340553,94564362,2543340,30360],[]],[[387143820,892239480,-20666733,-14848479,-1402751,122843,26068],[]],[[-1249884955941340719,-4581833856156648,-3250274627658,5221298608,3642573,-2700],[0,1]],[[-1493000316,11127952395,-15952262193,872044425,4067404005,1338226848,161022036],[]],[[567642357681628554,846935653055428864,501866957393141457,337856579389595328,-24352780098415748,580249916078784,-16158238987611],[]],[[2369950180,-10813844680,14598549433,-6291224349,266589741,105794793,3834162],[]],[[-72419974761963335732080,324470228478731645000,17898651393575695797,-336659905528207893,-2041136841582428,27192519210624,-27783213824],[]],[[3292800,-7381360,2929808,17885,7490210,1950893,2497064],[]],[[-391209000,-124047300,-28827302,-88763155,12224388,-9882675],[]],[[-3546776740,867356408,36928995,-11458931,-339080,-2352],[]],[[66872592000,-257211051600,-231221088768,334049492655,192575059755,-105947017104,-47255655744],[]],[[26995815,-312497010,901862787,27974884,-127355396,-22455888,-398772],[]],[[2288,-14840,12679,37445,11208,720],[]],[[47930149556,-51352743618,105113059844,-93250289094,84528342763,-20817706200,2811394800],[1,1]],[[-9049404430528,1082715560080,177275139811,-10365952330,-722450002,24703537,273206],[0,0,1,1]],[[-1036838796180,-1018546744600,94572620483,198528405317,-862801951,-10448613736,327868772],[]],[[-3472166145600618916,-1875162723635132248,-4274159037151850893,-1189178757651551851,-2188576088523878932,-155967491155260859,-394728791211661497],[]],[[75822214860,-16889594400,100156012887,14014006909,17657928694,11544115737,1170181233],[]],[[403712414454825,1269905473345950,1230838424020303,348869665748724,-44477767608252,-25273194289200,2905600218300],[]],[[7843166625,5190018015,-412452362,-1153708725,-9909465,45076896,3429324],[]],[[71014156,-238250272,129513463,116732616,19388442,739944,8127],[]],[[0,-1101600,404067,787642,157554,1225],[0,0,1]],[[120188793468,-731994065436,-53477300345,1165840628862,237144811701,-659012976576,-60613342974],[]],[[-7758017150,-41124043528,23829087005,1624943906,1296387371,45078344,38399296],[]],[[-3544409160856896,-5348703823681588,-1834229892458423,414514275788064,240931153072364,-4921453165883,-7567527487714],[0,0,1,1]],[[-47707160976,-54652905976,-11680100865,2448120075,13345333,-8491800,197904],[]],[[541883648,-3617820752,4752330841,4195597769,1089509709,116949168,4501332],[]],[[10972,-198244,955671,-557638,96841,1956,-858],[]],[[437500,-296000,-169148,56004,33591,4554,189],[]],[[-3527994046301650,-586999047368752,357883127019039,65898621360514,1880351744953,-34048278720,123136200],[]],[[8308818378238950,-76776594836455800,210183682934911807,-195478065967682014,31303481897976057,554145008278400,2330410805800],[]]]:[[0,0,4,4,0,0,0,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,4,0,4],[0,0,0,0,4,4,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,4,0,0,0,0,0,4,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,2,0,4,0,0,0,0,0,4,0],[4,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,4,0,0,2,4,0,0,0,0,0,0,4,0],[0,4,0,0,0,0,0,2,0,0,0,0,4,0,0,0,0,0,0,0,4,0,4,2,0,2,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0],[0,4,0,0,0,0,0,0,0,0,2,4,0,0,0,0,0,0,4,0,0,0,4,2,2,0,4,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,4,0,4,0,0,2,0,0,4,0,0,2,0,0,0,0,0,0,0,0,0,4,2,0,0,0,0],[4,0,0,4,2,0,0,0,4,4,0,0,0,4,0,0,0,0,0,4,2,0,0,4,0,4,0,0,0,0,0,0,2,0,4,0,0,0,4,0,0,0],[0,0,0,0,0,0,0,4,0,4,0,0,0,0,4,4,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0],[0,0,0,0,0,0,4,4,4,0,0,0,0,0,0,0,0,4,0,0,2,4,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,4,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,4,4,0,0,0,0,0,0,0,2,4,0,0,0,0,4,0,0,0],[0,4,0,0,0,4,0,0,0,0,0,0,0,0,2,0,4,0,0,0,4,2,0,2,0,0,0,0,4,0,4,0,0,0,0,0,0,0,0,0,0,0],[0,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,0,0,0,2,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,4,0,0,0,4,2,4,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,4,0,0,2,0,0,0,4,2,4,0,4,2,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,4,0,4,0,0,0,0,4,4,0,0,0,0,0,2,0,0,0,0,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,4,4,0,2,0,0,0,4,0,4,2,4,2,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,4,0,0,4,0,0,0,0,4,0,0,0,0,4,2,0,0,0,0,4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0],[0,0,0,0,0,4,0,0,0,0,2,0,4,0,0,0,4,0,0,0,0,0,0,2,2,0,0,0,4,0,0,0,4,0,0,0,0,4,0,0,0,0],[0,0,0,0,0,0,0,4,0,0,0,0,0,4,4,0,0,4,0,0,2,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,4,0,0,0,0,0],[0,0,0,0,4,0,2,2,2,2,0,4,0,2,2,2,4,2,0,2,0,2,0,2,0,2,4,2,0,0,0,0,4,0,0,2,2,4,0,0,0,0],[0,0,0,0,0,0,0,0,0,4,0,2,0,4,4,0,2,0,0,0,2,0,0,4,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,0,0,0],[0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,2,0,0,4,0,4,0,0,4,0,0,0,0,0,0,0,0,0,0],[0,2,0,0,2,2,4,4,0,0,4,2,2,0,4,0,2,0,2,0,2,4,2,0,4,4,2,0,2,4,2,2,2,0,0,0,4,2,0,4,0,0],[0,0,0,4,0,2,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,4,0,0,0,0,0,0,0,0,2,0,4,0,0,0,0,0,4,4],[0,0,4,0,2,0,0,4,0,0,0,0,0,0,0,4,0,4,0,0,2,0,0,4,0,0,0,4,0,0,0,0,2,4,0,4,0,0,0,0,4,4],[0,0,0,0,0,4,2,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,4,2,0,0,0,0,0,0,4,0,0,0,0,0,2,4,0,0,0,0],[0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,4,0,0,0,4,2,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0],[0,0,0,0,4,0,0,0,0,0,0,4,0,0,0,0,0,0,4,0,0,0,4,2,0,0,0,0,0,0,4,0,0,0,0,0,0,4,0,0,0,0],[0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,2,2,2,4,4,0,0,0,0,4,0,0],[0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,2,0,0,4,0,4,2,0,4,4,0,0,0,0,0,0,2,0,0],[0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,4,2,0,0,0,0,0,2,4,0,4,0,0,0,0,4,0,2,0,0],[2,0,2,2,4,4,0,2,0,0,2,0,0,0,0,0,0,0,4,0,4,0,0,2,2,2,0,0,0,2,4,4,0,2,2,0,0,0,2,2,2,2],[0,0,0,4,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,2,0,0,0,0,0,4,0,0,4],[0,0,4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,4,0,0,2,0,0,0,0,0,4,0,0,4],[0,0,0,0,0,0,0,0,4,0,0,0,0,4,0,0,0,4,0,0,2,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0],[0,0,0,0,0,0,4,0,4,0,0,0,0,0,0,0,0,0,0,4,2,0,0,4,0,0,2,4,0,0,0,0,0,0,0,4,0,2,0,0,0,0],[0,4,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,0,2,0,0,4,0,4,0,0,4,0,0,0,0,2,0,0,0,0,0],[0,0,0,0,0,0,0,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,4,0,0,0,0,4,4,0],[4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,4,2,2,2,0,0,0,0,0,4,0,4,4],[0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,2,0,0,0,0,0,4,4,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,2,4,4,0,0,0,0,4,0,0]]

Heuristically verifying the computation

It depends on CHIMP and smalljac (no assert failing means success)

magma -b input:="704:704.a:2159575534599616393:[[-1856,129536,-44,-2948]]:[[[-1,-1,-2,1,1,-2],[1,1,1,1]]]:[2,3]:[[-1856,129536,-44,-2948],[771904,687149056,260876,-197548868]]:[[[0,4,4,-1,-2],[0,0,0,1]],[[-1140,-5166,-4646,2135,-236,4],[1]]]:[[0,9],[9,0]]" verify.m