cohomology of structure sheaf

This commit is contained in:
jgarnek 2022-12-19 13:37:14 +00:00
parent 6edd5f9c40
commit c28c4a4fa4
17 changed files with 16957 additions and 24462 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -17,40 +17,3 @@ def magmathis(A, B, text = False):
if text: if text:
return result return result
print(magma_free(result)) print(magma_free(result))
def as_reduction(AS, fct):
n = AS.height
F = AS.base_ring
variable_names = 'x, y'
for i in range(n):
variable_names += ', z' + str(i)
Rxyz = PolynomialRing(F, n+2, variable_names)
x, y = Rxyz.gens()[:2]
z = Rxyz.gens()[2:]
RxyzQ = FractionField(Rxyz)
ff = AS.functions
ff = [RxyzQ(F.function) for F in ff]
fct = RxyzQ(fct)
fct1 = numerator(fct)
fct2 = denominator(fct)
if fct2 != 1:
return as_reduction(AS, fct1)/as_reduction(AS, fct2)
result = RxyzQ(0)
change = 0
for a in fct1.monomials():
degrees_zi = [a.degree(z[i]) for i in range(n)]
d_div = [a.degree(z[i])//p for i in range(n)]
if d_div != n*[0]:
change = 1
d_rem = [a.degree(z[i])%p for i in range(n)]
monomial = fct1.coefficient(a)*x^(a.degree(x))*y^(a.degree(y))*prod(z[i]^(d_rem[i]) for i in range(n))*prod((z[i] + ff[i])^(d_div[i]) for i in range(n))
result += RxyzQ(fct1.coefficient(a)*x^(a.degree(x))*y^(a.degree(y))*prod(z[i]^(d_rem[i]) for i in range(n))*prod((z[i] + ff[i])^(d_div[i]) for i in range(n)))
if change == 0:
return RxyzQ(result)
else:
print(fct, '\n')
return as_reduction(AS, RxyzQ(result))

View File

@ -58,6 +58,16 @@ class as_cover:
self.y = all_y_series self.y = all_y_series
self.z = all_z_series self.z = all_z_series
self.dx = all_dx_series self.dx = all_dx_series
##############
#Function field
variable_names = 'x, y'
for i in range(n):
variable_names += ', z' + str(i)
Rxyz = PolynomialRing(F, n+2, variable_names)
x, y = Rxyz.gens()[:2]
z = Rxyz.gens()[2:]
RxyzQ = FractionField(Rxyz)
self.fct_field = (RxyzQ, Rxyz, x, y, z)
def __repr__(self): def __repr__(self):
n = self.height n = self.height
@ -106,17 +116,10 @@ class as_cover:
F = self.base_ring F = self.base_ring
m = C.exponent m = C.exponent
r = C.polynomial.degree() r = C.polynomial.degree()
variable_names = 'x, y' RxyzQ, Rxyz, x, y, z = self.fct_field
for i in range(n):
variable_names += ', z' + str(i)
Rxyz = PolynomialRing(F, n+2, variable_names)
x, y = Rxyz.gens()[:2]
z = Rxyz.gens()[2:]
RxyzQ = FractionField(Rxyz)
Rt.<t> = LaurentSeriesRing(F, default_prec=prec) Rt.<t> = LaurentSeriesRing(F, default_prec=prec)
#Tworzymy zbiór S form z^i x^j y^k dx/y o waluacji >= waluacja z^(p-1)*dx/y #Tworzymy zbiór S form z^i x^j y^k dx/y o waluacji >= waluacja z^(p-1)*dx/y
S = [] S = []
RQxyz = FractionField(Rxyz)
pr = [list(GF(p)) for _ in range(n)] pr = [list(GF(p)) for _ in range(n)]
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):
@ -153,13 +156,7 @@ class as_cover:
F = self.base_ring F = self.base_ring
m = C.exponent m = C.exponent
r = C.polynomial.degree() r = C.polynomial.degree()
variable_names = 'x, y' RxyzQ, Rxyz, x, y, z = self.fct_field
for i in range(n):
variable_names += ', z' + str(i)
Rxyz = PolynomialRing(F, n+2, variable_names)
x, y = Rxyz.gens()[:2]
z = Rxyz.gens()[2:]
RxyzQ = FractionField(Rxyz)
Rt.<t> = LaurentSeriesRing(F, default_prec=prec) Rt.<t> = LaurentSeriesRing(F, default_prec=prec)
#Tworzymy zbiór S form z^i x^j y^k dx/y o waluacji >= waluacja z^(p-1)*dx/y #Tworzymy zbiór S form z^i x^j y^k dx/y o waluacji >= waluacja z^(p-1)*dx/y
S = [] S = []
@ -211,13 +208,7 @@ class as_cover:
F = self.base_ring F = self.base_ring
m = C.exponent m = C.exponent
r = C.polynomial.degree() r = C.polynomial.degree()
variable_names = 'x, y' RxyzQ, Rxyz, x, y, z = self.fct_field
for i in range(n):
variable_names += ', z' + str(i)
Rxyz = PolynomialRing(F, n+2, variable_names)
x, y = Rxyz.gens()[:2]
z = Rxyz.gens()[2:]
RxyzQ = FractionField(Rxyz)
Rt.<t> = LaurentSeriesRing(F, default_prec=prec) Rt.<t> = LaurentSeriesRing(F, default_prec=prec)
#Tworzymy zbiór S form z^i x^j y^k dx/y o waluacji >= waluacja z^(p-1)*dx/y #Tworzymy zbiór S form z^i x^j y^k dx/y o waluacji >= waluacja z^(p-1)*dx/y
S = [] S = []
@ -242,12 +233,8 @@ class as_cover:
'''Return uniformizer of curve self at i-th place at infinity.''' '''Return uniformizer of curve self at i-th place at infinity.'''
p = self.characteristic p = self.characteristic
n = self.height n = self.height
variable_names = 'x, y' F = self.base_ring
for j in range(n): RxyzQ, Rxyz, x, y, z = self.fct_field
variable_names += ', z' + str(j)
Rxyz = PolynomialRing(F, n+2, variable_names)
x, y = Rxyz.gens()[:2]
z = Rxyz.gens()[2:]
fx = as_function(self, x) fx = as_function(self, x)
z = [as_function(self, zi) for zi in z] z = [as_function(self, zi) for zi in z]
# We create a list of functions. We add there all variables... # We create a list of functions. We add there all variables...
@ -262,14 +249,14 @@ class as_cover:
a = gcd(vz[j1] , vz[j2]) a = gcd(vz[j1] , vz[j2])
vz1 = vz[j1]/a vz1 = vz[j1]/a
vz2 = vz[j2]/a vz2 = vz[j2]/a
for b in GF(p): for b in F:
if (z[j1]^(vz2) - b*z[j2]^(vz1)).valuation(i) > (z[j2]^(vz1)).valuation(i): if (z[j1]^(vz2) - b*z[j2]^(vz1)).valuation(i) > (z[j2]^(vz1)).valuation(i):
list_of_fcts += [z[j1]^(vz2) - b*z[j2]^(vz1)] list_of_fcts += [z[j1]^(vz2) - b*z[j2]^(vz1)]
for j1 in range(n): for j1 in range(n):
a = gcd(vz[j1], vfx) a = gcd(vz[j1], vfx)
vzj = vz[j1] /a vzj = vz[j1] /a
vfx = vfx/a vfx = vfx/a
for b in GF(p): for b in F:
if (fx^(vzj) - b*z[j1]^(vfx)).valuation(i) > (z[j1]^(vfx)).valuation(i): if (fx^(vzj) - b*z[j1]^(vfx)).valuation(i) > (z[j1]^(vfx)).valuation(i):
list_of_fcts += [fx^(vzj) - b*z[j1]^(vfx)] list_of_fcts += [fx^(vzj) - b*z[j1]^(vfx)]
#Finally, we check if on the list there are two elements with the same valuation. #Finally, we check if on the list there are two elements with the same valuation.
@ -307,6 +294,42 @@ class as_cover:
i+=1 i+=1
return ramification_jps return ramification_jps
def cohomology_of_structure_sheaf_basis(self, threshold = 8):
holo_diffs = self.holomorphic_differentials_basis(threshold = threshold)
from itertools import product
x_series = self.x
y_series = self.y
z_series = self.z
delta = self.nb_of_pts_at_infty
p = self.characteristic
n = self.height
prec = self.prec
C = self.quotient
F = self.base_ring
m = C.exponent
r = C.polynomial.degree()
RxyzQ, Rxyz, x, y, z = self.fct_field
Rt.<t> = LaurentSeriesRing(F, default_prec=prec)
#Tworzymy zbiór S form z^i x^j y^k dx/y o waluacji >= waluacja z^(p-1)*dx/y
result_fcts = []
V = VectorSpace(F,self.genus())
S = V.subspace([])
RQxyz = FractionField(Rxyz)
pr = [list(GF(p)) for _ in range(n)]
i = 0
while len(result_fcts) < self.genus():
for j in range(0, m):
for k in product(*pr):
f = as_function(self, prod(z[i1]^(k[i1]) for i1 in range(n))/x^i*y^j)
f_products = []
for omega in holo_diffs:
f_products += [sum((f*omega).residue(place = _) for _ in range(self.nb_of_pts_at_infty))]
if vector(f_products) not in S:
S = S+V.subspace([V(f_products)])
result_fcts += [f]
i += 1
return result_fcts
def holomorphic_combinations(S): def holomorphic_combinations(S):
"""Given a list S of pairs (form, corresponding Laurent series at some pt), find their combinations holomorphic at that pt.""" """Given a list S of pairs (form, corresponding Laurent series at some pt), find their combinations holomorphic at that pt."""
C_AS = S[0][0].curve C_AS = S[0][0].curve

