# smoothCanonicalCurve -- Computes the ideal of canonical curve

## Synopsis

• Usage:
smoothCanonicalCurve(g,p)
• Inputs:
• g, an integer, the genus
• p, an integer, a prime number defining the characteristic
• Optional inputs:
• Details => ..., default value false, keeps track of the precise step in the construction of canonical genus 14 and 15 curves. Default value is "false".
• Printing => ..., default value false, displays information about the current step in the constructions. Default value is "false".
• Outputs:
• ICan, an ideal, the ideal of a (smooth) canonical curve of genus g over a field with characteristic p

## Description

Computes a smooth canonical curve of genus g<=15 over a field of characteristc p. For genus g<=14 are based on the unirationality of M_g for g<=14 and the RandomCurves-package. A unirational parametrization of M_g is only a rational map and bad choices of parameters (which are quite likely over small fields) might end up in the indeterminacy locus or some other undesired subloci. In this constructions we catch the steps which do not work out for very small characteristic by catching all possible missteps.

For g<=10 the curves are constructed via plane models.

For g<=13 the curves are constructed via space models.

For g=14 the curves are constructed by Verra's method.

For g=15 the curves are constructed via matrix factorizations.

If the option Printing is set to true then printings about the current step in the construction are displayed.

 i1 : time ICan = smoothCanonicalCurve(11,5); -- used 2.68929 seconds ZZ o1 : Ideal of --[t ..t ] 5 0 10 i2 : (dim ICan, genus ICan, degree ICan) o2 = (2, 11, 20) o2 : Sequence i3 : betti ICan 0 1 o3 = total: 1 36 0: 1 . 1: . 36 o3 : BettiTally