DeRhamComputation/superelliptic_drw/automorphism.sage

26 lines
1.2 KiB
Python

def autom(self):
'''Given a fct/form/cocycle self (Witt or usual), return phi(self), where phi(x) = x+1. Destined
for curves y^2 = f(x^p - x).'''
C = self.curve
F = C.base_ring
Rxy.<x, y> = PolynomialRing(F, 2)
Fxy = FractionField(Rxy)
if isinstance(self, superelliptic_function):
result = superelliptic_function(C, Fxy(self.function).subs({x:x+1, y:y}))
return result
if isinstance(self, superelliptic_form):
result = superelliptic_form(C, Fxy(self.form).subs({x:x+1, y:y}))
return result
if isinstance(self, superelliptic_cech):
result = superelliptic_cech(C, autom(self.omega0), autom(self.f))
return result
if isinstance(self, superelliptic_witt):
result = superelliptic_witt(autom(self.t), autom(self.f))
return result
if isinstance(self, superelliptic_drw_form):
result = superelliptic_drw_form(0*C.x, autom(self.omega), autom(self.h2))
result += autom(self.h1).teichmuller()*(C.x + C.one).teichmuller().diffn()
return result
if isinstance(self, superelliptic_drw_cech):
result = superelliptic_drw_cech(autom(self.omega0), autom(self.f))
return result