View File

@ -85,31 +85,6 @@ class as_form:
return linear_representation(Rxyz(self.form), holo) return linear_representation(Rxyz(self.form), holo)
def trace(self): def trace(self):
C = self.curve
C_super = C.quotient
n = C.height
F = C.base_ring
variable_names = 'x, y'
for j in range(n):
variable_names += ', z' + str(j)
Rxyz = PolynomialRing(F, n+2, variable_names)
x, y = Rxyz.gens()[:2]
z = Rxyz.gens()[2:]
RxyzQ = FractionField(Rxyz)
g = self.form
result = RxyzQ(0)
g_num = Rxyz(numerator(g))
g_den = Rxyz(denominator(g))
z = prod(z[i] for i in range(n))^(p-1)
for a in g_num.monomials():
if (z.divides(a)):
result += g_num.monomial_coefficient(a)*a/z
result /= g_den
Rxy.<x, y> = PolynomialRing(F, 2)
return superelliptic_form(C_super, Rxy(result))
def trace2(self):
C = self.curve C = self.curve
C_super = C.quotient C_super = C.quotient
n = C.height n = C.height
@ -128,9 +103,11 @@ class as_form:
result = result.form result = result.form
Rxy.<x, y> = PolynomialRing(F, 2) Rxy.<x, y> = PolynomialRing(F, 2)
Qxy = FractionField(Rxy) Qxy = FractionField(Rxy)
result = as_reduction(AS, result)
return superelliptic_form(C_super, Qxy(result)) return superelliptic_form(C_super, Qxy(result))
def residue(self, place=0):
return self.expansion_at_infty(i = place).residue()
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

