isogeny_computation_for_ben

332 days ago by arabindr

ch = var('ch') K.<a> = NumberField(ch^2 - ch - 1) 
       
def isogeny_class_computation(E,p): if p != 2: E = E.short_weierstrass_model() F = E.division_polynomial(p).change_ring(K) f = F.factor() i=0 R.<x> = K[] t=f[0][0].degree() w=[R(1)] while t < (p+1)/2: for j in w: if (j*f[i][0]).degree() < (p +1)/2 and (j*f[i][0]).divides(F): w.append(j*f[i][0]) t = f[i+1][0].degree() i+=1 v=[] for f in w: try: v.append(E.change_ring(K).isogeny(f).codomain()) except ValueError: pass v = [F.change_ring(K).global_minimal_model() for F in v] return v else: w = [Q for Q in E.torsion_subgroup() if order(Q)==2] v = [E.isogeny(E(Q)).codomain() for Q in w] v.insert(0,E) return v 
       
v = isogeny_class_computation(EllipticCurve(K, [1,1,1,0,0]), 2) for ch in v: print ch 
       
Elliptic Curve defined by y^2 + x*y + y = x^3 + x^2 over Number Field in
a with defining polynomial ch^2 - ch - 1
Elliptic Curve defined by y^2 + x*y + y = x^3 + x^2 + (-5)*x + 2 over
Number Field in a with defining polynomial ch^2 - ch - 1
Elliptic Curve defined by y^2 + x*y + y = x^3 + x^2 over Number Field in a with defining polynomial ch^2 - ch - 1
Elliptic Curve defined by y^2 + x*y + y = x^3 + x^2 + (-5)*x + 2 over Number Field in a with defining polynomial ch^2 - ch - 1