# SAGEMATH module: superelliptic curves and their Artin-Schreier covers ## Basic information ## Usage The main file is init.sage. In order to use it, type: ```sage: load('init.sage')``` The main two "packages" are intended for: - superelliptic curves, - $(\mathbb Z/p)^n$-covers of superelliptic curves. ## Superelliptic curves In order to define a superelliptic curve $C : y^4 = x^6 + 1$ over the finite field with 9 elements, use the following commands: ``` F. = GF(9, 'a') Rx. = PolynomialRing(F) f = x^6 + 1 C = superelliptic(f, 4) ``` There are three auxilliary classes: superelliptic_function (for functions defined on superelliptic curves), superelliptic_form (for forms defined on superelliptic curves) and superelliptic_cech (for cech cocycles for the de Rham cohomology on superelliptic curves). For example, in order to define the function $x + y$ on our curve $C$ we can define it like this: ``` Rxy. = PolynomialRing(F, 2) fct = superelliptic_function(C, x + y) ``` or simpler: ``` fct = C.x + C.y ``` Similarly, in order to define the form $\omega = y \cdot dx$ we may use: ``` omega = superelliptic_form(C, y) ``` or simpler: ``` omega = C.y * C.dx ``` ## Troubleshooting - precision - threshold - no root in the field - basis -- coordinates.