View File

@ -34,10 +34,16 @@ class as_function:
return as_function(C, constant*g) return as_function(C, constant*g)
def __mul__(self, other): def __mul__(self, other):
C = self.curve if isinstance(other, as_function):
g1 = self.function C = self.curve
g2 = other.function g1 = self.function
return as_function(C, g1*g2) g2 = other.function
return as_function(C, g1*g2)
if isinstance(other, as_form):
C = self.curve
g1 = self.function
g2 = other.form
return as_form(C, g1*g2)
def __truediv__(self, other): def __truediv__(self, other):
C = self.curve C = self.curve
@ -88,33 +94,6 @@ class as_function:
return as_function(C, g.substitute(sub_list)) return as_function(C, g.substitute(sub_list))
def trace(self): def trace(self):
C = self.curve
C_super = C.quotient
n = C.height
F = C.base_ring
variable_names = 'x, y'
for j in range(n):
variable_names += ', z' + str(j)
Rxyz = PolynomialRing(F, n+2, variable_names)
x, y = Rxyz.gens()[:2]
z = Rxyz.gens()[2:]
RxyzQ = FractionField(Rxyz)
g = self.function
g = as_reduction(C, g)
result = RxyzQ(0)
g_num = Rxyz(numerator(g))
g_den = Rxyz(denominator(g))
z = prod(z[i] for i in range(n))^(p-1)
for a in g_num.monomials():
if (z.divides(a)):
result += g_num.monomial_coefficient(a)*a/z
result /= g_den
result = as_reduction(C, result)
Rxy.<x, y> = PolynomialRing(F, 2)
Qxy = FractionField(Rxy)
return superelliptic_function(C_super, Qxy(result))
def trace2(self):
C = self.curve C = self.curve
C_super = C.quotient C_super = C.quotient
n = C.height n = C.height
@ -133,9 +112,32 @@ class as_function:
result = result.function result = result.function
Rxy.<x, y> = PolynomialRing(F, 2) Rxy.<x, y> = PolynomialRing(F, 2)
Qxy = FractionField(Rxy) Qxy = FractionField(Rxy)
result = as_reduction(AS, result)
return superelliptic_function(C_super, Qxy(result)) return superelliptic_function(C_super, Qxy(result))
def diffn(self):
C = self.curve
C_super = C.quotient
n = C.height
RxyzQ, Rxyz, x, y, z = C.fct_field
fcts = C.functions
f = self.function
y_super = superelliptic_function(C_super, y)
dy_super = y_super.diffn().form
dz = []
for i in range(n):
dfct = fcts[i].diffn().form
dz += [-dfct]
result = f.derivative(x)
result += f.derivative(y)*dy_super
for i in range(n):
result += f.derivative(z[i])*dz[i]
return as_form(C, result)
def valuation(self, i = 0): def valuation(self, i = 0):
'''Return valuation at i-th place at infinity.''' '''Return valuation at i-th place at infinity.'''
return self.expansion_at_infty(i).valuation() C = self.curve
F = C.base_ring
Rt.<t> = LaurentSeriesRing(F)
return Rt(self.expansion_at_infty(i)).valuation()

