corrected tests; small corrections - algebraic closure

This commit is contained in:
jgarnek 2023-11-29 14:41:39 +00:00
parent 02a78921b3
commit 29118d0783
8 changed files with 47 additions and 42 deletions

View File

@ -97,6 +97,7 @@ class as_form:
RxyzQ, Rxyz, x, y, z = C.fct_field
# We need to have only polynomials to use monomial_coefficients in linear_representation_polynomials,
# and sometimes basis elements have denominators. Thus we multiply by them.
print([denominator(omega.form) for omega in basis])
denom = LCM([denominator(omega.form) for omega in basis])
basis = [denom*omega for omega in basis]
self_with_no_denominator = denom*self

View File

@ -1,14 +1,16 @@
p = 5
m = 2
Rx.<x> = PolynomialRing(GF(p))
F = GF(p^2, 'a')
a = F.gens()[0]
Rx.<x> = PolynomialRing(F)
f = x^3 + x^2 + 1
C_super = superelliptic(f, m)
Rxy.<x, y> = PolynomialRing(GF(p), 2)
fArS1 = superelliptic_function(C_super, y*x)
fArS2 = superelliptic_function(C_super, y*x^2)
fArS3 = superelliptic_function(C_super, y)
AS1 = as_cover(C_super, [fArS1, fArS2, fArS3], prec=500)
AS2 = as_cover(C_super, [fArS2, fArS3, fArS1], prec=500)
fArS3 = superelliptic_function(C_super, y + x)
AS1 = as_cover(C_super, [fArS1, fArS2, fArS3], prec=150)
AS2 = as_cover(C_super, [fArS2, fArS3, fArS1], prec=150)
print(AS1.genus() == AS2.genus())
##################
p = 5
@ -19,7 +21,6 @@ C_super = superelliptic(f, m)
Rxy.<x, y> = PolynomialRing(GF(p), 2)
fArS1 = superelliptic_function(C_super, y*x)
fArS2 = superelliptic_function(C_super, y*x^2)
fArS3 = superelliptic_function(C_super, y)
AS1 = as_cover(C_super, [fArS1, fArS2, fArS3], prec=1000)
AS1 = as_cover(C_super, [fArS1, fArS2], prec=1000)
omega = as_form(AS1, 1/y)
print(omega.expansion_at_infty().valuation() == AS1.exponent_of_different())
print(omega.expansion_at_infty().valuation()==AS1.exponent_of_different())

View File

@ -1,7 +0,0 @@
p = 5
F = GF(p).algebraic_closure('t')
#F1 = F.algebraic_closure('t')
a = F.gen(2)
R.<x> = PolynomialRing(F)
P1 = superelliptic(x, 1)
AS = as_cover(P1, [P1.x^2, a*P1.x^2])

View File

@ -27,4 +27,11 @@ load('auxilliaries/hensel.sage')
load('auxilliaries/linear_combination_polynomials.sage')
load('auxilliaries/laurent_analytic_part.sage')
##############
##############
##############
def init(lista, tests = False, init=True):
if init:
load('init.sage')
for i in lista:
load('drafty/draft'+str(i)+'.sage')
if tests:
load('tests.sage')

View File

@ -264,8 +264,9 @@ def reduction(C, g):
G = coff(g, d)
i = floor(d/m)
g = g - G*y1^d + Rx(f(x=x1)^i) * y1^(d%m) *G
return(Fxy(g(x1=x, y1 = y)))
x, y = Fxy.gens()
h = Fxy(g(x1 = x, y1 = y))
return(h)
def reduction_form(C, g):
'''Auxilliary. Given a superelliptic curve C : y^m = f(x) and a polynomial g(x, y)
@ -287,8 +288,8 @@ def reduction_form(C, g):
g = FxRy(g(x = x1, y=y1))
for j in range(0, m):
if j==0:
G = coff(g, 0)
g1 += FxRy(G(x=x1))
G = Rx(coff(g, 0))
g1 += FxRy(G)
else:
G = coff(g, j)
g1 += y1^(j-m)*FxRy(f(x=x1)*G)

View File

@ -106,9 +106,7 @@ class superelliptic_form:
Rx.<x> = PolynomialRing(F)
Fx = FractionField(Rx)
FxRy.<y1> = PolynomialRing(Fx, 1)
print('a')
g = FxRy(g(x = x, y = y1))
print('b')
if j == 0:
return g.monomial_coefficient(y1^(0))/C.polynomial
return g.monomial_coefficient(y1^(m-j))

View File

@ -8,4 +8,8 @@ g = (C.x)^5 * (C.y)^2 + 2*(C.x)^2 * (C.y)^3
g = g^p
print(g.pth_root()==(C.x)^5 * (C.y)^2 + 2*(C.x)^2 * (C.y)^3)
g = C.x
print(g.pth_root())
try:
print(g.pth_root())
print("False")
except ValueError:
print("True")

View File

@ -9,23 +9,23 @@ load('superelliptic/tests/pth_root_test.sage')
#load('superelliptic/tests/p_rank_test.sage')
print("a-number test:")
load('superelliptic/tests/a_number_test.sage')
print("as_cover_test:")
load('as_covers/tests/as_cover_test.sage')
#print("group_action_matrices_test:")
#load('as_covers/tests/group_action_matrices_test.sage')
#print("dual_element_test:")
#load('as_covers/tests/dual_element_test.sage')
#print("ith_component_test:")
#load('as_covers/tests/ith_component_test.sage')
#print("ith ramification group test:")
#load('as_covers/tests/ith_ramification_gp_test.sage')
#print("uniformizer test:")
#load('as_covers/tests/uniformizer_test.sage')
#print("ramification jumps test:")
#load('as_covers/tests/ramification_jumps_test.sage')
#print("diffn_test:")
#load('as_covers/tests/diffn_test.sage')
#print("Cartier test:")
#load('as_covers/tests/cartier_test.sage')
#print("Decomposition into g0, g8/ omega0, omega8 test:")
#load('superelliptic_drw/tests/decomposition_into_g0_g8_tests.sage')
#print("as_cover_test:")
#load('as_covers/tests/as_cover_test.sage')
print("group_action_matrices_test:")
load('as_covers/tests/group_action_matrices_test.sage')
print("dual_element_test:")
load('as_covers/tests/dual_element_test.sage')
print("ith_component_test:")
load('as_covers/tests/ith_component_test.sage')
print("ith ramification group test:")
load('as_covers/tests/ith_ramification_gp_test.sage')
print("uniformizer test:")
load('as_covers/tests/uniformizer_test.sage')
print("ramification jumps test:")
load('as_covers/tests/ramification_jumps_test.sage')
print("diffn_test:")
load('as_covers/tests/diffn_test.sage')
print("Cartier test:")
load('as_covers/tests/cartier_test.sage')
print("Decomposition into g0, g8/ omega0, omega8 test:")
load('superelliptic_drw/tests/decomposition_into_g0_g8_tests.sage')