# Algebraic Curves

- [First Examples](examples1.md)

  - [Ambients](examples1.md#ambients)

  - [Curves](examples1.md#curves)

  - [Projective Closure](examples1.md#projective-closure)

  - [Points](examples1.md#points)

  - [Choosing Coordinates](examples1.md#choosing-coordinates)

  - [Function Fields and Divisors](examples1.md#function-fields-and-divisors)

- [Ambient Spaces](ambients.md)

  - [`AffineSpace(k,n): Rng, RngIntElt → Aff`](ambients.md#function-affinespace-rng-rngintelt)

  - [`AffinePlane(k): Rng → Aff`](ambients.md#function-affineplane-rng)

  - [`ProjectiveSpace(k,n): Rng, RngIntElt → Prj`](ambients.md#function-projectivespace-rng-rngintelt)

  - [`ProjectivePlane(k): Rng → Prj`](ambients.md#function-projectiveplane-rng)

  - [`DirectProduct(A,B): Prj, Prj → PrjProd, SeqEnum`](ambients.md#function-directproduct-prj-prj)

  - [`RuledSurface(k,n): Rng, RngIntElt → PrjScrl`](ambients.md#function-ruledsurface-rng-rngintelt)

  - [`RuledSurface(k,a,b): Rng, RngIntElt, RngIntElt → PrjScrl`](ambients.md#function-ruledsurface-rng-rngintelt-rngintelt)

  - [`CoordinateRing(A): Sch → RngMPol`](ambients.md#function-coordinatering-sch)

  - [`FunctionField(A): Aff → FldFunFracSch`](ambients.md#function-functionfield-aff)

  - [`FunctionField(A): Prj → FldFunFracSch`](ambients.md#function-functionfield-prj)

  - [`A ! [a,...]: Sch, [RngElt] → Pt`](ambients.md#operation-op-sch-rngelt)

  - [`A(L) ! [a,...]: SetPt, [RngElt] → Pt`](ambients.md#operation-a-setpt-rngelt)

  - [`Origin(A): Aff → Pt`](ambients.md#function-origin-aff)

  - [`Coordinates(p): Pt → SeqEnum`](ambients.md#function-coordinates-pt)

  - [`p[i]: Pt, RngIntElt → RngElt`](ambients.md#literal-literal-p-i-pt-rngintelt-rngelt)

  - [`Example: Plane Points`](ambients.md#example-ex-300d2e)

- [Algebraic Curves](curves.md)

  - [Creation](curves.md#creation)

    - [`Curve(A,f): Sch, RngMPolElt → CrvPln`](curves.md#function-curve-sch-rngmpolelt)

    - [`Curve(A,I): Sch, RngMPol → Crv`](curves.md#function-curve-sch-rngmpol)

    - [`Curve(X,S): Sch, SeqEnum → Crv`](curves.md#function-curve-sch-seqenum)

    - [`IsCurve(X): Sch → BoolElt, Crv`](curves.md#function-iscurve-sch)

    - [`Curve(X): Sch → Crv`](curves.md#function-curve-sch)

    - [`Line(C,p,q): CrvPln, Pt, Pt → CrvPln`](curves.md#function-line-crvpln-pt-pt)

    - [`Line(P,S): Prj, \{Pt\} → Sch`](curves.md#function-line-prj-pt)

    - [`Conic(P,S): Prj, \{Pt\} → Crv`](curves.md#function-conic-prj-pt)

    - [`Union(C,D): Sch, Sch → Sch`](curves.md#function-union-sch-sch)

  - [Base Change](curves.md#base-change)

    - [`BaseChange(C, K): Sch, Rng → Sch`](curves.md#function-basechange-sch-rng)

    - [`BaseChange(C, m): Sch, Map → Sch`](curves.md#function-basechange-sch-map)

    - [`BaseChange(C, A): Sch, Sch → Sch`](curves.md#function-basechange-sch-sch)

    - [`BaseChange(C, A, m): Sch, Sch, Map → Sch`](curves.md#function-basechange-sch-sch-map)

    - [`BaseChange(C, n): Sch, RngIntElt → Sch`](curves.md#function-basechange-sch-rngintelt)

    - [`Example: Curve Base Change`](curves.md#example-ex-d5a0e9)

  - [Basic Attributes](curves.md#basic-attributes)

    - [`AmbientSpace(C): Sch → Sch`](curves.md#function-ambientspace-sch)

    - [`BaseRing(C): Sch → Rng`](curves.md#function-basering-sch)

    - [`CoefficientRing(C): Sch → Rng`](curves.md#function-coefficientring-sch)

    - [`BaseField(C): Sch → Fld`](curves.md#function-basefield-sch)

    - [`DefiningPolynomial(C): Sch → RngMPolElt`](curves.md#function-definingpolynomial-sch)

    - [`DefiningIdeal(C): Sch → RngMPol`](curves.md#function-definingideal-sch)

    - [`CoordinateRing(C): Sch → Rng`](curves.md#function-coordinatering-sch-2)

    - [`Degree(C): Sch → RngIntElt`](curves.md#function-degree-sch)

    - [`JacobianIdeal(C): Sch → RngMPol`](curves.md#function-jacobianideal-sch)

    - [`JacobianMatrix(C): Sch → ModMatRngElt`](curves.md#function-jacobianmatrix-sch)

    - [`HessianMatrix(C): Sch → Mtrx`](curves.md#function-hessianmatrix-sch)

    - [`Example: Curve Hessian`](curves.md#example-ex-2ecc15)

  - [Basic Invariants](curves.md#basic-invariants)

    - [`IsReduced(C): Sch → BoolElt`](curves.md#function-isreduced-sch)

    - [`IsIrreducible(C): Sch → BoolElt`](curves.md#function-isirreducible-sch)

    - [`IsSingular(C): Sch → BoolElt`](curves.md#function-issingular-sch)

    - [`IsNonsingular(C): Sch → BoolElt`](curves.md#function-isnonsingular-sch)

  - [Random Curves](curves.md#random-curves)

    - [`RandomNodalCurve(d, g, P): RngIntElt, RngIntElt, Prj → CrvPln`](curves.md#function-randomnodalcurve-rngintelt-rngintelt-prj)

    - [`IsNodalCurve(C): Crv → BoolElt`](curves.md#function-isnodalcurve-crv)

    - [`RandomOrdinaryPlaneCurve(d, S, P): RngIntElt, SeqEnum, Prj → CrvPln, RngMPol`](curves.md#function-randomordinaryplanecurve-rngintelt-seqenum-prj)

    - [`RandomCurveByGenus(g, K): RngIntElt, Fld → Crv`](curves.md#function-randomcurvebygenus-rngintelt-fld)

    - [`Example: Random Curves`](curves.md#example-ex-4c97b4)

  - [Ordinary Plane Curves](curves.md#ordinary-plane-curves)

    - [`HasOnlyOrdinarySingularities(C): CrvPln → BoolElt, RngIntElt, RngMPol`](curves.md#function-hasonlyordinarysingularities-crvpln)

    - [`HasOnlyOrdinarySingularitiesMonteCarlo(C): CrvPln → BoolElt, RngIntElt`](curves.md#function-hasonlyordinarysingularitiesmontecarlo-crvpln)

    - [`AdjointIdeal(C): Crv → RngMPol`](curves.md#function-adjointideal-crv)

    - [`AdjointIdealForNodalCurve(C): Crv → RngMPol`](curves.md#function-adjointidealfornodalcurve-crv)

    - [`AdjointLinearSystemForNodalCurve(C, d): Crv, RngIntElt → LinearSys`](curves.md#function-adjointlinearsystemfornodalcurve-crv-rngintelt)

    - [`AdjointLinearSystemFromIdeal(I, d): RngMPol, RngIntElt → LinearSys`](curves.md#function-adjointlinearsystemfromideal-rngmpol-rngintelt)

    - [`CanonicalLinearSystemFromIdeal(I, d): RngMPol, RngIntElt → LinearSys`](curves.md#function-canonicallinearsystemfromideal-rngmpol-rngintelt)

    - [`CanonicalLinearSystem(C): Crv → LinearSys`](curves.md#function-canonicallinearsystem-crv)

    - [`AdjointLinearSystem(C): Crv → LinearSys`](curves.md#function-adjointlinearsystem-crv)

    - [`Adjoints(C,d): Crv, RngIntElt → LinearSys`](curves.md#function-adjoints-crv-rngintelt)

    - [`Example: Ordinary Curves`](curves.md#example-ex-d7505d)

- [Local Geometry](local-curve.md)

  - [Creation of Points on Curves](local-curve.md#creation-of-points-on-curves)

    - [`C ! [a,...]: Crv, [RngElt] → Pt`](local-curve.md#operation-op-crv-rngelt)

    - [`C(L) ! [a,...]: SetPt, [RngElt] → Pt`](local-curve.md#operation-c-setpt-rngelt)

    - [`Curve(p): Pt → Crv`](local-curve.md#function-curve-pt)

    - [`Curve(P): SetPt → Crv`](local-curve.md#function-curve-setpt)

    - [`Coordinates(p): Pt → SeqEnum`](local-curve.md#function-coordinates-pt-2)

    - [`p[i]: Pt, RngIntElt → RngElt`](local-curve.md#literal-literal-p-i-pt-rngintelt-rngelt)

    - [`Coordinate(p, i): Pt, RngIntElt → SeqEnum`](local-curve.md#function-coordinate-pt-rngintelt)

    - [`p eq q: Pt, Pt → BoolElt`](local-curve.md#operation-op-eq-pt-pt)

    - [`FormalPoint(P): Pt → Pt`](local-curve.md#function-formalpoint-pt)

  - [Operations at a Point](local-curve.md#operations-at-a-point)

    - [`p in C: Pt, Sch → BoolElt`](local-curve.md#operation-op-in-pt-sch)

    - [`S in C: SeqEnum, Sch → BoolElt`](local-curve.md#operation-op-in-seqenum-sch)

    - [`IsNonsingular(p): Pt → BoolElt`](local-curve.md#function-isnonsingular-pt)

    - [`IsNonsingular(C, p): Sch, Pt → BoolElt`](local-curve.md#function-isnonsingular-sch-pt)

    - [`IsSingular(p): Pt → BoolElt`](local-curve.md#function-issingular-pt)

    - [`IsSingular(C, p): Sch, Pt → BoolElt`](local-curve.md#function-issingular-sch-pt)

    - [`IsInflectionPoint(p): Pt → BoolElt, RngIntElt`](local-curve.md#function-isinflectionpoint-pt)

    - [`IsInflectionPoint(C, p): Sch, Pt → BoolElt, RngIntElt`](local-curve.md#function-isinflectionpoint-sch-pt)

    - [`IsFlex(C, p): Sch, Pt → BoolElt, RngIntElt`](local-curve.md#function-isflex-sch-pt)

    - [`IsFlex(p): Pt → BoolElt, RngIntElt`](local-curve.md#function-isflex-pt)

    - [`TangentLine(p): Pt → Crv`](local-curve.md#function-tangentline-pt)

    - [`TangentLine(C, p): Crv, Pt → Crv`](local-curve.md#function-tangentline-crv-pt)

    - [`TangentCone(p): Pt → Sch`](local-curve.md#function-tangentcone-pt)

    - [`TangentCone(C, p): Sch, Pt → Sch`](local-curve.md#function-tangentcone-sch-pt)

    - [`IsTangent(C, D, p): Sch, Sch, Pt → BoolElt`](local-curve.md#function-istangent-sch-sch-pt)

  - [Singularity Analysis](local-curve.md#singularity-analysis)

    - [`Multiplicity(p): Pt → RngIntElt`](local-curve.md#function-multiplicity-pt)

    - [`Multiplicity(C, p): Sch, Pt → RngIntElt`](local-curve.md#function-multiplicity-sch-pt)

    - [`IsDoublePoint(p): Pt → BoolElt`](local-curve.md#function-isdoublepoint-pt)

    - [`IsDoublePoint(C, p): Crv, Pt → BoolElt`](local-curve.md#function-isdoublepoint-crv-pt)

    - [`IsOrdinarySingularity(p): Pt → BoolElt`](local-curve.md#function-isordinarysingularity-pt)

    - [`IsOrdinarySingularity(C, p): Sch, Pt → BoolElt`](local-curve.md#function-isordinarysingularity-sch-pt)

    - [`IsNode(p): Pt → BoolElt`](local-curve.md#function-isnode-pt)

    - [`IsNode(C, p): Sch, Pt → BoolElt`](local-curve.md#function-isnode-sch-pt)

    - [`IsCusp(p): Pt → BoolElt`](local-curve.md#function-iscusp-pt)

    - [`IsCusp(C, p): Crv, Pt → BoolElt`](local-curve.md#function-iscusp-crv-pt)

    - [`IsAnalyticallyIrreducible(p): Pt → BoolElt`](local-curve.md#function-isanalyticallyirreducible-pt)

    - [`IsAnalyticallyIrreducible(C, p): CrvPln, Pt → BoolElt`](local-curve.md#function-isanalyticallyirreducible-crvpln-pt)

    - [`DeltaAdjustment(C, p): Sch, Pt → RngIntElt`](local-curve.md#function-deltaadjustment-sch-pt)

    - [`Example: Curve Iscusp`](local-curve.md#example-ex-087199)

  - [Resolution of Singularities](local-curve.md#resolution-of-singularities)

    - [`Blowup(C): CrvPln → CrvPln, CrvPln`](local-curve.md#function-blowup-crvpln)

    - [`Blowup(C, M): CrvPln, Mtrx → CrvPln, RngIntElt, RngIntElt`](local-curve.md#function-blowup-crvpln-mtrx)

    - [`Example: Weighted Blowup`](local-curve.md#example-ex-bf0fac)

  - [Log Canonical Thresholds](local-curve.md#log-canonical-thresholds)

    - [`LogCanonicalThreshold(C): Sch → FldRatElt, BoolElt`](local-curve.md#function-logcanonicalthreshold-sch)

    - [`LCT(C): Sch → FldRatElt, BoolElt`](local-curve.md#function-lct-sch)

    - [`LogCanonicalThresholdAtOrigin(C): Sch → FldRatElt`](local-curve.md#function-logcanonicalthresholdatorigin-sch)

    - [`LogCanonicalThreshold(C, P): Sch, Pt → FldRatElt`](local-curve.md#function-logcanonicalthreshold-sch-pt)

    - [`LCT(C, P): Sch, Pt → FldRatElt`](local-curve.md#function-lct-sch-pt)

    - [`LogCanonicalThresholdOverExtension(C): Sch → FldRatElt`](local-curve.md#function-logcanonicalthresholdoverextension-sch)

    - [`Example: Lct Projective Plane`](local-curve.md#example-ex-abc557)

    - [`Example: Lct Over Ext`](local-curve.md#example-ex-bbea7a)

  - [Local Intersection Theory](local-curve.md#local-intersection-theory)

    - [`IsIntersection(C,D,p): Sch, Sch, Pt → BoolElt`](local-curve.md#function-isintersection-sch-sch-pt)

    - [`IsTransverse(C,D,p): Sch, Sch, Pt → BoolElt`](local-curve.md#function-istransverse-sch-sch-pt)

    - [`IntersectionNumber(C,D,p): Sch, Sch, Pt → RngIntElt`](local-curve.md#function-intersectionnumber-sch-sch-pt)

    - [`IntersectionNumbers(C,D): CrvPln, CrvPln → List`](local-curve.md#function-intersectionnumbers-crvpln-crvpln)

    - [`IntersectionNumbers(F,G): RngMPolElt, RngMPolElt → List`](local-curve.md#function-intersectionnumbers-rngmpolelt-rngmpolelt)

    - [`Example: Local Intersection Example`](local-curve.md#example-ex-d39f91)

    - [`Example: Crv:int Nmbrs`](local-curve.md#example-ex-d12c4a)

- [Global Geometry](global-curvepl.md)

  - [Genus and Singularities](global-curvepl.md#genus-and-singularities)

    - [`Genus(C): Crv → RngIntElt`](global-curvepl.md#function-genus-crv)

    - [`GeometricGenus(C): Crv → RngIntElt`](global-curvepl.md#function-geometricgenus-crv)

    - [`GenusViaArithmeticGenus(C): Crv → RngIntElt`](global-curvepl.md#function-genusviaarithmeticgenus-crv)

    - [`ArithmeticGenus(C): Crv → RngIntElt`](global-curvepl.md#function-arithmeticgenus-crv)

    - [`NumberOfPunctures(C): CrvPln → RngIntElt`](global-curvepl.md#function-numberofpunctures-crvpln)

    - [`SingularPoints(C): Sch → SetIndx`](global-curvepl.md#function-singularpoints-sch)

    - [`HasSingularPointsOverExtension(C): Sch → BoolElt`](global-curvepl.md#function-hassingularpointsoverextension-sch)

    - [`Flexes(C): Sch → Sch`](global-curvepl.md#function-flexes-sch)

    - [`InflectionPoints(C): Sch → Sch`](global-curvepl.md#function-inflectionpoints-sch)

    - [`C eq D: Sch, Sch → BoolElt`](global-curvepl.md#operation-op-eq-sch-sch)

    - [`IsSubscheme(C,D): Sch, Sch → BoolElt`](global-curvepl.md#function-issubscheme-sch-sch)

    - [`Example: Crv Genus`](global-curvepl.md#example-ex-74b2f1)

  - [Projective Closure and Affine Patches](global-curvepl.md#projective-closure-and-affine-patches)

    - [`ProjectiveClosure(A): Sch → Sch`](global-curvepl.md#function-projectiveclosure-sch)

    - [`ProjectiveClosure(C): Sch → Sch`](global-curvepl.md#function-projectiveclosure-sch-2)

    - [`Example: Proj Cl Commutes`](global-curvepl.md#example-ex-d4f8cb)

    - [`LineAtInfinity(A): Aff → CrvPln`](global-curvepl.md#function-lineatinfinity-aff)

    - [`PointsAtInfinity(C): Crv → SetEnum`](global-curvepl.md#function-pointsatinfinity-crv)

    - [`AffinePatch(C,i): Crv, RngIntElt → SeqEnum`](global-curvepl.md#function-affinepatch-crv-rngintelt)

    - [`Example: Second Affine Patch`](global-curvepl.md#example-ex-caf4e0)

  - [Special Forms of Curves](global-curvepl.md#special-forms-of-curves)

    - [`IsEllipticWeierstrass(C): Crv → BoolElt`](global-curvepl.md#function-isellipticweierstrass-crv)

    - [`IsHyperellipticWeierstrass(C): Crv → BoolElt`](global-curvepl.md#function-ishyperellipticweierstrass-crv)

    - [`EllipticCurve(C): Crv → CrvEll, MapSch`](global-curvepl.md#function-ellipticcurve-crv)

    - [`EllipticCurve(C,p): Crv, Pt → CrvEll, MapSch`](global-curvepl.md#function-ellipticcurve-crv-pt)

    - [`EllipticCurve(C,p): Crv, PlcCrvElt → CrvEll, MapSch`](global-curvepl.md#function-ellipticcurve-crv-plccrvelt)

    - [`IsHyperelliptic(C): Crv → BoolElt, CrvHyp, MapSch`](global-curvepl.md#function-crv-ishyp)

    - [`IsGeometricallyHyperelliptic(C): Crv → BoolElt, Crv, MapSch`](global-curvepl.md#function-isgeometricallyhyperelliptic-crv)

    - [`Example: Is Hyperelliptic`](global-curvepl.md#example-ex-3920fc)

- [Maps and Curves](maps-crvpl.md)

  - [Elementary Maps](maps-crvpl.md#elementary-maps)

    - [`IdentityAutomorphism(A): Sch → AutSch`](maps-crvpl.md#function-identityautomorphism-sch)

    - [`Translation(A,p): Sch, Pt → AutSch`](maps-crvpl.md#function-translation-sch-pt)

    - [`FlipCoordinates(A): Sch → AutSch`](maps-crvpl.md#function-flipcoordinates-sch)

    - [`Automorphism(A,q): Sch, RngMPolElt → AutSch`](maps-crvpl.md#function-automorphism-sch-rngmpolelt)

    - [`TranslationToInfinity(C,p): Crv, Pt → Crv, AutSch`](maps-crvpl.md#function-translationtoinfinity-crv-pt)

    - [`Example: Translation To Infinity`](maps-crvpl.md#example-ex-cb63a5)

    - [`EvaluateByPowerSeries(m, P): MapSch, Pt → Pt`](maps-crvpl.md#function-evaluatebypowerseries-mapsch-pt)

    - [`Example: Maps Point Pow Eval`](maps-crvpl.md#example-ex-60d1f5)

  - [Maps Induced by Morphisms](maps-crvpl.md#maps-induced-by-morphisms)

    - [`Degree(m): MapSch → RngIntElt`](maps-crvpl.md#function-degree-mapsch)

    - [`RamificationDivisor(m): MapSch → DivCrvElt`](maps-crvpl.md#function-ramificationdivisor-mapsch)

    - [`Pullback(phi, X): MapSch, FldFunFracSchElt → FldFunFracSchElt`](maps-crvpl.md#function-pullback-mapsch-fldfunfracschelt)

    - [`Pullback(phi, X): MapSch, DiffCrvElt → DiffCrvElt`](maps-crvpl.md#function-pullback-mapsch-diffcrvelt)

    - [`Pullback(phi, X): MapSch, DivCrvElt → DivCrvElt`](maps-crvpl.md#function-pullback-mapsch-divcrvelt)

    - [`Pullback(phi, X): MapSch, PlcCrvElt → DivCrvElt`](maps-crvpl.md#function-pullback-mapsch-plccrvelt)

    - [`Pushforward(phi, X): MapSch, FldFunFracSchElt → FldFunFracSchElt`](maps-crvpl.md#function-pushforward-mapsch-fldfunfracschelt)

    - [`Pushforward(phi, X): MapSch, PlcCrvElt → DivCrvElt`](maps-crvpl.md#function-pushforward-mapsch-plccrvelt)

    - [`Pushforward(phi, X): MapSch, DivCrvElt → DivCrvElt`](maps-crvpl.md#function-pushforward-mapsch-divcrvelt)

    - [`Example: Map Push Pull`](maps-crvpl.md#example-ex-67ce2e)

- [Automorphism Groups of Curves](crv_isos.md)

  - [Group Creation Functions](crv_isos.md#group-creation-functions)

    - [`AutomorphismGroup(C): Crv → GrpAutCrv`](crv_isos.md#function-automorphismgroup-crv)

    - [`AutomorphismGroup(C,auts): Crv, SeqEnum → GrpAutCrv`](crv_isos.md#function-automorphismgroup-crv-seqenum)

    - [`Automorphisms(C): Crv → SeqEnum`](crv_isos.md#function-automorphisms-crv)

    - [`IsIsomorphic(C, D): Crv, Crv → BoolElt, MapSch`](crv_isos.md#function-isisomorphic-crv-crv)

    - [`Isomorphisms(C, D): Crv, Crv → SeqEnum`](crv_isos.md#function-isomorphisms-crv-crv)

  - [Automorphisms](crv_isos.md#automorphisms)

    - [`A . i: GrpAutCrv, RngIntElt → GrpAutCrvElt`](crv_isos.md#operation-operation-grpautcrv-rngintelt-grpautcrvelt)

    - [`Identity(A): GrpAutCrv → GrpAutCrvElt`](crv_isos.md#function-identity-grpautcrv)

    - [`Id(A): GrpAutCrv → GrpAutCrvElt`](crv_isos.md#function-id-grpautcrv)

    - [`A ! 1: GrpAutCrv, RngIntElt → GrpAutCrvElt`](crv_isos.md#operation-op-grpautcrv-rngintelt)

    - [`A ! f: GrpAutCrv, MapSch → GrpAutCrvElt`](crv_isos.md#operation-op-grpautcrv-mapsch)

    - [`A ! f: GrpAutCrv, GrpAutCrvElt → GrpAutCrvElt`](crv_isos.md#operation-op-grpautcrv-grpautcrvelt)

    - [`Order(f): GrpAutCrvElt → RngIntElt`](crv_isos.md#function-order-grpautcrvelt)

    - [`Inverse(f): GrpAutCrvElt → GrpAutCrvElt`](crv_isos.md#function-inverse-grpautcrvelt)

    - [`f * g: GrpAutCrvElt, GrpAutCrvElt → GrpAutCrvElt`](crv_isos.md#operation-op-times-grpautcrvelt-grpautcrvelt)

    - [`f ^ n: GrpAutCrvElt, RngIntElt → GrpAutCrvElt`](crv_isos.md#operation-op-pow-grpautcrvelt-rngintelt)

    - [`g eq h: GrpAutoElt, GrpAutoElt → BoolElt`](crv_isos.md#operation-op-eq-grpautoelt-grpautoelt)

    - [`g ne h: GrpAutoElt, GrpAutoElt → BoolElt`](crv_isos.md#operation-op-ne-grpautoelt-grpautoelt)

    - [`SchemeMap(f): GrpAutCrvElt → MapAutSch`](crv_isos.md#function-schememap-grpautcrvelt)

  - [Automorphism Group Operations](crv_isos.md#automorphism-group-operations)

    - [`Curve(A): GrpAutCrv → Crv`](crv_isos.md#function-curve-grpautcrv)

    - [`Order(A): GrpAutCrv → RngIntElt`](crv_isos.md#function-order-grpautcrv)

    - [`FactoredOrder(A): GrpAutCrv → [ <RngIntElt, RngIntElt> ]`](crv_isos.md#function-factoredorder-grpautcrv)

    - [`NumberOfGenerators(A): GrpAutCrv → RngIntElt`](crv_isos.md#function-numberofgenerators-grpautcrv)

    - [`Ngens(A): GrpAutCrv → RngIntElt`](crv_isos.md#function-ngens-grpautcrv)

    - [`Generators(A): GrpAutCrv → SeqEnum`](crv_isos.md#function-generators-grpautcrv)

    - [`PermutationGroup(A): GrpAutCrv → GrpPerm`](crv_isos.md#function-permutationgroup-grpautcrv)

    - [`PermutationRepresentation(A): GrpAutCrv → GrpPerm, Map`](crv_isos.md#function-permutationrepresentation-grpautcrv)

    - [`MatrixRepresentation(A): GrpAutCrv → Grpmat, Map, SeqEnum`](crv_isos.md#function-matrixrepresentation-grpautcrv)

    - [`a in A: GrpAutCrvElt, GrpAutCrv → BoolElt`](crv_isos.md#operation-op-in-grpautcrvelt-grpautcrv)

    - [`phi in A: MapSch, GrpAutCrv → BoolElt`](crv_isos.md#operation-op-in-mapsch-grpautcrv)

    - [`A subset B: GrpAutCrv, GrpAutCrv → BoolElt`](crv_isos.md#operation-op-subset-grpautcrv-grpautcrv)

  - [Pullbacks and Pushforwards](crv_isos.md#pullbacks-and-pushforwards)

    - [`f(X): GrpAutCrvElt, Pt → Pt`](crv_isos.md#function-f-grpautcrvelt-pt)

    - [`f(X): GrpAutCrvElt, FldFunFracSchElt → FldFunFracSchElt`](crv_isos.md#function-f-grpautcrvelt-fldfunfracschelt)

    - [`f(X): GrpAutCrvElt, PlcCrvElt → PlcCrvElt`](crv_isos.md#function-f-grpautcrvelt-plccrvelt)

    - [`f(X): GrpAutCrvElt, DivCrvElt → DivCrvElt`](crv_isos.md#function-f-grpautcrvelt-divcrvelt)

    - [`f(X): GrpAutCrvElt, DiffCrvElt → DiffCrvElt`](crv_isos.md#function-f-grpautcrvelt-diffcrvelt)

    - [`X @ f: Pt, GrpAutCrvElt → Pt`](crv_isos.md#operation-operation-pt-grpautcrvelt-pt)

    - [`X @ f: FldFunFracSchElt, GrpAutCrvElt → FldFunFracSchElt`](crv_isos.md#operation-operation-fldfunfracschelt-grpautcrvelt-fldfunfracschelt)

    - [`X @ f: PlcCrvElt, GrpAutCrvElt → PlcCrvElt`](crv_isos.md#operation-operation-plccrvelt-grpautcrvelt-plccrvelt)

    - [`X @ f: DivCrvElt, GrpAutCrvElt → DivCrvElt`](crv_isos.md#operation-operation-divcrvelt-grpautcrvelt-divcrvelt)

    - [`X @ f: DiffCrvElt, GrpAutCrvElt → DiffCrvElt`](crv_isos.md#operation-operation-diffcrvelt-grpautcrvelt-diffcrvelt)

    - [`X @@ f: FldFunFracSchElt, GrpAutCrvElt → FldFunFracSchElt`](crv_isos.md#operation-operation-fldfunfracschelt-grpautcrvelt-fldfunfracschelt-2)

    - [`X @@ f: PlcCrvElt, GrpAutCrvElt → PlcCrvElt`](crv_isos.md#operation-operation-plccrvelt-grpautcrvelt-plccrvelt-2)

    - [`X @@ f: DivCrvElt, GrpAutCrvElt → DivCrvElt`](crv_isos.md#operation-operation-divcrvelt-grpautcrvelt-divcrvelt-2)

    - [`X @@ f: DiffCrvElt, GrpAutCrvElt → DiffCrvElt`](crv_isos.md#operation-operation-diffcrvelt-grpautcrvelt-diffcrvelt-2)

    - [`Example: Crv Autos`](crv_isos.md#example-ex-88cd9b)

    - [`Example: Crv Iso`](crv_isos.md#example-ex-8b9b3c)

    - [`Example: Crv Iso`](crv_isos.md#example-ex-a782ea)

  - [Quotients of Curves](crv_isos.md#quotients-of-curves)

    - [`CurveQuotient(G): GrpAutCrv → Crv, MapSch`](crv_isos.md#function-curvequotient-grpautcrv)

    - [`Example: Crv Quots`](crv_isos.md#example-ex-e1fc9c)

    - [`Example: Crv Quots`](crv_isos.md#example-ex-3ef244)

- [Function Fields](function_field.md)

  - [Function Fields](function_field.md#id2)

    - [`FunctionField(C): Crv → FldFunFracSch`](function_field.md#function-functionfield-crv)

    - [`HasFunctionField(C): Crv → BoolElt`](function_field.md#function-hasfunctionfield-crv)

    - [`Curve(F): FldFunFracSch → Crv`](function_field.md#function-curve-fldfunfracsch)

    - [`F ! r: FldFunFracSch, RngElt → FldFunFracSchElt`](function_field.md#operation-op-fldfunfracsch-rngelt)

    - [`ProjectiveFunction(f): FldFunFracSchElt → RngFunFracElt`](function_field.md#function-projectivefunction-fldfunfracschelt)

    - [`Example: Ff Creation Example`](function_field.md#example-ex-0441b0)

    - [`p @ f: Pt, FldFunFracSchElt → RngElt`](function_field.md#operation-operation-pt-fldfunfracschelt-rngelt)

    - [`f(p): Pt, FldFunFracSchElt → RngElt`](function_field.md#function-f-pt-fldfunfracschelt)

    - [`Evaluate(f, p): RngElt, Pt → RngElt`](function_field.md#function-evaluate-rngelt-pt)

    - [`Expand(f, p): FldFunFracSchElt[Crv], PlcCrvElt → RngSerElt, FldFunFracSchElt`](function_field.md#function-expand-fldfunfracschelt-crv-plccrvelt)

    - [`Completion(F, p): FldFunFracSch[Crv], PlcCrvElt → RngSer, Map`](function_field.md#function-completion-fldfunfracsch-crv-plccrvelt)

    - [`Degree(f): FldFunFracSchElt[Crv] → RngIntElt`](function_field.md#function-degree-fldfunfracschelt-crv)

    - [`Valuation(f, p): RngElt, Pt → RngIntElt`](function_field.md#function-valuation-rngelt-pt)

    - [`Valuation(p): Pt → Map`](function_field.md#function-valuation-pt)

    - [`UniformizingParameter(p): Pt → FldFunFracSchElt`](function_field.md#function-uniformizingparameter-pt)

    - [`Module(S): [FldFunFracSchElt[Crv]] → Mod, Map, [ModElt]`](function_field.md#function-module-fldfunfracschelt-crv)

    - [`Relations(S): [FldFunFracSchElt[Crv]] → ModTupRng`](function_field.md#function-relations-fldfunfracschelt-crv)

    - [`Relations(S, m): [FldFunFracSchElt[Crv]], RngIntElt → ModTupRng`](function_field.md#function-relations-fldfunfracschelt-crv-rngintelt)

    - [`Genus(C): Crv → RngIntElt`](function_field.md#function-genus-crv-2)

    - [`FieldOfGeometricIrreducibility(C): Crv → Rng, Map`](function_field.md#function-fieldofgeometricirreducibility-crv)

    - [`IsAbsolutelyIrreducible(C): Crv → BoolElt`](function_field.md#function-isabsolutelyirreducible-crv)

    - [`DimensionOfFieldOfGeometricIrreducibility(C): Crv → RngIntElt`](function_field.md#function-dimensionoffieldofgeometricirreducibility-crv)

    - [`Example: Ff Elements Example`](function_field.md#example-ex-824936)

    - [`GapNumbers(C): Crv → [RngIntElt]`](function_field.md#function-gapnumbers-crv)

    - [`WronskianOrders(C): Crv → [RngIntElt]`](function_field.md#function-wronskianorders-crv)

    - [`NumberOfPlacesOfDegreeOverExactConstantField(C, m): Crv[FldFin], RngIntElt → RngIntElt`](function_field.md#function-numberofplacesofdegreeoverexactconstantfield-crv-fldfin-rngintelt)

    - [`NumberOfPlacesDegECF(C, m): Crv[FldFin], RngIntElt → RngIntElt`](function_field.md#function-numberofplacesdegecf-crv-fldfin-rngintelt)

    - [`NumberOfPlacesOfDegreeOneOverExactConstantField(C): Crv[FldFin] → RngIntElt`](function_field.md#function-numberofplacesofdegreeoneoverexactconstantfield-crv-fldfin)

    - [`NumberOfPlacesOfDegreeOneECF(C): Crv[FldFin] → RngIntElt`](function_field.md#function-numberofplacesofdegreeoneecf-crv-fldfin)

    - [`NumberOfPlacesOfDegreeOneOverExactConstantField(C, m): Crv[FldFin], RngIntElt → RngIntElt`](function_field.md#function-numberofplacesofdegreeoneoverexactconstantfield-crv-fldfin-rngintelt)

    - [`NumberOfPlacesOfDegreeOneECF(C, m): Crv[FldFin], RngIntElt → RngIntElt`](function_field.md#function-numberofplacesofdegreeoneecf-crv-fldfin-rngintelt)

    - [`NumberOfPlacesOfDegreeOneECFBound(C): Crv → RngIntElt`](function_field.md#function-numberofplacesofdegreeoneecfbound-crv)

    - [`NumberOfPlacesOfDegreeOneOverExactConstantFieldBound(C): Crv[FldFin] → RngIntElt`](function_field.md#function-numberofplacesofdegreeoneoverexactconstantfieldbound-crv-fldfin)

    - [`NumberOfPlacesOfDegreeOneECFBound(C, m): Crv[FldFin], RngIntElt → RngIntElt`](function_field.md#function-numberofplacesofdegreeoneecfbound-crv-fldfin-rngintelt)

    - [`NumberOfPlacesOfDegreeOneOverExactConstantFieldBound(C, m): Crv[FldFin], RngIntElt → RngIntElt`](function_field.md#function-numberofplacesofdegreeoneoverexactconstantfieldbound-crv-fldfin-rngintelt)

    - [`DivisorOfDegreeOne(C): Crv[FldFin] → DivCrvElt`](function_field.md#function-divisorofdegreeone-crv-fldfin)

    - [`SerreBound(C): Crv[FldFin] → RngIntElt`](function_field.md#function-serrebound-crv-fldfin)

    - [`SerreBound(C, m): Crv[FldFin], RngIntElt → RngIntElt`](function_field.md#function-serrebound-crv-fldfin-rngintelt)

    - [`IharaBound(C): Crv[FldFin] → RngIntElt`](function_field.md#function-iharabound-crv-fldfin)

    - [`IharaBound(C, m): Crv[FldFin], RngIntElt → RngIntElt`](function_field.md#function-iharabound-crv-fldfin-rngintelt)

  - [Zeta Functions of Curves](function_field.md#zeta-functions-of-curves)

    - [`LPolynomial(C): Crv[FldFin] → RngUPolElt`](function_field.md#function-lpolynomial-crv-fldfin)

    - [`LPolynomial(C, m): Crv[FldFin], RngIntElt → RngUPolElt`](function_field.md#function-lpolynomial-crv-fldfin-rngintelt)

    - [`ZetaFunction(C): Crv[FldFin] → FldFunRatUElt`](function_field.md#function-zetafunction-crv-fldfin)

    - [`ZetaFunction(C, m): Crv[FldFin], RngIntElt → FldFunRatUElt`](function_field.md#function-zetafunction-crv-fldfin-rngintelt)

    - [Tuitman’s Algorithm](function_field.md#tuitman-s-algorithm)

      - [`GonalityPreservingLift(C): Crv[FldFun] → RngUPolElt, AlgMatElt, AlgMatElt`](function_field.md#function-gonalitypreservinglift-crv-fldfun)

      - [`ZetaFunction(f, p): RngUPolElt, RngIntElt → FldFunRatUElt`](function_field.md#function-zetafunction-rngupolelt-rngintelt)

    - [Zeta Function of a Singular Curve](function_field.md#zeta-function-of-a-singular-curve)

      - [`ZetaFunctionOfCurveModel(C): Crv[FldFin] → FldFunRatUElt`](function_field.md#function-zetafunctionofcurvemodel-crv-fldfin)

      - [`Example: Crv Zfn Crv Mod`](function_field.md#example-ex-623718)

    - [Point Counts, Traces and the L-Polynomial](function_field.md#point-counts-traces-and-the-l-polynomial)

      - [`LPolynomialFromTracesOfFrobenius(t, q): SeqEnum[RngIntElt], RngIntElt → RngUPolElt`](function_field.md#function-lpolynomialfromtracesoffrobenius-seqenum-rngintelt-rngintelt)

      - [`LPolynomialFromNumbersOfPoints(n, q): SeqEnum[RngIntElt], RngIntElt → RngUPolElt`](function_field.md#function-lpolynomialfromnumbersofpoints-seqenum-rngintelt-rngintelt)

      - [`TracesOfFrobeniusFromLPolynomial(L): RngUPolElt → SeqEnum[RngIntElt], RngIntElt`](function_field.md#function-tracesoffrobeniusfromlpolynomial-rngupolelt)

      - [`NumbersOfPointsFromLPolynomial(L): RngUPolElt → SeqEnum[RngIntElt], RngIntElt`](function_field.md#function-numbersofpointsfromlpolynomial-rngupolelt)

      - [`Example: Crv Lpoly Convert`](function_field.md#example-ex-40a015)

  - [Representations of the Function Field](function_field.md#representations-of-the-function-field)

    - [`AlgorithmicFunctionField(F): FldFunFracSch → FldFun, Map`](function_field.md#function-algorithmicfunctionfield-fldfunfracsch)

    - [`FunctionFieldPlace(p): PlcCrvElt → PlcFunElt`](function_field.md#function-functionfieldplace-plccrvelt)

    - [`CurvePlace(C, p): Crv, PlcFunElt → PlcCrvElt`](function_field.md#function-curveplace-crv-plcfunelt)

    - [`FunctionFieldDivisor(d): DivCrvElt → DivFunElt`](function_field.md#function-divcrvelt-functionfielddivisor)

    - [`CurveDivisor(C, d): Crv, DivFunElt → DivCrvElt`](function_field.md#function-curvedivisor-crv-divfunelt)

    - [`FunctionFieldDifferential(d): DiffCrvElt → DiffFunElt`](function_field.md#function-functionfielddifferential-diffcrvelt)

    - [`CurveDifferential(C, d): Crv, DiffFunElt → DiffCrvElt`](function_field.md#function-curvedifferential-crv-difffunelt)

  - [Differentials](function_field.md#differentials)

    - [Creation of Differentials](function_field.md#creation-of-differentials)

      - [`DifferentialSpace(C): Crv → DiffCrv`](function_field.md#function-differentialspace-crv)

      - [`SpaceOfDifferentialsFirstKind(C): Crv → ModFld, Map`](function_field.md#function-spaceofdifferentialsfirstkind-crv)

      - [`SpaceOfHolomorphicDifferentials(C): Crv → ModFld, Map`](function_field.md#function-spaceofholomorphicdifferentials-crv)

      - [`BasisOfDifferentialsFirstKind(C): Crv → [DiffCrvElt]`](function_field.md#function-basisofdifferentialsfirstkind-crv)

      - [`BasisOfHolomorphicDifferentials(C): Crv → [DiffCrvElt]`](function_field.md#function-basisofholomorphicdifferentials-crv)

      - [`DifferentialSpace(D): DivCrvElt → ModFld, Map`](function_field.md#function-differentialspace-divcrvelt)

      - [`DifferentialBasis(D): DivCrvElt → [DiffCrvElt]`](function_field.md#function-differentialbasis-divcrvelt)

      - [`Differential(a): FldFunFracSchElt → DiffCrvElt`](function_field.md#function-differential-fldfunfracschelt)

    - [Operations on Differentials](function_field.md#operations-on-differentials)

      - [`Identity(S): DiffCrv → DiffCrvElt`](function_field.md#function-identity-diffcrv)

      - [`Curve(S): DiffCrv → Crv`](function_field.md#function-curve-diffcrv)

      - [`Curve(a): DiffCrvElt → Crv`](function_field.md#function-curve-diffcrvelt)

      - [`f * x: RngElt, DiffCrvElt → DiffCrvElt`](function_field.md#operation-op-times-rngelt-diffcrvelt)

      - [`x * f: DiffCrvElt, RngElt → DiffCrvElt`](function_field.md#operation-op-times-diffcrvelt-rngelt)

      - [`x + y: DiffCrvElt, DiffCrvElt → DiffCrvElt`](function_field.md#operation-op-plus-diffcrvelt-diffcrvelt)

      - [`- x: DiffCrvElt → DiffCrvElt`](function_field.md#operation-operation-diffcrvelt-diffcrvelt)

      - [`x - y: DiffCrvElt, DiffCrvElt → DiffCrvElt`](function_field.md#operation-op-minus-diffcrvelt-diffcrvelt)

      - [`x / r: DiffCrvElt, RngElt → DiffCrvElt`](function_field.md#operation-op-div-diffcrvelt-rngelt)

      - [`x / y: DiffCrvElt, DiffCrvElt → FldFunFracSchElt`](function_field.md#operation-op-div-diffcrvelt-diffcrvelt)

      - [`S eq T: DiffCrv, DiffCrv → BoolElt`](function_field.md#operation-op-eq-diffcrv-diffcrv)

      - [`a eq b: DiffCrvElt, DiffCrvElt → BoolElt`](function_field.md#operation-op-eq-diffcrvelt-diffcrvelt)

      - [`a in S: Any, DiffCrv → BoolElt`](function_field.md#operation-op-in-any-diffcrv)

      - [`IsExact(a): DiffCrvElt → BoolElt`](function_field.md#function-isexact-diffcrvelt)

      - [`IsZero(a): DiffCrvElt → BoolElt`](function_field.md#function-iszero-diffcrvelt)

      - [`Valuation(d, P): DiffCrvElt, PlcCrvElt → RngIntElt`](function_field.md#function-valuation-diffcrvelt-plccrvelt)

      - [`Residue(d, P): DiffCrvElt, PlcCrvElt → RngElt`](function_field.md#function-residue-diffcrvelt-plccrvelt)

      - [`Divisor(d): DiffCrvElt → DivCrvElt`](function_field.md#function-divisor-diffcrvelt)

      - [`Module(L): [DiffCrvElt] → Mod, Map, [ ModElt ]`](function_field.md#function-module-diffcrvelt)

      - [`Relations(L): [DiffCrvElt] → ModTupFld`](function_field.md#function-relations-diffcrvelt)

      - [`Relations(L, m): [DiffCrvElt], RngIntElt → ModTupFld`](function_field.md#function-relations-diffcrvelt-rngintelt)

      - [`Cartier(a): DiffCrvElt → DiffCrvElt`](function_field.md#function-cartier-diffcrvelt)

      - [`Cartier(a, r): DiffCrvElt, RngIntElt → DiffCrvElt`](function_field.md#function-cartier-diffcrvelt-rngintelt)

      - [`CartierRepresentation(C): Crv → AlgMatElt, SeqEnum[DiffCrvElt]`](function_field.md#function-cartierrepresentation-crv)

      - [`CartierRepresentation(C, r): Crv, RngIntElt → AlgMatElt, SeqEnum[DiffCrvElt]`](function_field.md#function-cartierrepresentation-crv-rngintelt)

      - [`Example: Curve Differentials`](function_field.md#example-ex-bb3bd8)

- [Divisors](divisors.md)

  - [Places](divisors.md#places)

    - [Sets of Places](divisors.md#sets-of-places)

      - [`Places(C): Crv → PlcCrv`](divisors.md#function-places-crv)

      - [`Curve(P): PlcCrv → Crv`](divisors.md#function-curve-plccrv)

      - [`P eq Q: PlcCrv, PlcCrv → BoolElt`](divisors.md#operation-op-eq-plccrv-plccrv)

      - [`P ne Q: PlcCrv, PlcCrv → BoolElt`](divisors.md#operation-op-ne-plccrv-plccrv)

    - [Places](divisors.md#id4)

      - [`Places(C, m): Crv[FldFin], RngIntElt → SeqEnum`](divisors.md#function-places-crv-fldfin-rngintelt)

      - [`HasPlace(C, m): Crv[FldFin], RngIntElt → BoolElt, PlcCrvElt`](divisors.md#function-hasplace-crv-fldfin-rngintelt)

      - [`RandomPlace(C, m): Crv[FldFin], RngIntElt → BoolElt, PlcCrvElt`](divisors.md#function-randomplace-crv-fldfin-rngintelt)

      - [`Place(p): Pt → PlcCrvElt`](divisors.md#function-place-pt)

      - [`Places(p): Pt → SeqEnum`](divisors.md#function-places-pt)

      - [`Place(C, I): Crv, RngMPol → PlcCrvElt`](divisors.md#function-place-crv-rngmpol)

      - [`WeierstrassPlaces(C): Crv → [PlcCrvElt]`](divisors.md#function-weierstrassplaces-crv)

      - [`Place(Q): [FldFunFracSchElt] → PlcCrvElt`](divisors.md#function-place-fldfunfracschelt)

      - [`Ideal(P): PlcCrvElt → RngMPol`](divisors.md#function-ideal-plccrvelt)

      - [`TwoGenerators(P): PlcCrvElt → FldFunFracSchElt, FldFunFracSchElt`](divisors.md#function-twogenerators-plccrvelt)

      - [`Example: Place Equations`](divisors.md#example-ex-52e224)

      - [`Zeros(f): FldFunFracSchElt[Crv] → SeqEnum[PlcCrvElt]`](divisors.md#function-zeros-fldfunfracschelt-crv)

      - [`Poles(f): FldFunFracSchElt[Crv] → SeqEnum[PlcCrvElt]`](divisors.md#function-poles-fldfunfracschelt-crv)

      - [`Zeros(C, f): Crv, RngElt → [PlcCrvElt]`](divisors.md#function-zeros-crv-rngelt)

      - [`Poles(C, f): Crv, RngElt → [PlcCrvElt]`](divisors.md#function-poles-crv-rngelt)

      - [`CommonZeros(L): [FldFunFracSchElt[Crv]] → [PlcCrvElt]`](divisors.md#function-commonzeros-fldfunfracschelt-crv)

      - [`CommonZeros(C, L): Crv, [FldFunFracSchElt] → [PlcCrvElt]`](divisors.md#function-commonzeros-crv-fldfunfracschelt)

      - [`Example: Zeros And Poles`](divisors.md#example-ex-8f7c99)

      - [`p1 + p2: PlcCrvElt, PlcCrvElt → DivCrvElt`](divisors.md#operation-op-plus-plccrvelt-plccrvelt)

      - [`- p1: PlcCrvElt → DivCrvElt`](divisors.md#operation-operation-plccrvelt-divcrvelt)

      - [`p1 - p2: PlcCrvElt, PlcCrvElt → DivCrvElt`](divisors.md#operation-op-minus-plccrvelt-plccrvelt)

      - [`k * p: RngIntElt, PlcCrvElt → DivCrvElt`](divisors.md#operation-op-times-rngintelt-plccrvelt)

      - [`p div k: PlcCrvElt, RngIntElt → DivCrvElt`](divisors.md#operation-operation-div-plccrvelt-rngintelt-divcrvelt)

      - [`p mod k: PlcCrvElt, RngIntElt → DivCrvElt`](divisors.md#operation-operation-mod-plccrvelt-rngintelt-divcrvelt)

      - [`Quotrem(p1, k): PlcCrvElt, RngIntElt → DivCrvElt, DivCrvElt`](divisors.md#function-quotrem-plccrvelt-rngintelt)

      - [`Curve(P): PlcCrvElt → Crv`](divisors.md#function-curve-plccrvelt)

      - [`RepresentativePoint(P): PlcCrv → Pt`](divisors.md#function-representativepoint-plccrv)

      - [`P eq Q: PlcCrvElt, PlcCrvElt → BoolElt`](divisors.md#operation-op-eq-plccrvelt-plccrvelt)

      - [`P ne Q: PlcCrvElt, PlcCrvElt → BoolElt`](divisors.md#operation-op-ne-plccrvelt-plccrvelt)

      - [`P in S: Any, PlcCrv → BoolElt`](divisors.md#operation-op-in-any-plccrv)

      - [`P notin S: Any, PlcCrv → BoolElt`](divisors.md#operation-op-notin-any-plccrv)

      - [`Valuation(f, P): RngElt, PlcCrvElt → RngIntElt`](divisors.md#function-valuation-rngelt-plccrvelt)

      - [`Valuation(P): PlcCrvElt → Map`](divisors.md#function-valuation-plccrvelt)

      - [`Valuation(a, P): DiffCrvElt, PlcCrvElt → RngIntElt`](divisors.md#function-valuation-diffcrvelt-plccrvelt-2)

      - [`Residue(a, P): DiffCrvElt, PlcCrvElt → RngElt`](divisors.md#function-residue-diffcrvelt-plccrvelt-2)

      - [`UniformizingParameter(P): PlcCrvElt → FldFunFracSchElt`](divisors.md#function-uniformizingparameter-plccrvelt)

      - [`IsWeierstrassPlace(P): PlcCrvElt → BoolElt`](divisors.md#function-isweierstrassplace-plccrvelt)

      - [`IsWeierstrassPlace(D, P): DivCrvElt, PlcCrvElt → BoolElt`](divisors.md#function-isweierstrassplace-divcrvelt-plccrvelt)

      - [`ResidueClassField(P): PlcCrvElt → Rng`](divisors.md#function-residueclassfield-plccrvelt)

      - [`Evaluate(a, P): FldFunFracSchElt, PlcCrvElt → RngElt`](divisors.md#function-evaluate-fldfunfracschelt-plccrvelt)

      - [`Lift(a, P): RngElt, PlcCrvElt → FldFunFracSchElt`](divisors.md#function-lift-rngelt-plccrvelt)

      - [`Lift(i, P): Infty, PlcCrvElt → FldFunFracSchElt`](divisors.md#function-lift-infty-plccrvelt)

      - [`Degree(P): PlcCrvElt → RngIntElt`](divisors.md#function-degree-plccrvelt)

      - [`GapNumbers(C, P): Crv, PlcCrvElt → [RngIntElt]`](divisors.md#function-gapnumbers-crv-plccrvelt)

      - [`GapNumbers(P): PlcCrvElt → [RngIntElt]`](divisors.md#function-gapnumbers-plccrvelt)

      - [`Parametrization(C, p): Crv, Pt → MapSch`](divisors.md#function-parametrization-crv-pt)

      - [`Parametrization(C, p): Crv, PlcCrvElt → MapSch`](divisors.md#function-parametrization-crv-plccrvelt)

      - [`Parametrization(C, p, P): Crv, PlcCrvElt, Crv → MapSch`](divisors.md#function-parametrization-crv-plccrvelt-crv)

  - [Divisor Group](divisors.md#divisor-group)

    - [`DivisorGroup(C): Crv → DivCrv`](divisors.md#function-divisorgroup-crv)

    - [`Curve(Div): DivCrv → Crv`](divisors.md#function-curve-divcrv)

    - [`Div1 eq Div2: DivCrv, DivCrv → BoolElt`](divisors.md#operation-op-eq-divcrv-divcrv)

    - [`Div1 ne Div2: DivCrv, DivCrv → BoolElt`](divisors.md#operation-op-ne-divcrv-divcrv)

  - [Creation of Divisors](divisors.md#creation-of-divisors)

    - [`DivisorGroup(D): DivCrvElt → DivCrv`](divisors.md#function-divisorgroup-divcrvelt)

    - [`Curve(D): DivCrvElt → Crv`](divisors.md#function-curve-divcrvelt)

    - [`Identity(D): DivCrv → DivCrvElt`](divisors.md#function-identity-divcrv)

    - [`Id(D): DivCrv → DivCrvElt`](divisors.md#function-id-divcrv)

    - [`D ! 0: DivCrv, RngIntElt → DivCrvElt`](divisors.md#operation-op-divcrv-rngintelt)

    - [`Div ! p: DivCrv, PlcCrvElt → DivCrvElt`](divisors.md#operation-op-divcrv-plccrvelt)

    - [`Div ! p: DivCrv, Pt → DivCrvElt`](divisors.md#operation-op-divcrv-pt)

    - [`Divisor(p): PlcCrvElt → DivCrvElt`](divisors.md#function-divisor-plccrvelt)

    - [`Divisor(p): Pt → DivCrvElt`](divisors.md#function-divisor-pt)

    - [`Divisor(D, S): DivCrv, SeqEnum → DivCrvElt`](divisors.md#function-divisor-divcrv-seqenum)

    - [`Divisor(C, S): Crv, SeqEnum → DivCrvElt`](divisors.md#function-divisor-crv-seqenum)

    - [`Divisor(S): [<PlcCrvElt, RngIntElt>] → DivCrvElt`](divisors.md#function-divisor-plccrvelt-rngintelt)

    - [`Example: Divisor Equations`](divisors.md#example-ex-5ce339)

    - [`PrincipalDivisor(C, f): Crv, RngElt → DivCrvElt`](divisors.md#function-principaldivisor-crv-rngelt)

    - [`PrincipalDivisor(D, f): DivCrv, RngElt → DivCrvElt`](divisors.md#function-principaldivisor-divcrv-rngelt)

    - [`PrincipalDivisor(f): FldFunFracSchElt[Crv] → DivCrvElt`](divisors.md#function-principaldivisor-fldfunfracschelt-crv)

    - [`Divisor(C, f): Crv, RngElt → DivCrvElt`](divisors.md#function-divisor-crv-rngelt)

    - [`Divisor(D, f): DivCrv, RngElt → DivCrvElt`](divisors.md#function-divisor-divcrv-rngelt)

    - [`Divisor(f): FldFunFracSchElt[Crv] → DivCrvElt`](divisors.md#function-divisor-fldfunfracschelt-crv)

    - [`Divisor(a): DiffCrvElt → DivCrvElt`](divisors.md#function-divisor-diffcrvelt-2)

    - [`Divisor(C, X): Crv, Sch → DivCrvElt`](divisors.md#function-divisor-crv-sch)

    - [`Divisor(D, X): DivCrv, Sch → DivCrvElt`](divisors.md#function-divisor-divcrv-sch)

    - [`Divisor(C, p, q): Crv, Pt, Pt → DivCrvElt`](divisors.md#function-divisor-crv-pt-pt)

    - [`Divisor(D, p, q): DivCrv, Pt, Pt → DivCrvElt`](divisors.md#function-divisor-divcrv-pt-pt)

    - [`Divisor(C, I): Crv, RngMPol → DivCrvElt`](divisors.md#function-divisor-crv-rngmpol)

    - [`Divisor(D, I): DivCrv, RngMPol → DivCrvElt`](divisors.md#function-divisor-divcrv-rngmpol)

    - [`Decomposition(D): DivCrvElt → SeqEnum`](divisors.md#function-decomposition-divcrvelt)

    - [`Support(D): DivCrvElt → SeqEnum, SeqEnum`](divisors.md#function-support-divcrvelt)

    - [`Example: divisor1`](divisors.md#example-ex-68cd9e)

    - [`CanonicalDivisor(C): Crv → DivCrvElt`](divisors.md#function-canonicaldivisor-crv)

    - [`RamificationDivisor(C): Crv → DivCrvElt`](divisors.md#function-ramificationdivisor-crv)

  - [Arithmetic of Divisors](divisors.md#arithmetic-of-divisors)

    - [`D + E: DivCrvElt, DivCrvElt → DivCrvElt`](divisors.md#operation-op-plus-divcrvelt-divcrvelt)

    - [`D + E: DivCrvElt, PlcCrvElt → DivCrvElt`](divisors.md#operation-op-plus-divcrvelt-plccrvelt)

    - [`D + E: PlcCrvElt, DivCrvElt → DivCrvElt`](divisors.md#operation-op-plus-plccrvelt-divcrvelt)

    - [`D + E: PlcCrvElt, PlcCrvElt → DivCrvElt`](divisors.md#operation-op-plus-plccrvelt-plccrvelt-2)

    - [`- D: DivCrvElt → DivCrvElt`](divisors.md#operation-operation-divcrvelt-divcrvelt)

    - [`- D: PlcCrvElt → DivCrvElt`](divisors.md#operation-operation-plccrvelt-divcrvelt-2)

    - [`D - E: DivCrvElt, DivCrvElt → DivCrvElt`](divisors.md#operation-op-minus-divcrvelt-divcrvelt)

    - [`D - E: DivCrvElt, PlcCrvElt → DivCrvElt`](divisors.md#operation-op-minus-divcrvelt-plccrvelt)

    - [`D - E: PlcCrvElt, DivCrvElt → DivCrvElt`](divisors.md#operation-op-minus-plccrvelt-divcrvelt)

    - [`D - E: PlcCrvElt, PlcCrvElt → DivCrvElt`](divisors.md#operation-op-minus-plccrvelt-plccrvelt-2)

    - [`n * D: RngIntElt, DivCrvElt → DivCrvElt`](divisors.md#operation-op-times-rngintelt-divcrvelt)

    - [`n * D: RngIntElt, PlcCrvElt → DivCrvElt`](divisors.md#operation-op-times-rngintelt-plccrvelt-2)

    - [`D div n: DivCrvElt, RngIntElt → DivCrvElt`](divisors.md#operation-operation-div-divcrvelt-rngintelt-divcrvelt)

    - [`D div n: PlcCrvElt, RngIntElt → DivCrvElt`](divisors.md#operation-operation-div-plccrvelt-rngintelt-divcrvelt-2)

    - [`D mod n: DivCrvElt, RngIntElt → DivCrvElt`](divisors.md#operation-operation-mod-divcrvelt-rngintelt-divcrvelt)

    - [`D mod n: PlcCrvElt, RngIntElt → DivCrvElt`](divisors.md#operation-operation-mod-plccrvelt-rngintelt-divcrvelt-2)

    - [`Quotrem(D, n): DivCrvElt, RngIntElt → DivCrvElt, DivCrvElt`](divisors.md#function-quotrem-divcrvelt-rngintelt)

    - [`Degree(D): DivCrvElt → RngIntElt`](divisors.md#function-degree-divcrvelt)

    - [`IsEffective(D): DivCrvElt → BoolElt`](divisors.md#function-iseffective-divcrvelt)

    - [`IsPositive(D): DivCrvElt → BoolElt`](divisors.md#function-ispositive-divcrvelt)

    - [`Numerator(D): DivCrvElt → DivCrvElt`](divisors.md#function-numerator-divcrvelt)

    - [`Denominator(D): DivCrvElt → DivCrvElt`](divisors.md#function-denominator-divcrvelt)

    - [`SignDecomposition(D): DivCrvElt → DivElt, DivElt`](divisors.md#function-signdecomposition-divcrvelt)

    - [`Example: divisor2`](divisors.md#example-ex-768c79)

    - [`d in D: Any, DivCrv → BoolElt`](divisors.md#operation-op-in-any-divcrv)

    - [`d notin D: Any, DivCrv → BoolElt`](divisors.md#operation-op-notin-any-divcrv)

    - [`D eq E: DivCrvElt, DivCrvElt → BoolElt`](divisors.md#operation-op-eq-divcrvelt-divcrvelt)

    - [`D ne E: DivCrvElt, DivCrvElt → BoolElt`](divisors.md#operation-op-ne-divcrvelt-divcrvelt)

    - [`D lt E: DivCrvElt, DivCrvElt → BoolElt`](divisors.md#operation-op-lt-divcrvelt-divcrvelt)

    - [`D le E: DivCrvElt, DivCrvElt → BoolElt`](divisors.md#operation-op-le-divcrvelt-divcrvelt)

    - [`D gt E: DivCrvElt, DivCrvElt → BoolElt`](divisors.md#operation-op-gt-divcrvelt-divcrvelt)

    - [`D ge E: DivCrvElt, DivCrvElt → BoolElt`](divisors.md#operation-op-ge-divcrvelt-divcrvelt)

    - [`AreLinearlyEquivalent(D,E): DivCrvElt, DivCrvElt → BoolElt`](divisors.md#function-arelinearlyequivalent-divcrvelt-divcrvelt)

    - [`IsZero(D): DivCrvElt → BoolElt`](divisors.md#function-iszero-divcrvelt)

    - [`IsCanonical(D): DivCrvElt → BoolElt, DiffCrvElt`](divisors.md#function-iscanonical-divcrvelt)

    - [`GCD(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt`](divisors.md#function-gcd-divcrvelt-divcrvelt)

    - [`Gcd(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt`](divisors.md#function-gcd-divcrvelt-divcrvelt-2)

    - [`GreatestCommonDivisor(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt`](divisors.md#function-greatestcommondivisor-divcrvelt-divcrvelt)

    - [`LCM(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt`](divisors.md#function-lcm-divcrvelt-divcrvelt)

    - [`Lcm(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt`](divisors.md#function-lcm-divcrvelt-divcrvelt-2)

    - [`LeastCommonMultiple(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt`](divisors.md#function-leastcommonmultiple-divcrvelt-divcrvelt)

    - [`Example: Canonical Divisor`](divisors.md#example-ex-235268)

  - [Other Operations on Divisors](divisors.md#other-operations-on-divisors)

    - [`Ideal(D): DivCrvElt → RngMPol`](divisors.md#function-ideal-divcrvelt)

    - [`Cluster(D): DivCrvElt → Clstr`](divisors.md#function-cluster-divcrvelt)

    - [`Valuation(D,p): DivCrvElt, Pt → DivCrvElt`](divisors.md#function-valuation-divcrvelt-pt)

    - [`Valuation(D,P): DivCrvElt, PlcCrvElt → DivCrvElt`](divisors.md#function-valuation-divcrvelt-plccrvelt)

    - [`ComplementaryDivisor(D,p): DivCrvElt, Pt → DivCrvElt`](divisors.md#function-complementarydivisor-divcrvelt-pt)

    - [`ComplementaryDivisor(D,P): DivCrvElt, PlcCrvElt → DivCrvElt`](divisors.md#function-complementarydivisor-divcrvelt-plccrvelt)

- [Linear Equivalence of Divisors](linear-equivalence.md)

  - [Linear Equivalence and Class Group](linear-equivalence.md#linear-equivalence-and-class-group)

    - [`IsPrincipal(D): DivCrvElt → BoolElt, FldFunFracSchElt`](linear-equivalence.md#function-isprincipal-divcrvelt)

    - [`IsLinearlyEquivalent(D1,D2): DivCrvElt, DivCrvElt → BoolElt`](linear-equivalence.md#function-islinearlyequivalent-divcrvelt-divcrvelt)

    - [`IsHypersurfaceDivisor(D): DivCrvElt → BoolElt, RngElt, RngIntElt`](linear-equivalence.md#function-ishypersurfacedivisor-divcrvelt)

    - [`Example: Is Hyper Surface Divisor Example`](linear-equivalence.md#example-ex-819631)

    - [`ClassGroup(C): Crv[FldFin] → GrpAb, Map, Map`](linear-equivalence.md#function-classgroup-crv-fldfin)

    - [`ClassNumber(C): Crv[FldFin] → RngIntElt`](linear-equivalence.md#function-classnumber-crv-fldfin)

    - [`GlobalUnitGroup(C): Crv[FldFin] → GrpAb, Map`](linear-equivalence.md#function-globalunitgroup-crv-fldfin)

    - [`Example: Divisor Class Group Example`](linear-equivalence.md#example-ex-f90495)

    - [`ClassGroupAbelianInvariants(C): Crv[FldFin] → [RngIntElt]`](linear-equivalence.md#function-classgroupabelianinvariants-crv-fldfin)

    - [`ClassGroupPRank(C): Crv[FldFin] → RngIntElt`](linear-equivalence.md#function-classgroupprank-crv-fldfin)

    - [`HasseWittInvariant(C): Crv[FldFin] → RngIntElt`](linear-equivalence.md#function-hassewittinvariant-crv-fldfin)

  - [Riemann–Roch Spaces](linear-equivalence.md#riemann-roch-spaces)

    - [`Reduction(D): DivCrvElt → DivCrvElt, RngIntElt, DivCrvElt, FldFunFracSchElt`](linear-equivalence.md#function-reduction-divcrvelt)

    - [`Reduction(D, A): DivCrvElt, DivCrvElt → DivCrvElt, RngIntElt, DivCrvElt, FldFunFracSchElt`](linear-equivalence.md#function-reduction-divcrvelt-divcrvelt)

    - [`RiemannRochSpace(D): DivCrvElt → ModFld, Map`](linear-equivalence.md#function-riemannrochspace-divcrvelt)

    - [`Basis(D): DivCrvElt → SeqEnum`](linear-equivalence.md#function-basis-divcrvelt)

    - [`ShortBasis(D): DivCrvElt → SeqEnum`](linear-equivalence.md#function-shortbasis-divcrvelt)

    - [`Dimension(D): DivCrvElt → RngIntElt`](linear-equivalence.md#function-dimension-divcrvelt)

    - [`DifferentialSpace(D): DivCrvElt → ModFld, Map`](linear-equivalence.md#function-differentialspace-divcrvelt-2)

    - [`DifferentialBasis(D): DivCrvElt → SeqEnum`](linear-equivalence.md#function-differentialbasis-divcrvelt-2)

    - [`IndexOfSpeciality(D): DivCrvElt → RngIntElt`](linear-equivalence.md#function-indexofspeciality-divcrvelt)

    - [`IsSpecial(D): DivCrvElt → BoolElt`](linear-equivalence.md#function-isspecial-divcrvelt)

    - [`GapNumbers(D): DivCrvElt → SeqEnum`](linear-equivalence.md#function-gapnumbers-divcrvelt)

    - [`GapNumbers(D,p): DivCrvElt, PlcCrvElt → SeqEnum`](linear-equivalence.md#function-gapnumbers-divcrvelt-plccrvelt)

    - [`GapNumbers(p): Pt → SeqEnum`](linear-equivalence.md#function-gapnumbers-pt)

    - [`WeierstrassPlaces(D): DivCrvElt → SeqEnum`](linear-equivalence.md#function-weierstrassplaces-divcrvelt)

    - [`WeierstrassPoints(D): DivCrvElt → SeqEnum`](linear-equivalence.md#function-weierstrasspoints-divcrvelt)

    - [`WronskianOrders(D): DivCrvElt → SeqEnum`](linear-equivalence.md#function-wronskianorders-divcrvelt)

    - [`RamificationDivisor(D): DivCrvElt → DivCrvElt`](linear-equivalence.md#function-ramificationdivisor-divcrvelt)

    - [`DivisorMap(D): DivCrvElt → MapSch`](linear-equivalence.md#function-divisormap-divcrvelt)

    - [`DivisorMap(D,P): DivCrvElt, Prj → MapSch`](linear-equivalence.md#function-divisormap-divcrvelt-prj)

    - [`CanonicalMap(C): Crv → MapSch`](linear-equivalence.md#function-canonicalmap-crv)

    - [`CanonicalMap(C,P): Crv, Prj → MapSch`](linear-equivalence.md#function-canonicalmap-crv-prj)

    - [`CanonicalImage(C, phi): Crv, MapSch → Crv, BoolElt`](linear-equivalence.md#function-canonicalimage-crv-mapsch)

    - [`CanonicalImage(C, eqns): Crv, SeqEnum → Crv, BoolElt`](linear-equivalence.md#function-canonicalimage-crv-seqenum)

    - [`Example: Canonical Map`](linear-equivalence.md#example-ex-6c8d01)

  - [Index Calculus](linear-equivalence.md#index-calculus)

    - [`IndexCalculus(D1, D2, D0, np): DivCrvElt, DivCrvElt, DivCrvElt, RngIntElt → RngIntElt`](linear-equivalence.md#function-indexcalculus-divcrvelt-divcrvelt-divcrvelt-rngintelt)

    - [`IndexCalculus(D1, D2, D0, np, n, rr): DivCrvElt, DivCrvElt, DivCrvElt, RngIntElt, RngIntElt, RngIntElt → RngIntElt`](linear-equivalence.md#function-indexcalculus-divcrvelt-divcrvelt-divcrvelt-rngintelt-rngintelt-rngintelt)

    - [`IndexCalculusMatrix({D1, D2, D0, }{n, rr}): DivCrvElt, DivCrvElt, DivCrvElt, RngIntElt, RngIntElt → MtrxSprs, SeqEnum, SeqEnum, DivCrvElt, DivCrvElt, RngIntElt, RngIntElt`](linear-equivalence.md#function-indexcalculusmatrix-divcrvelt-divcrvelt-divcrvelt-rngintelt-rngintelt)

    - [`MultiplyDivisor(n, D , D0): RngIntElt, DivCrvElt, DivCrvElt → DivCrvElt`](linear-equivalence.md#function-multiplydivisor-rngintelt-divcrvelt-divcrvelt)

    - [`Example: indexcalculus`](linear-equivalence.md#example-ex-f3220c)

- [Advanced Examples](examples2.md)

  - [Trigonal Curves](examples2.md#trigonal-curves)

    - [`Example: Trigonal Curve`](examples2.md#example-ex-3b68a5)

  - [Algebraic Geometric Codes](examples2.md#algebraic-geometric-codes)

    - [`Example: Klein Quartic Code`](examples2.md#example-ex-d59801)

- [Curves over Global Fields](arith.md)

  - [Finding Rational Points](arith.md#finding-rational-points)

    - [`PointsCubicModel(C, B : parameters): Crv, RngIntElt → SeqEnum`](arith.md#function-pointscubicmodel-crv-rngintelt)

    - [`Example: Points Cubic Model`](arith.md#example-ex-5a2291)

  - [Regular Models of Arithmetic Surfaces](arith.md#regular-models-of-arithmetic-surfaces)

    - [Creation of Regular Models](arith.md#creation-of-regular-models)

      - [`RegularModel(C, P): Crv, Any → CrvRegModel`](arith.md#function-regularmodel-crv-any)

    - [Using Regular Models](arith.md#using-regular-models)

      - [`IntersectionMatrix(M): CrvRegModel → Mtrx`](arith.md#function-intersectionmatrix-crvregmodel)

      - [`Multiplicities(M): CrvRegModel → SeqEnum`](arith.md#function-multiplicities-crvregmodel)

      - [`ComponentGroup(M): CrvRegModel → GrpAb`](arith.md#function-componentgroup-crvregmodel)

      - [`PointOnRegularModel(M, x): CrvRegModel, Pt → SeqEnum, SeqEnum, Tup`](arith.md#function-pointonregularmodel-crvregmodel-pt)

  - [Minimization and Reduction for Plane Curves](arith.md#minimization-and-reduction-for-plane-curves)

    - [`MinRedTernaryForm(F): RngMPolElt → RngMPolElt, AlgMatElt, FldRatElt`](arith.md#function-minredternaryform-rngmpolelt)

    - [`MinimizeReduce(C): CrvPln → CrvPln, AlgMatElt`](arith.md#function-minimizereduce-crvpln)

    - [Minimization for Plane Curves](arith.md#minimization-for-plane-curves)

      - [`MinimizeTernaryFormAtp(F,p): RngMPolElt, RngIntElt → RngMPolElt, AlgMatElt, RngIntElt`](arith.md#function-minimizeternaryformatp-rngmpolelt-rngintelt)

      - [`MinimizeTernaryForm(F): RngMPolElt → RngMPolElt, AlgMatElt, RngIntElt`](arith.md#function-minimizeternaryform-rngmpolelt)

    - [Reduction for Plane Curves](arith.md#reduction-for-plane-curves)

      - [`ReducePlaneCurve(C): Crv → Crv, Mtrx`](arith.md#function-reduceplanecurve-crv)

      - [`ReducePlaneCurve(f): MPolElt → RngMPolElt, Mtrx`](arith.md#function-reduceplanecurve-mpolelt)

      - [`ReduceTernaryForm(f): MPolElt → RngMPolElt, Mtrx`](arith.md#function-reduceternaryform-mpolelt)

    - [Reduction of Point Clusters](arith.md#reduction-of-point-clusters)

      - [`ReduceCluster(X): SeqEnum → SeqEnum, Mtrx, Mtrx`](arith.md#function-reducecluster-seqenum)

      - [`ReduceCluster(C): Clstr → Clstr, Mtrx, Bool`](arith.md#function-reducecluster-clstr)

      - [`Example: minredplanequartic`](arith.md#example-ex-77ecd8)

- [Minimal Degree Functions and Plane Models](arith-2.md)

  - [General Functions and Clifford Index One](arith-2.md#general-functions-and-clifford-index-one)

    - [`GenusAndCanonicalMap(C): Crv → RngIntElt, BoolElt, MapSch`](arith-2.md#function-genusandcanonicalmap-crv)

    - [`CliffordIndexOne(C): Crv → MapSch`](arith-2.md#function-cliffordindexone-crv)

    - [`CliffordIndexOne(C,X): Crv, Sch → MapSch`](arith-2.md#function-cliffordindexone-crv-sch)

    - [`Example: Gon Gen Ex`](arith-2.md#example-ex-b24415)

  - [Small Genus Functions](arith-2.md#small-genus-functions)

    - [`Genus2GonalMap(C): Crv → MapSch`](arith-2.md#function-genus2gonalmap-crv)

    - [`Genus3GonalMap(C): Crv → RngIntElt, MapSch`](arith-2.md#function-genus3gonalmap-crv)

    - [`Genus4GonalMap(C): Crv → RngIntElt, MapSch`](arith-2.md#function-genus4gonalmap-crv)

    - [`Genus5GonalMap(C): Crv → RngIntElt, MapSch, Crv, UserProgram`](arith-2.md#function-genus5gonalmap-crv)

    - [`Genus6GonalMap(C): Crv → RngIntElt, RngIntElt, MapSch, MapSch`](arith-2.md#function-genus6gonalmap-crv)

    - [`Example: Gon Sm Gen Ex`](arith-2.md#example-ex-431e07)

  - [Small Genus Plane Models](arith-2.md#small-genus-plane-models)

    - [`Genus6PlaneCurveModel(C): Crv → BoolElt, MapSch`](arith-2.md#function-genus6planecurvemodel-crv)

    - [`Genus5PlaneCurveModel(C): Crv → BoolElt, MapSch`](arith-2.md#function-genus5planecurvemodel-crv)

    - [`Genus5PlaneCurveModel(C,P): Crv, Pt → BoolElt, MapSch`](arith-2.md#function-genus5planecurvemodel-crv-pt)

    - [`Genus5PlaneCurveModel(C,Z): Crv, Sch → BoolElt, MapSch`](arith-2.md#function-genus5planecurvemodel-crv-sch)

    - [`Example: Gon Pln Mod Ex`](arith-2.md#example-ex-df6704)