View File

@ -6,9 +6,9 @@ def combination_components(omega, zmag, w):
group_elts = [(j1, j2) for j1 in range(p) for j2 in range(p)] group_elts = [(j1, j2) for j1 in range(p) for j2 in range(p)]
zvee = dual_elt(AS, zmag) zvee = dual_elt(AS, zmag)
result = as_form(AS, 0) result = as_form(AS, 0)
for i in range(p^2): for g in AS.group:
omegai = ith_magical_component(omega, zvee, i) omegag = ith_magical_component(omega, zvee, g)
aux_fct1 = w.group_action(group_elts[i]).function aux_fct1 = w.group_action(g).function
aux_fct2 = omegai.form aux_fct2 = omegag.form
result += as_form(AS, aux_fct1*aux_fct2) result += as_form(AS, aux_fct1*aux_fct2)
return result return result

View File

@ -13,12 +13,14 @@ def dual_elt(AS, zmag):
M = matrix(RxyzQ, p^n, p^n) M = matrix(RxyzQ, p^n, p^n)
for i in range(p^n): for i in range(p^n):
for j in range(p^n): for j in range(p^n):
M[i, j] = (zmag.group_action(G[i])*zmag.group_action(G[j])).trace2() elt = (zmag.group_action(G[i])*zmag.group_action(G[j])).trace().function
elt = Rxyz(elt.numerator())/Rxyz(elt.denominator())
M[i, j] = RxyzQ(elt)
main_det = M.determinant() main_det = M.determinant()
zvee = as_function(AS, 0) zvee = as_function(AS, 0)
for i in range(p^n): for i in range(p^n):
Mprim = matrix(RxyzQ, M) Mprim = matrix(RxyzQ, M)
Mprim[:, i] = vector([(j == 0) for j in range(p^n)]) Mprim[:, i] = vector([(j == 0) for j in range(p^n)])
fi = Mprim.determinant()/main_det fi = Mprim.determinant()/main_det
zvee += fi*zmag.group_action(G[i]) zvee += as_function(AS, fi*(zmag.group_action(G[i]).function))
return zvee return zvee

