kummer-notes-code

Notes and code from my early research in Kummer Theory for Elliptic Curves.
git clone https://git.tronto.net/kummer-notes-code
Download | Log | Files | Refs | README

test9.gp (1204B)


      1 /* Candidate counterex mod3 not surj, unexpected density, rank >=1 */
      2 label = [ "220a3", "220a4", "660c3", "660c4", "770f3", "770f4" ];
      3 
      4 {
      5 for( i = 1, length( data ), 
      6   print( "Testing curve ", i, ", label ", label[i] );
      7   E = ellinit( label[i] );
      8   f9 = elldivpol( E, 9 ); /* 3-division polynomial */
      9   eqn = y^2 + E[1]*x*y + E[3]*y - x^3 - E[2]*x^2 - E[4]*x - E[5]; /* eqn of E */
     10   res = substpol( polresultant( f9, eqn ), y, x ); /* Keep x for consistency */
     11   print( "Computing K9..." );
     12   K9 = nfinit( nfsplitting( res, 3^5*2 ) ); /* mo3 is at most 6 */
     13   print( "Computed!" );
     14   E_ext = ellinit( E[1..5], K9 );
     15   Egens = ellgenerators(E);
     16   for( j = 1, length( Egens ), 
     17     P = Egens[j];
     18     if( ellisdivisible( substpol(E_ext,x,y), P, 3, &Q ),
     19       print( "Found EC ", cremona_label, " with point ", P, 
     20              " and 3-division point ", Q, " over K9" );
     21       /* Check for 3-divisibility up to torsion */
     22       /* T = elltors(E)[3][1];
     23       if( ellisdivisible( E, elladd(E,P,T), 3 ),
     24         print( "P+T_1 is 3-divisible!" );
     25       );
     26       T = ellmul(E,T,2);    
     27       if( ellisdivisible( E, elladd(E,P,T), 3 ),
     28         print( "P+T_2 is 3-divisible!" );
     29       ); */ 
     30     );
     31   );
     32 );
     33 }
     34