de rham for AS working

This commit is contained in:
jgarnek 2024-01-10 17:05:29 +00:00
parent 3ded25e39d
commit fb6e5e0f8e
3 changed files with 12 additions and 2 deletions

View File

@ -55,6 +55,7 @@ class as_cech:
m = C.exponent m = C.exponent
r = C.polynomial.degree() r = C.polynomial.degree()
n = AS.height n = AS.height
p = AS.characteristic
RxyzQ, Rxyz, x, y, z = AS.fct_field RxyzQ, Rxyz, x, y, z = AS.fct_field
if basis == 0: if basis == 0:
basis = [AS.holomorphic_differentials_basis(), AS.cohomology_of_structure_sheaf_basis(), AS.de_rham_basis(threshold=threshold)] basis = [AS.holomorphic_differentials_basis(), AS.cohomology_of_structure_sheaf_basis(), AS.de_rham_basis(threshold=threshold)]

View File

@ -373,7 +373,7 @@ class as_cover:
for i in range(0, threshold*r): for i in range(0, threshold*r):
for j in range(0, m): for j in range(0, m):
for k in product(*pr): for k in product(*pr):
eta = as_form(self, x^i*prod(z[i1]^(k[i1]) for i1 in range(n))*y^j) eta = as_form(self, x^i*prod(z[i1]^(k[i1]) for i1 in range(n))/y^j)
eta_exp = eta.expansion_at_infty() eta_exp = eta.expansion_at_infty()
S += [(eta, eta_exp)] S += [(eta, eta_exp)]
forms = holomorphic_combinations(S) forms = holomorphic_combinations(S)
@ -381,7 +381,7 @@ class as_cover:
raise ValueError("Increase threshold!") raise ValueError("Increase threshold!")
for omega in forms: for omega in forms:
for a in F: for a in F:
if (a*omega + fct.diffn()).form in Rxyz: if (a*omega + fct.diffn()).is_regular_on_U0():
return a*omega + fct.diffn() return a*omega + fct.diffn()
raise ValueError("Unknown.") raise ValueError("Unknown.")

View File

@ -166,6 +166,15 @@ class as_form:
result += product_of_z_no_p * Rxyz(num).monomial_coefficient(monomial) * aux_form.form/den1 result += product_of_z_no_p * Rxyz(num).monomial_coefficient(monomial) * aux_form.form/den1
return as_form(C, result) return as_form(C, result)
raise ValueError("Please present first your form as sum z^i omega_i, where omega_i are forms on quotient curve.") raise ValueError("Please present first your form as sum z^i omega_i, where omega_i are forms on quotient curve.")
def is_regular_on_U0(self):
AS = self.curve
C = AS.quotient
m = C.exponent
RxyzQ, Rxyz, x, y, z = AS.fct_field
if y^(m-1)*self.form in Rxyz:
return True
return False
def artin_schreier_transform(power_series, prec = 10): def artin_schreier_transform(power_series, prec = 10):
"""Given a power_series, find correction such that power_series - (correction)^p +correction has valuation """Given a power_series, find correction such that power_series - (correction)^p +correction has valuation