View File

@ -1,8 +1,6 @@
def ith_magical_component(omega, zvee, g): def ith_magical_component(omega, zvee, g):
'''Given a form omega on AS cover, element g of group AS.group and normal basis element zmag, find the decomposition '''Given a form omega on AS cover, element g of group AS.group and normal basis element zmag, find the decomposition
sum_g g(zmag) omega_g and return omega_g.''' sum_g g(zmag) omega_g and return omega_g.'''
AS = omega.curve z_vee_g = zvee.group_action(g)
p = AS.characteristic new_form = z_vee_g*omega
z_vee_fct = zvee.group_action(g).function return new_form.trace()
new_form = as_form(AS, z_vee_fct*omega.form)
return new_form.trace2()

View File

@ -0,0 +1,15 @@
p = 3
m = 1
F = GF(p)
Rx.<x> = PolynomialRing(F)
f = x^2 + 1
C_super = superelliptic(f, m)
Rxy.<x, y> = PolynomialRing(F, 2)
f1 = superelliptic_function(C_super, x^2)
f2 = superelliptic_function(C_super, x^4)
AS = as_cover(C_super, [f1, f2], prec=1000)
RxyzQ, Rxyz, x, y, z = AS.fct_field
f_z = as_function(AS, z[0]*z[1]*y)
df_z = f_z.diffn()
print(df_z.form == -z[0]*z[1]*x + y*z[1]*x - y*z[0]*x^3)

View File

@ -15,6 +15,6 @@ zdual = dual_elt(AS, zmag)
for i in range(p): for i in range(p):
for j in range(p): for j in range(p):
if (i, j) == (0, 0): if (i, j) == (0, 0):
print((zmag*(zdual.group_action([i, j]))).trace2().function == 1) print((zmag*(zdual.group_action([i, j]))).trace().function == 1)
else: else:
print((zmag*(zdual.group_action([i, j]))).trace2().function == 0) print((zmag*(zdual.group_action([i, j]))).trace().function == 0)

View File

