2023-03-09 09:54:01 +01:00
|
|
|
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
|
2023-03-23 18:45:28 +01:00
|
|
|
if isinstance(self, superelliptic_cech):
|
|
|
|
result = superelliptic_cech(C, autom(self.omega0), autom(self.f))
|
|
|
|
return result
|
2023-03-09 09:54:01 +01:00
|
|
|
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
|