diff --git a/as_covers/as_form_class.sage b/as_covers/as_form_class.sage index 22c042b..9622306 100644 --- a/as_covers/as_form_class.sage +++ b/as_covers/as_form_class.sage @@ -97,7 +97,6 @@ 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 @@ -194,12 +193,12 @@ def artin_schreier_transform(power_series, prec = 10): power_series = power_series - (coeff*t^(-p*M) - coeff.nth_root(p)*t^(-M)) jump = max(-(power_series.valuation()), 0) try: - T = ((power_series)^(-1)).nth_root(jump) #T is defined by power_series = 1/T^m + T = nth_root2((power_series)^(-1), jump, prec=prec) #T is defined by power_series = 1/T^m except: print("no ", str(jump), "-th root; divide by", power_series.list()[0]) return (jump, power_series.list()[0]) T_rev = new_reverse(T, prec = prec) - t_old = T_rev(t^p/(1 - t^((p-1)*jump)).nth_root(jump)) + t_old = T_rev(t^p/nth_root2(1 - t^((p-1)*jump), jump, prec=prec)) z = 1/t^(jump) + Rt(correction)(t = t_old) return(jump, correction, t_old, z) diff --git a/as_covers/group_action_matrices.sage b/as_covers/group_action_matrices.sage index d1c3693..7fb6528 100644 --- a/as_covers/group_action_matrices.sage +++ b/as_covers/group_action_matrices.sage @@ -27,7 +27,7 @@ def group_action_matrices_dR(AS, threshold=8): ei = n*[0] ei[i] = 1 generators += [ei] - basis = [AS.holomorphic_differentials_basis(), AS.cohomology_of_structure_sheaf_basis(), AS.de_rham_basis(threshold=threshold)] + basis = [AS.holomorphic_differentials_basis(threshold = threshold), AS.cohomology_of_structure_sheaf_basis(threshold = threshold), AS.de_rham_basis(threshold=threshold)] return group_action_matrices(basis[2], generators, basis = basis) def group_action_matrices_old(C_AS): diff --git a/as_covers/tests/uniformizer_test.sage b/as_covers/tests/uniformizer_test.sage index a67ab1d..68ef2ee 100644 --- a/as_covers/tests/uniformizer_test.sage +++ b/as_covers/tests/uniformizer_test.sage @@ -9,4 +9,4 @@ Rxy. = 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) -print(AS.unifomizer().valuation() == 1) \ No newline at end of file +print(AS.uniformizer().valuation() == 1) \ No newline at end of file diff --git a/auxilliaries/hensel.sage b/auxilliaries/hensel.sage index d973fac..3b35849 100644 --- a/auxilliaries/hensel.sage +++ b/auxilliaries/hensel.sage @@ -16,4 +16,16 @@ def naive_hensel(fct, F, start = 1, prec=10): while(i < prec): w0 = w0 - fct(W = w0)/alpha + O(t^(prec)) i += 1 - return w0 \ No newline at end of file + return w0 + +def nth_root2(fct, n, prec=10): + '''Given power series in F((t)), find its n-th root up to precision prec.''' + F= parent(fct).base_ring() + Rt. = LaurentSeriesRing(F, default_prec=prec) + RW. = PolynomialRing(Rt) + v = fct.valuation() + fct1 = Rt(fct*t^(-v)) + a0 = fct1[0] + if v%n != 0: + raise ValueError('The valuation of the power series is not divisible by n.') + return t^(v//n)*naive_hensel(W^n - fct1, F, start = a0.nth_root(n), prec=prec) \ No newline at end of file diff --git a/drafty/draft2.sage b/drafty/draft2.sage index a08e87c..941d642 100644 --- a/drafty/draft2.sage +++ b/drafty/draft2.sage @@ -1,18 +1,15 @@ -def reduction(g): - F = g.parent().base() - x, y = g.parent().gens() - Rxy. = PolynomialRing(F, 2) - Fxy = FractionField(Rxy) - Rx. = PolynomialRing(F) - Fx = FractionField(Rx) - FxRy. = PolynomialRing(Fx) - g = Fxy(g) - g1 = g.numerator() - g2 = g.denominator() - print('aa', FxRy(g2)) - - -F = GF(3).algebraic_closure() -R. = PolynomialRing(F, 2) -g = x -reduction(g) \ No newline at end of file +p = 5 +#F. = GF(p^2, 'a') +F. = GF(p^8, 'a') +#F = GF(p).algebraic_closure() +#a = F.gen(2) +Rx. = PolynomialRing(F) +P1 = superelliptic(x, 1) +m = 4 +s = (p^8 - 1)/(p^2 - 1) +b = a^s +C = as_cover(P1, [(P1.x)^(m), b*(P1.x)^(m)], prec=300) +print(C) +A, B = group_action_matrices_dR(C) +print('matrices') +print(magma_module_decomposition(A, B, matrices=False)) \ No newline at end of file diff --git a/tests.sage b/tests.sage index e80d7b3..74cb3a1 100644 --- a/tests.sage +++ b/tests.sage @@ -1,16 +1,16 @@ #load('init.sage') -print("Expansion at infty test:") -load('superelliptic/tests/expansion_at_infty.sage') -print("superelliptic form coordinates test:") -load('superelliptic/tests/form_coordinates_test.sage') -print("p-th root test:") -load('superelliptic/tests/pth_root_test.sage') +#print("Expansion at infty test:") +#load('superelliptic/tests/expansion_at_infty.sage') +#print("superelliptic form coordinates test:") +#load('superelliptic/tests/form_coordinates_test.sage') +#print("p-th root test:") +#load('superelliptic/tests/pth_root_test.sage') #print("not working! superelliptic p rank test:") #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("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:")