@ -1,4 +1,4 @@
p = 3 p = 5
m = 1 m = 1
F = GF(p) F = GF(p)
Rx.<x> = PolynomialRing(F) Rx.<x> = PolynomialRing(F)
@ -6,51 +6,14 @@ f = x
C_super = superelliptic(f, m) C_super = superelliptic(f, m)
Rxy.<x, y> = PolynomialRing(F, 2) Rxy.<x, y> = PolynomialRing(F, 2)
f1 = superelliptic_function(C_super, x^2) for a in range(3, 13):
f2 = superelliptic_function(C_super, x^4) for b in range(3, 13):
f3 = superelliptic_function(C_super, x^5) if a %p != 0 and b%p != 0 and a !=b:
AS = as_cover(C_super, [f1, f2, f3], prec=1000) try:
print(AS) f1 = superelliptic_function(C_super, x^a+x)
zmag = AS.magical_element(threshold = 20)[0] f2 = superelliptic_function(C_super, x^b)
zvee = dual_elt(AS, zmag) AS = as_cover(C_super, [f1, f2], prec=1000)
#print(AS.at_most_poles(AS.exponent_of_different_prim()))
### DEFINE THE POLYNOMIALS print(AS.magical_element(threshold = 20))
n = AS.height except:
variable_names = 'x, y' pass
for i in range(n):
variable_names += ', z' + str(i)
Rxyz = PolynomialRing(F, n+2, variable_names)
x, y = Rxyz.gens()[:2]
z = Rxyz.gens()[2:]
###############
def val_of_components(omega, zvee):
result = []
AS = omega.curve
for i in range(p^2):
omega_i = ith_magical_component(omega, zvee, i)
val = omega_i.expansion_at_infty().valuation()
val = val*p^2 + AS.exponent_of_different()
result += [val]
return result
#############
G = AS.group
g = AS.genus()
print(AS.exponent_of_different_prim())
v_x = as_function(AS, x).expansion_at_infty().valuation()
n = AS.height
v_z = [as_function(AS, z[i]).expansion_at_infty().valuation() for i in range(n)]
omega = AS.holomorphic_differentials_basis()[-16]
from itertools import product
pr = [list(range(p)) for _ in range(n)]
for i in range(0, 30):
for k in product(*pr):
v_w = i*v_x+ sum(k[i]*v_z[i] for i in range(n))
if (v_w < - AS.exponent_of_different_prim() + 10 and v_w > - AS.exponent_of_different_prim()):
w = as_function(AS, x^i * prod(z[i1]^(k[i1]) for i1 in range(n)))
result = as_form(AS, 0)
for g in G:
component = ith_magical_component(omega, zvee, g).form
result += as_form(AS, w.group_action(g).function*component)
print(result.expansion_at_infty().valuation(), w.expansion_at_infty().valuation() - zmag.expansion_at_infty().valuation())

View File

@ -1,43 +1,14 @@
p = 3 p = 3
m = 1 m = 1
F = GF(p) F = GF(p^2, 'a')
a = F.gens()[0]
Rx.<x> = PolynomialRing(F) Rx.<x> = PolynomialRing(F)
f = x f = x
C_super = superelliptic(f, m) C_super = superelliptic(f, m)
Rxy.<x, y> = PolynomialRing(F, 2) Rxy.<x, y> = PolynomialRing(F, 2)
f1 = superelliptic_function(C_super, x^7) f1 = superelliptic_function(C_super, x^7)
f2 = superelliptic_function(C_super, x^4) f2 = superelliptic_function(C_super, a*x^7)
AS = as_cover(C_super, [f1, f2], prec=1000) AS = as_cover(C_super, [f1, f2], prec=1000)
print(AS.uniformizer()) #print(AS.uniformizer())
print(AS.ramification_jumps())
def rep_jumps(AS, threshold = 30):
ile = 1
i = 1
result = []
flag = 0
while(flag == 0):
if len(AS.at_most_poles(i, threshold = threshold)) > ile:
ile = len(AS.at_most_poles(i, threshold = threshold))
result += [i]
if i%p != 0:
flag = 1
i+=1
return result
#print(rep_jumps(AS, threshold = 30))
def uniformizer(AS, threshold = 30):
p = AS.characteristic
n = AS.height
variable_names = 'x, y'
for i in range(n):
variable_names += ', z' + str(i)
Rxyz = PolynomialRing(F, n+2, variable_names)
x, y = Rxyz.gens()[:2]
z = Rxyz.gens()[2:]
zmag = AS.magical_element()[0]
v_x = as_function(AS, x).expansion_at_infty().valuation()
dprim = AS.exponent_of_different_prim()
d, a, b = xgcd(v_x, -dprim)
return as_function(AS, x^a*zmag.function^b)

View File

