kash% k := GF(5); Finite field of size 5 kash% kx := PolynomialRing(k); Univariate Polynomial Ring over GF(5) kash% AssignNames_(kx, ["x"]); kash% x := kx.1; x kash% kxy := PolynomialRing(kx); Univariate Polynomial Ring over Univariate Polynomial Ring over GF(5) kash% AssignNames_(kxy, ["y"]); kash% y := kxy.1; y kash% f := y^2 - x^3 + 1; y^2 + 4*x^3 + 1 kash% F := FunctionField(f); Algebraic function field defined over Univariate rational function field over GF(5) by y^2 + 4*x^3 + 1 kash% Genus(F); 1 kash% ExactConstantField(F); Finite field of size 5, extended by: ext1 := Mapping from: fld^fin: k to fld^fun: F kash% x := Coerce(F, x); x kash% AssignNames_(F, ["y"]); kash% y := F.1; y kash% y^2 - x^3 + 1; 0 kash% Divisor(x); -2*(1/x, 1/x^2*y) + (x, y + x + 2) + (x, y + x + 3) kash% Poles(x); [ (1/x, 1/x^2*y) ] kash% infty := Poles(x)[1]; (1/x, 1/x^2*y) kash% Degree(2*infty); 2 kash% Basis(2*infty); [ x, 1 ] kash% Degree(3*infty); 3 kash% Basis(3*infty); [ y, x, 1 ] kash% L := Places(F, 1); [ (1/x, 1/x^2*y), (x, y + x + 2), (x, y + x + 3), (x + 2, y + 1), (x + 2, y + \ 4), (x + 4, y) ] kash% Evaluate(x, L[1]); INFTY kash% Evaluate(x, L[2]); 0 kash% Evaluate(x, L[4]); 3 kash% W := CanonicalDivisor(F); (x + 4, y) + (x^2 + x + 1, y) - 3*(1/x, 1/x^2*y) kash% GapNumbers(F, infty); [ 1 ] kash% o := MaximalOrderFinite(F); Maximal Equation Order of F over Univariate Polynomial Ring in x over GF(5) kash% Basis(o); [ 1, y ] kash% CoefficientRing(o); Univariate Polynomial Ring in x over GF(5) kash% Discriminant(o); 4*x^3 + 1 kash% Factorisation(x * o); [ , ]