Algebraic Curves
- First Examples
- Ambient Spaces
AffineSpace(k,n): Rng, RngIntElt → Aff
AffinePlane(k): Rng → Aff
ProjectiveSpace(k,n): Rng, RngIntElt → Prj
ProjectivePlane(k): Rng → Prj
DirectProduct(A,B): Prj, Prj → PrjProd, SeqEnum
RuledSurface(k,n): Rng, RngIntElt → PrjScrl
RuledSurface(k,a,b): Rng, RngIntElt, RngIntElt → PrjScrl
CoordinateRing(A): Sch → RngMPol
FunctionField(A): Aff → FldFunFracSch
FunctionField(A): Prj → FldFunFracSch
A ! [a,...]: Sch, [RngElt] → Pt
A(L) ! [a,...]: SetPt, [RngElt] → Pt
Origin(A): Aff → Pt
Coordinates(p): Pt → SeqEnum
p[i]: Pt, RngIntElt → RngElt
Example: Plane Points
- Algebraic Curves
- Creation
Curve(A,f): Sch, RngMPolElt → CrvPln
Curve(A,I): Sch, RngMPol → Crv
Curve(X,S): Sch, SeqEnum → Crv
IsCurve(X): Sch → BoolElt, Crv
Curve(X): Sch → Crv
Line(C,p,q): CrvPln, Pt, Pt → CrvPln
Line(P,S): Prj, \{Pt\} → Sch
Conic(P,S): Prj, \{Pt\} → Crv
Union(C,D): Sch, Sch → Sch
- Base Change
BaseChange(C, K): Sch, Rng → Sch
BaseChange(C, m): Sch, Map → Sch
BaseChange(C, A): Sch, Sch → Sch
BaseChange(C, A, m): Sch, Sch, Map → Sch
BaseChange(C, n): Sch, RngIntElt → Sch
Example: Curve Base Change
- Basic Attributes
- Basic Invariants
- Random Curves
RandomNodalCurve(d, g, P): RngIntElt, RngIntElt, Prj → CrvPln
IsNodalCurve(C): Crv → BoolElt
RandomOrdinaryPlaneCurve(d, S, P): RngIntElt, SeqEnum, Prj → CrvPln, RngMPol
RandomCurveByGenus(g, K): RngIntElt, Fld → Crv
Example: Random Curves
- Ordinary Plane Curves
HasOnlyOrdinarySingularities(C): CrvPln → BoolElt, RngIntElt, RngMPol
HasOnlyOrdinarySingularitiesMonteCarlo(C): CrvPln → BoolElt, RngIntElt
AdjointIdeal(C): Crv → RngMPol
AdjointIdealForNodalCurve(C): Crv → RngMPol
AdjointLinearSystemForNodalCurve(C, d): Crv, RngIntElt → LinearSys
AdjointLinearSystemFromIdeal(I, d): RngMPol, RngIntElt → LinearSys
CanonicalLinearSystemFromIdeal(I, d): RngMPol, RngIntElt → LinearSys
CanonicalLinearSystem(C): Crv → LinearSys
AdjointLinearSystem(C): Crv → LinearSys
Adjoints(C,d): Crv, RngIntElt → LinearSys
Example: Ordinary Curves
- Local Geometry
- Creation of Points on Curves
- Operations at a Point
p in C: Pt, Sch → BoolElt
S in C: SeqEnum, Sch → BoolElt
IsNonsingular(p): Pt → BoolElt
IsNonsingular(C, p): Sch, Pt → BoolElt
IsSingular(p): Pt → BoolElt
IsSingular(C, p): Sch, Pt → BoolElt
IsInflectionPoint(p): Pt → BoolElt, RngIntElt
IsInflectionPoint(C, p): Sch, Pt → BoolElt, RngIntElt
IsFlex(C, p): Sch, Pt → BoolElt, RngIntElt
IsFlex(p): Pt → BoolElt, RngIntElt
TangentLine(p): Pt → Crv
TangentLine(C, p): Crv, Pt → Crv
TangentCone(p): Pt → Sch
TangentCone(C, p): Sch, Pt → Sch
IsTangent(C, D, p): Sch, Sch, Pt → BoolElt
- Singularity Analysis
Multiplicity(p): Pt → RngIntElt
Multiplicity(C, p): Sch, Pt → RngIntElt
IsDoublePoint(p): Pt → BoolElt
IsDoublePoint(C, p): Crv, Pt → BoolElt
IsOrdinarySingularity(p): Pt → BoolElt
IsOrdinarySingularity(C, p): Sch, Pt → BoolElt
IsNode(p): Pt → BoolElt
IsNode(C, p): Sch, Pt → BoolElt
IsCusp(p): Pt → BoolElt
IsCusp(C, p): Crv, Pt → BoolElt
IsAnalyticallyIrreducible(p): Pt → BoolElt
IsAnalyticallyIrreducible(C, p): CrvPln, Pt → BoolElt
DeltaAdjustment(C, p): Sch, Pt → RngIntElt
Example: Curve Iscusp
- Resolution of Singularities
- Log Canonical Thresholds
- Local Intersection Theory
IsIntersection(C,D,p): Sch, Sch, Pt → BoolElt
IsTransverse(C,D,p): Sch, Sch, Pt → BoolElt
IntersectionNumber(C,D,p): Sch, Sch, Pt → RngIntElt
IntersectionNumbers(C,D): CrvPln, CrvPln → List
IntersectionNumbers(F,G): RngMPolElt, RngMPolElt → List
Example: Local Intersection Example
Example: Crv:int Nmbrs
- Global Geometry
- Genus and Singularities
- Projective Closure and Affine Patches
- Special Forms of Curves
IsEllipticWeierstrass(C): Crv → BoolElt
IsHyperellipticWeierstrass(C): Crv → BoolElt
EllipticCurve(C): Crv → CrvEll, MapSch
EllipticCurve(C,p): Crv, Pt → CrvEll, MapSch
EllipticCurve(C,p): Crv, PlcCrvElt → CrvEll, MapSch
IsHyperelliptic(C): Crv → BoolElt, CrvHyp, MapSch
IsGeometricallyHyperelliptic(C): Crv → BoolElt, Crv, MapSch
Example: Is Hyperelliptic
- Maps and Curves
- Elementary Maps
- Maps Induced by Morphisms
Degree(m): MapSch → RngIntElt
RamificationDivisor(m): MapSch → DivCrvElt
Pullback(phi, X): MapSch, FldFunFracSchElt → FldFunFracSchElt
Pullback(phi, X): MapSch, DiffCrvElt → DiffCrvElt
Pullback(phi, X): MapSch, DivCrvElt → DivCrvElt
Pullback(phi, X): MapSch, PlcCrvElt → DivCrvElt
Pushforward(phi, X): MapSch, FldFunFracSchElt → FldFunFracSchElt
Pushforward(phi, X): MapSch, PlcCrvElt → DivCrvElt
Pushforward(phi, X): MapSch, DivCrvElt → DivCrvElt
Example: Map Push Pull
- Automorphism Groups of Curves
- Group Creation Functions
- Automorphisms
- Automorphism Group Operations
- Pullbacks and Pushforwards
f(X): GrpAutCrvElt, Pt → Pt
f(X): GrpAutCrvElt, FldFunFracSchElt → FldFunFracSchElt
f(X): GrpAutCrvElt, PlcCrvElt → PlcCrvElt
f(X): GrpAutCrvElt, DivCrvElt → DivCrvElt
f(X): GrpAutCrvElt, DiffCrvElt → DiffCrvElt
X @ f: Pt, GrpAutCrvElt → Pt
X @ f: FldFunFracSchElt, GrpAutCrvElt → FldFunFracSchElt
X @ f: PlcCrvElt, GrpAutCrvElt → PlcCrvElt
X @ f: DivCrvElt, GrpAutCrvElt → DivCrvElt
X @ f: DiffCrvElt, GrpAutCrvElt → DiffCrvElt
X @@ f: FldFunFracSchElt, GrpAutCrvElt → FldFunFracSchElt
X @@ f: PlcCrvElt, GrpAutCrvElt → PlcCrvElt
X @@ f: DivCrvElt, GrpAutCrvElt → DivCrvElt
X @@ f: DiffCrvElt, GrpAutCrvElt → DiffCrvElt
Example: Crv Autos
Example: Crv Iso
Example: Crv Iso
- Quotients of Curves
- Function Fields
- Function Fields
FunctionField(C): Crv → FldFunFracSch
HasFunctionField(C): Crv → BoolElt
Curve(F): FldFunFracSch → Crv
F ! r: FldFunFracSch, RngElt → FldFunFracSchElt
ProjectiveFunction(f): FldFunFracSchElt → RngFunFracElt
Example: Ff Creation Example
p @ f: Pt, FldFunFracSchElt → RngElt
f(p): Pt, FldFunFracSchElt → RngElt
Evaluate(f, p): RngElt, Pt → RngElt
Expand(f, p): FldFunFracSchElt[Crv], PlcCrvElt → RngSerElt, FldFunFracSchElt
Completion(F, p): FldFunFracSch[Crv], PlcCrvElt → RngSer, Map
Degree(f): FldFunFracSchElt[Crv] → RngIntElt
Valuation(f, p): RngElt, Pt → RngIntElt
Valuation(p): Pt → Map
UniformizingParameter(p): Pt → FldFunFracSchElt
Module(S): [FldFunFracSchElt[Crv]] → Mod, Map, [ModElt]
Relations(S): [FldFunFracSchElt[Crv]] → ModTupRng
Relations(S, m): [FldFunFracSchElt[Crv]], RngIntElt → ModTupRng
Genus(C): Crv → RngIntElt
FieldOfGeometricIrreducibility(C): Crv → Rng, Map
IsAbsolutelyIrreducible(C): Crv → BoolElt
DimensionOfFieldOfGeometricIrreducibility(C): Crv → RngIntElt
Example: Ff Elements Example
GapNumbers(C): Crv → [RngIntElt]
WronskianOrders(C): Crv → [RngIntElt]
NumberOfPlacesOfDegreeOverExactConstantField(C, m): Crv[FldFin], RngIntElt → RngIntElt
NumberOfPlacesDegECF(C, m): Crv[FldFin], RngIntElt → RngIntElt
NumberOfPlacesOfDegreeOneOverExactConstantField(C): Crv[FldFin] → RngIntElt
NumberOfPlacesOfDegreeOneECF(C): Crv[FldFin] → RngIntElt
NumberOfPlacesOfDegreeOneOverExactConstantField(C, m): Crv[FldFin], RngIntElt → RngIntElt
NumberOfPlacesOfDegreeOneECF(C, m): Crv[FldFin], RngIntElt → RngIntElt
NumberOfPlacesOfDegreeOneECFBound(C): Crv → RngIntElt
NumberOfPlacesOfDegreeOneOverExactConstantFieldBound(C): Crv[FldFin] → RngIntElt
NumberOfPlacesOfDegreeOneECFBound(C, m): Crv[FldFin], RngIntElt → RngIntElt
NumberOfPlacesOfDegreeOneOverExactConstantFieldBound(C, m): Crv[FldFin], RngIntElt → RngIntElt
DivisorOfDegreeOne(C): Crv[FldFin] → DivCrvElt
SerreBound(C): Crv[FldFin] → RngIntElt
SerreBound(C, m): Crv[FldFin], RngIntElt → RngIntElt
IharaBound(C): Crv[FldFin] → RngIntElt
IharaBound(C, m): Crv[FldFin], RngIntElt → RngIntElt
- Zeta Functions of Curves
- Representations of the Function Field
- Differentials
- Creation of Differentials
- Operations on Differentials
Identity(S): DiffCrv → DiffCrvElt
Curve(S): DiffCrv → Crv
Curve(a): DiffCrvElt → Crv
f * x: RngElt, DiffCrvElt → DiffCrvElt
x * f: DiffCrvElt, RngElt → DiffCrvElt
x + y: DiffCrvElt, DiffCrvElt → DiffCrvElt
- x: DiffCrvElt → DiffCrvElt
x - y: DiffCrvElt, DiffCrvElt → DiffCrvElt
x / r: DiffCrvElt, RngElt → DiffCrvElt
x / y: DiffCrvElt, DiffCrvElt → FldFunFracSchElt
S eq T: DiffCrv, DiffCrv → BoolElt
a eq b: DiffCrvElt, DiffCrvElt → BoolElt
a in S: Any, DiffCrv → BoolElt
IsExact(a): DiffCrvElt → BoolElt
IsZero(a): DiffCrvElt → BoolElt
Valuation(d, P): DiffCrvElt, PlcCrvElt → RngIntElt
Residue(d, P): DiffCrvElt, PlcCrvElt → RngElt
Divisor(d): DiffCrvElt → DivCrvElt
Module(L): [DiffCrvElt] → Mod, Map, [ ModElt ]
Relations(L): [DiffCrvElt] → ModTupFld
Relations(L, m): [DiffCrvElt], RngIntElt → ModTupFld
Cartier(a): DiffCrvElt → DiffCrvElt
Cartier(a, r): DiffCrvElt, RngIntElt → DiffCrvElt
CartierRepresentation(C): Crv → AlgMatElt, SeqEnum[DiffCrvElt]
CartierRepresentation(C, r): Crv, RngIntElt → AlgMatElt, SeqEnum[DiffCrvElt]
Example: Curve Differentials
- Divisors
- Places
- Sets of Places
- Places
Places(C, m): Crv[FldFin], RngIntElt → SeqEnum
HasPlace(C, m): Crv[FldFin], RngIntElt → BoolElt, PlcCrvElt
RandomPlace(C, m): Crv[FldFin], RngIntElt → BoolElt, PlcCrvElt
Place(p): Pt → PlcCrvElt
Places(p): Pt → SeqEnum
Place(C, I): Crv, RngMPol → PlcCrvElt
WeierstrassPlaces(C): Crv → [PlcCrvElt]
Place(Q): [FldFunFracSchElt] → PlcCrvElt
Ideal(P): PlcCrvElt → RngMPol
TwoGenerators(P): PlcCrvElt → FldFunFracSchElt, FldFunFracSchElt
Example: Place Equations
Zeros(f): FldFunFracSchElt[Crv] → SeqEnum[PlcCrvElt]
Poles(f): FldFunFracSchElt[Crv] → SeqEnum[PlcCrvElt]
Zeros(C, f): Crv, RngElt → [PlcCrvElt]
Poles(C, f): Crv, RngElt → [PlcCrvElt]
CommonZeros(L): [FldFunFracSchElt[Crv]] → [PlcCrvElt]
CommonZeros(C, L): Crv, [FldFunFracSchElt] → [PlcCrvElt]
Example: Zeros And Poles
p1 + p2: PlcCrvElt, PlcCrvElt → DivCrvElt
- p1: PlcCrvElt → DivCrvElt
p1 - p2: PlcCrvElt, PlcCrvElt → DivCrvElt
k * p: RngIntElt, PlcCrvElt → DivCrvElt
p div k: PlcCrvElt, RngIntElt → DivCrvElt
p mod k: PlcCrvElt, RngIntElt → DivCrvElt
Quotrem(p1, k): PlcCrvElt, RngIntElt → DivCrvElt, DivCrvElt
Curve(P): PlcCrvElt → Crv
RepresentativePoint(P): PlcCrv → Pt
P eq Q: PlcCrvElt, PlcCrvElt → BoolElt
P ne Q: PlcCrvElt, PlcCrvElt → BoolElt
P in S: Any, PlcCrv → BoolElt
P notin S: Any, PlcCrv → BoolElt
Valuation(f, P): RngElt, PlcCrvElt → RngIntElt
Valuation(P): PlcCrvElt → Map
Valuation(a, P): DiffCrvElt, PlcCrvElt → RngIntElt
Residue(a, P): DiffCrvElt, PlcCrvElt → RngElt
UniformizingParameter(P): PlcCrvElt → FldFunFracSchElt
IsWeierstrassPlace(P): PlcCrvElt → BoolElt
IsWeierstrassPlace(D, P): DivCrvElt, PlcCrvElt → BoolElt
ResidueClassField(P): PlcCrvElt → Rng
Evaluate(a, P): FldFunFracSchElt, PlcCrvElt → RngElt
Lift(a, P): RngElt, PlcCrvElt → FldFunFracSchElt
Lift(i, P): Infty, PlcCrvElt → FldFunFracSchElt
Degree(P): PlcCrvElt → RngIntElt
GapNumbers(C, P): Crv, PlcCrvElt → [RngIntElt]
GapNumbers(P): PlcCrvElt → [RngIntElt]
Parametrization(C, p): Crv, Pt → MapSch
Parametrization(C, p): Crv, PlcCrvElt → MapSch
Parametrization(C, p, P): Crv, PlcCrvElt, Crv → MapSch
- Divisor Group
- Creation of Divisors
DivisorGroup(D): DivCrvElt → DivCrv
Curve(D): DivCrvElt → Crv
Identity(D): DivCrv → DivCrvElt
Id(D): DivCrv → DivCrvElt
D ! 0: DivCrv, RngIntElt → DivCrvElt
Div ! p: DivCrv, PlcCrvElt → DivCrvElt
Div ! p: DivCrv, Pt → DivCrvElt
Divisor(p): PlcCrvElt → DivCrvElt
Divisor(p): Pt → DivCrvElt
Divisor(D, S): DivCrv, SeqEnum → DivCrvElt
Divisor(C, S): Crv, SeqEnum → DivCrvElt
Divisor(S): [<PlcCrvElt, RngIntElt>] → DivCrvElt
Example: Divisor Equations
PrincipalDivisor(C, f): Crv, RngElt → DivCrvElt
PrincipalDivisor(D, f): DivCrv, RngElt → DivCrvElt
PrincipalDivisor(f): FldFunFracSchElt[Crv] → DivCrvElt
Divisor(C, f): Crv, RngElt → DivCrvElt
Divisor(D, f): DivCrv, RngElt → DivCrvElt
Divisor(f): FldFunFracSchElt[Crv] → DivCrvElt
Divisor(a): DiffCrvElt → DivCrvElt
Divisor(C, X): Crv, Sch → DivCrvElt
Divisor(D, X): DivCrv, Sch → DivCrvElt
Divisor(C, p, q): Crv, Pt, Pt → DivCrvElt
Divisor(D, p, q): DivCrv, Pt, Pt → DivCrvElt
Divisor(C, I): Crv, RngMPol → DivCrvElt
Divisor(D, I): DivCrv, RngMPol → DivCrvElt
Decomposition(D): DivCrvElt → SeqEnum
Support(D): DivCrvElt → SeqEnum, SeqEnum
Example: divisor1
CanonicalDivisor(C): Crv → DivCrvElt
RamificationDivisor(C): Crv → DivCrvElt
- Arithmetic of Divisors
D + E: DivCrvElt, DivCrvElt → DivCrvElt
D + E: DivCrvElt, PlcCrvElt → DivCrvElt
D + E: PlcCrvElt, DivCrvElt → DivCrvElt
D + E: PlcCrvElt, PlcCrvElt → DivCrvElt
- D: DivCrvElt → DivCrvElt
- D: PlcCrvElt → DivCrvElt
D - E: DivCrvElt, DivCrvElt → DivCrvElt
D - E: DivCrvElt, PlcCrvElt → DivCrvElt
D - E: PlcCrvElt, DivCrvElt → DivCrvElt
D - E: PlcCrvElt, PlcCrvElt → DivCrvElt
n * D: RngIntElt, DivCrvElt → DivCrvElt
n * D: RngIntElt, PlcCrvElt → DivCrvElt
D div n: DivCrvElt, RngIntElt → DivCrvElt
D div n: PlcCrvElt, RngIntElt → DivCrvElt
D mod n: DivCrvElt, RngIntElt → DivCrvElt
D mod n: PlcCrvElt, RngIntElt → DivCrvElt
Quotrem(D, n): DivCrvElt, RngIntElt → DivCrvElt, DivCrvElt
Degree(D): DivCrvElt → RngIntElt
IsEffective(D): DivCrvElt → BoolElt
IsPositive(D): DivCrvElt → BoolElt
Numerator(D): DivCrvElt → DivCrvElt
Denominator(D): DivCrvElt → DivCrvElt
SignDecomposition(D): DivCrvElt → DivElt, DivElt
Example: divisor2
d in D: Any, DivCrv → BoolElt
d notin D: Any, DivCrv → BoolElt
D eq E: DivCrvElt, DivCrvElt → BoolElt
D ne E: DivCrvElt, DivCrvElt → BoolElt
D lt E: DivCrvElt, DivCrvElt → BoolElt
D le E: DivCrvElt, DivCrvElt → BoolElt
D gt E: DivCrvElt, DivCrvElt → BoolElt
D ge E: DivCrvElt, DivCrvElt → BoolElt
AreLinearlyEquivalent(D,E): DivCrvElt, DivCrvElt → BoolElt
IsZero(D): DivCrvElt → BoolElt
IsCanonical(D): DivCrvElt → BoolElt, DiffCrvElt
GCD(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt
Gcd(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt
GreatestCommonDivisor(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt
LCM(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt
Lcm(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt
LeastCommonMultiple(D1, D2): DivCrvElt, DivCrvElt → DivCrvElt
Example: Canonical Divisor
- Other Operations on Divisors
- Linear Equivalence of Divisors
- Linear Equivalence and Class Group
- Riemann–Roch Spaces
Reduction(D): DivCrvElt → DivCrvElt, RngIntElt, DivCrvElt, FldFunFracSchElt
Reduction(D, A): DivCrvElt, DivCrvElt → DivCrvElt, RngIntElt, DivCrvElt, FldFunFracSchElt
RiemannRochSpace(D): DivCrvElt → ModFld, Map
Basis(D): DivCrvElt → SeqEnum
ShortBasis(D): DivCrvElt → SeqEnum
Dimension(D): DivCrvElt → RngIntElt
DifferentialSpace(D): DivCrvElt → ModFld, Map
DifferentialBasis(D): DivCrvElt → SeqEnum
IndexOfSpeciality(D): DivCrvElt → RngIntElt
IsSpecial(D): DivCrvElt → BoolElt
GapNumbers(D): DivCrvElt → SeqEnum
GapNumbers(D,p): DivCrvElt, PlcCrvElt → SeqEnum
GapNumbers(p): Pt → SeqEnum
WeierstrassPlaces(D): DivCrvElt → SeqEnum
WeierstrassPoints(D): DivCrvElt → SeqEnum
WronskianOrders(D): DivCrvElt → SeqEnum
RamificationDivisor(D): DivCrvElt → DivCrvElt
DivisorMap(D): DivCrvElt → MapSch
DivisorMap(D,P): DivCrvElt, Prj → MapSch
CanonicalMap(C): Crv → MapSch
CanonicalMap(C,P): Crv, Prj → MapSch
CanonicalImage(C, phi): Crv, MapSch → Crv, BoolElt
CanonicalImage(C, eqns): Crv, SeqEnum → Crv, BoolElt
Example: Canonical Map
- Index Calculus
IndexCalculus(D1, D2, D0, np): DivCrvElt, DivCrvElt, DivCrvElt, RngIntElt → RngIntElt
IndexCalculus(D1, D2, D0, np, n, rr): DivCrvElt, DivCrvElt, DivCrvElt, RngIntElt, RngIntElt, RngIntElt → RngIntElt
IndexCalculusMatrix({D1, D2, D0, }{n, rr}): DivCrvElt, DivCrvElt, DivCrvElt, RngIntElt, RngIntElt → MtrxSprs, SeqEnum, SeqEnum, DivCrvElt, DivCrvElt, RngIntElt, RngIntElt
MultiplyDivisor(n, D , D0): RngIntElt, DivCrvElt, DivCrvElt → DivCrvElt
Example: indexcalculus
- Advanced Examples
- Curves over Global Fields
- Minimal Degree Functions and Plane Models