@ -1,7 +1,23 @@
Rx.<x> = PolynomialRing(GF(5)) p = 3
C = superelliptic(x^3 + 1, 2) m = 1
Rxy.<x, y> = PolynomialRing(GF(5), 2) F = GF(p)
f1 = superelliptic_function(C, x*y) Rx.<x> = PolynomialRing(F)
CAS = as_cover(C, [f1]) f = x
g = CAS.uniformizer() C_super = superelliptic(f, m)
AA = g
Rxy.<x, y> = PolynomialRing(F, 2)
f1 = superelliptic_function(C_super, x^7)
f2 = superelliptic_function(C_super, x^4)
AS = as_cover(C_super, [f1, f2], prec=1000)
AS1 = as_cover(C_super, [f1], prec=1000)
#print(AS.ramification_jumps())
#print(pole_numbers(AS))
RxyzQ, Rxyz, x, y, z = AS.fct_field
zmag = (AS.magical_element())[0]
zvee = dual_elt(AS, zmag)
t = AS.uniformizer()
omega1 = AS1.holomorphic_differentials_basis()[4]
omega2 = as_form(AS, t.function*RxyzQ(omega1.form))
for g in AS.group:
print(ith_magical_component(omega2, zvee, g).expansion_at_infty().valuation(), AS.jumps[0][1])

View File

@ -5,6 +5,7 @@ load('superelliptic/superelliptic_cech_class.sage')
load('as_covers/as_cover_class.sage') load('as_covers/as_cover_class.sage')
load('as_covers/as_function_class.sage') load('as_covers/as_function_class.sage')
load('as_covers/as_form_class.sage') load('as_covers/as_form_class.sage')
load('as_covers/as_reduction.sage')
load('as_covers/as_auxilliary.sage') load('as_covers/as_auxilliary.sage')
load('as_covers/dual_element.sage') load('as_covers/dual_element.sage')
load('as_covers/ith_magical_component.sage') load('as_covers/ith_magical_component.sage')
@ -14,5 +15,6 @@ load('auxilliaries/reverse.sage')
load('auxilliaries/hensel.sage') load('auxilliaries/hensel.sage')
############## ##############
############## ##############
load('drafty/draft2.sage') load('drafty/draft.sage')
#load('drafty/draft3.sage') load('drafty/pole_numbers.sage')
#load('drafty/draft4.sage')

View File

@ -4,11 +4,13 @@
#load('as_covers/tests/group_action_matrices_test.sage') #load('as_covers/tests/group_action_matrices_test.sage')
#print("dual_element_test:") #print("dual_element_test:")
#load('as_covers/tests/dual_element_test.sage') #load('as_covers/tests/dual_element_test.sage')
#print("ith_component_test:") print("ith_component_test:")
#load('as_covers/tests/ith_component_test.sage') load('as_covers/tests/ith_component_test.sage')
#print("ith ramification group test:") #print("ith ramification group test:")
#load('as_covers/tests/ith_ramification_gp_test.sage') #load('as_covers/tests/ith_ramification_gp_test.sage')
#print("uniformizer test:") #print("uniformizer test:")
#load('as_covers/tests/uniformizer_test.sage') #load('as_covers/tests/uniformizer_test.sage')
print("ramification jumps test:") #print("ramification jumps test:")
load('as_covers/tests/ramification_jumps_test.sage') #load('as_covers/tests/ramification_jumps_test.sage')
print("diffn_test:")
load('as_covers/tests/diffn_test.sage')

View File

@ -726,9 +726,6 @@
"outputs": [ "outputs": [
], ],
"source": [ "source": [
"Rx.<x> = PolynomialRing(GF(5))\n",
"f = x^7 + x + 1\n",
"C = superelliptic(f, 2)"
] ]
}, },
{ {
@ -740,7 +737,6 @@
"outputs": [ "outputs": [
], ],
"source": [ "source": [
"omega = C.de_rham_basis()[3]"
] ]
}, },
{ {