# Algebraic Surfaces

- [Introduction](intro-main.md)

- [Generalities](srfc-sch-recap.md)

  - [Ambients](srfc-sch-recap.md#ambients)

  - [Surfaces](srfc-sch-recap.md#surfaces)

  - [Singularity](srfc-sch-recap.md#singularity)

  - [Maps and Points](srfc-sch-recap.md#maps-and-points)

  - [Sheaves and Divisors](srfc-sch-recap.md#sheaves-and-divisors)

- [General Surfaces](gen-sfcs.md)

  - [Introduction](gen-sfcs.md#introduction)

  - [Creation Functions](gen-sfcs.md#creation-functions)

    - [`Surface(A,I): Sch, ModMPol → Srfc`](gen-sfcs.md#function-surface-sch-modmpol)

    - [`Surface(A,f): Sch, RngMPolElt → Srfc`](gen-sfcs.md#function-surface-sch-rngmpolelt)

    - [`Surface(A,S): Sch, SeqEnum → Srfc`](gen-sfcs.md#function-surface-sch-seqenum)

    - [`RationalRuledSurface(P,n): Prj, RngIntElt → Srfc, MapSch`](gen-sfcs.md#function-rationalruledsurface-prj-rngintelt)

    - [`RandomCompleteIntersection(P,ds): Prj, SeqEnum[RngIntElt] → Sch`](gen-sfcs.md#function-randomcompleteintersection-prj-seqenum-rngintelt)

    - [`KummerSurfaceScheme(C): CrvHyp → Srfc`](gen-sfcs.md#function-kummersurfacescheme-crvhyp)

    - [`Example: Srfcs Creation`](gen-sfcs.md#example-ex-7833c6)

  - [Invariants](gen-sfcs.md#invariants)

    - [`GeometricGenus(S): Srfc → RngIntElt`](gen-sfcs.md#function-geometricgenus-srfc)

    - [`Plurigenus(S,n): Srfc, RngIntElt → RngIntElt`](gen-sfcs.md#function-plurigenus-srfc-rngintelt)

    - [`ArithmeticGenus(S): Srfc → RngIntElt`](gen-sfcs.md#function-arithmeticgenus-srfc)

    - [`Irregularity(S): Srfc → RngIntElt`](gen-sfcs.md#function-irregularity-srfc)

    - [`ChernNumber(S,n): Srfc, RngIntElt → RngIntElt`](gen-sfcs.md#function-chernnumber-srfc-rngintelt)

    - [`MinimalChernNumber(S,n): Srfc, RngIntElt → RngIntElt`](gen-sfcs.md#function-minimalchernnumber-srfc-rngintelt)

    - [`HodgeNumber(S,i,j): Srfc, RngIntElt, RngIntElt → RngIntElt`](gen-sfcs.md#function-hodgenumber-srfc-rngintelt-rngintelt)

    - [`Example: Srfcs Invs`](gen-sfcs.md#example-ex-a227cc)

  - [Singularity Properties](gen-sfcs.md#singularity-properties)

    - [`IsNormal(S): Srfc → BoolElt`](gen-sfcs.md#function-isnormal-srfc)

    - [`IsSimpleSurfaceSingularity(p): Pt → BoolElt, MonStr, RngIntElt`](gen-sfcs.md#function-issimplesurfacesingularity-pt)

    - [`HasOnlySimpleSingularities(S): Srfc → BoolElt, List`](gen-sfcs.md#function-hasonlysimplesingularities-srfc)

    - [`Example: Srfc Simp Sings`](gen-sfcs.md#example-ex-d1e251)

  - [Kodaira-Enriques Classification](gen-sfcs.md#kodaira-enriques-classification)

    - [`KodairaEnriquesType(S): Srfc → RngIntElt, RngIntElt, MonStr`](gen-sfcs.md#function-srfc-ket)

    - [`KodairaDimension(S): Srfc → RngIntElt`](gen-sfcs.md#function-kodairadimension-srfc)

    - [`Example: Srfc Kod Enr Ex`](gen-sfcs.md#example-ex-a66628)

  - [Minimal Models](gen-sfcs.md#minimal-models)

    - [`MinimalModelRationalSurface(S): Srfc → Map`](gen-sfcs.md#function-srfc-mm-rat)

    - [`Example: Min Mod Rat`](gen-sfcs.md#example-ex-c7d6da)

    - [`MinimalModelRuledSurface(S): Srfc → Map`](gen-sfcs.md#function-minimalmodelruledsurface-srfc)

    - [`MinimalModelKodairaDimensionZero(S): Srfc → Map`](gen-sfcs.md#function-minimalmodelkodairadimensionzero-srfc)

    - [`Example: Srfcs Kod Dim 0 Min Mods1`](gen-sfcs.md#example-ex-19dd97)

    - [`Example: Srfcs Kod Dim 0 Min Mods2`](gen-sfcs.md#example-ex-4ca886)

    - [`MinimalModelKodairaDimensionOne(S): Srfc → Map, Map`](gen-sfcs.md#function-minimalmodelkodairadimensionone-srfc)

    - [`MinimalModelGeneralType(S): Srfc → Map, BoolElt`](gen-sfcs.md#function-minimalmodelgeneraltype-srfc)

    - [`CanonicalWeightedModel(S): Srfc → Map, BoolElt`](gen-sfcs.md#function-canonicalweightedmodel-srfc)

    - [`CanonicalCoordinateIdeal(S): Srfc → RngMPol`](gen-sfcs.md#function-srfc-can-coord-ideal)

    - [`Example: Srfcs Gen Typ Min Mods1`](gen-sfcs.md#example-ex-99ef0e)

    - [`Example: Srfcs Gen Typ Min Mods2`](gen-sfcs.md#example-ex-c59458)

  - [Special Surfaces in Projective 4-space](gen-sfcs.md#special-surfaces-in-projective-4-space)

    - [`RandomRationalSurface_d10g9(P): Prj → Srfc`](gen-sfcs.md#function-randomrationalsurface-d10g9-prj)

    - [`RandomEnriquesSurface_d9g6(P): Prj → Srfc`](gen-sfcs.md#function-randomenriquessurface-d9g6-prj)

    - [`RandomAbelianSurface_d10g6(P): Prj → Srfc`](gen-sfcs.md#function-randomabeliansurface-d10g6-prj)

    - [`RandomEllipticFibration_d7g6(P): Prj → Srfc`](gen-sfcs.md#function-randomellipticfibration-d7g6-prj)

    - [`RandomEllipticFibration_d8g7(P): Prj → Srfc`](gen-sfcs.md#function-randomellipticfibration-d8g7-prj)

    - [`RandomEllipticFibration_d9g7(P): Prj → Srfc`](gen-sfcs.md#function-randomellipticfibration-d9g7-prj)

    - [`RandomEllipticFibration_d10g10(P): Prj → Srfc`](gen-sfcs.md#function-randomellipticfibration-d10g10-prj)

- [Desingularisation by Blow Up](desing-by-blow-up.md)

  - [Introduction](desing-by-blow-up.md#introduction)

    - [`ResolveSingularSurface(S): Srfc → List, RngIntElt`](desing-by-blow-up.md#function-resolve-singular-surface)

    - [`DesingulariseSurfaceByBlowUp(S): Srfc → List`](desing-by-blow-up.md#function-desingularisesurfacebyblowup-srfc)

    - [`ResolveSingByBlowUp(X,Y): Sch, Sch → DesingData`](desing-by-blow-up.md#function-resolvesingbyblowup-sch-sch)

  - [Accessor Functions](desing-by-blow-up.md#accessor-functions)

    - [`NumberOfBlowUpDivisors(dsd): DesingData → RngIntElt`](desing-by-blow-up.md#function-numberofblowupdivisors-desingdata)

    - [`SingularPoint(dsd): DesingData → Sch`](desing-by-blow-up.md#function-singularpoint-desingdata)

    - [`BlowUpDivisor(S, dsd, i): Srfc, DesingData, RngIntElt → Crv, Sch, MapSch`](desing-by-blow-up.md#function-blowupdivisor-srfc-desingdata-rngintelt)

    - [`BlowUpDivisorAllPatches(dsd, i): DesingData, RngIntElt → List, RngIntElt`](desing-by-blow-up.md#function-blowupdivisorallpatches-desingdata-rngintelt)

    - [`Example: Srfc Blow Up Desing Basics`](desing-by-blow-up.md#example-ex-196358)

  - [Multiplicities, Intersections and Restricted Linear Systems](desing-by-blow-up.md#multiplicities-intersections-and-restricted-linear-systems)

    - [`IntersectionMatrix(dsd): DesingData → Mtrx`](desing-by-blow-up.md#function-intersectionmatrix-desingdata)

    - [`Multiplicities(S,D): Srfc, DivSchElt → SeqEnum`](desing-by-blow-up.md#function-multiplicities-srfc-divschelt)

    - [`Multiplicities(S,D): Srfc, Sch → SeqEnum`](desing-by-blow-up.md#function-multiplicities-srfc-sch)

    - [`Multiplicities(S,dsd,D): Srfc, DesingData, Sch → SeqEnum`](desing-by-blow-up.md#function-multiplicities-srfc-desingdata-sch)

    - [`MultiplicitiesAndIntersections(S,D): Srfc, DivSchElt → SeqEnum, SeqEnum`](desing-by-blow-up.md#function-multiplicitiesandintersections-srfc-divschelt)

    - [`MultiplicitiesAndIntersections(S,D): Srfc, Sch → SeqEnum, SeqEnum`](desing-by-blow-up.md#function-multiplicitiesandintersections-srfc-sch)

    - [`MultiplicitiesAndIntersections(S,dsd,D): Srfc, DesingData, Sch → SeqEnum, SeqEnum`](desing-by-blow-up.md#function-multiplicitiesandintersections-srfc-desingdata-sch)

    - [`IntersectionNumberOfStrictTransforms(S,D1,D2): Srfc, Sch, Sch → RngIntElt`](desing-by-blow-up.md#function-intersectionnumberofstricttransforms-srfc-sch-sch)

    - [`SelfIntersectionOfStrictTransform(S,D): Srfc, Sch → RngIntElt`](desing-by-blow-up.md#function-selfintersectionofstricttransform-srfc-sch)

    - [`LinearSystemDivisorRestriction(S,B,ms): Srfc, SeqEnum[RngMPolElt], SeqEnum[SeqEnum] → SeqEnum`](desing-by-blow-up.md#function-linearsystemdivisorrestriction-srfc-seqenum-rngmpolelt-seqenum-seqenum)

  - [Canonical Divisor Functionality](desing-by-blow-up.md#canonical-divisor-functionality)

    - [`DifferentialMultiplicities(dsd): DesingData → SeqEnum`](desing-by-blow-up.md#function-differentialmultiplicities-desingdata)

    - [`BasisOfHolomorphicTwoForms(S): Srfc → SeqEnum[RngMPolElt], RngMPolElt, SeqEnum, List`](desing-by-blow-up.md#function-basisofholomorphictwoforms-srfc)

    - [`PluriCanonicalBasis(S,m): Srfc, RngIntElt → SeqEnum`](desing-by-blow-up.md#function-pluricanonicalbasis-srfc-rngintelt)

    - [`Example: Srfc Sing Dp4 2frms N Pluri`](desing-by-blow-up.md#example-ex-1afb7c)

    - [`FirstChernClassOfDesingularization(S): Srfc → RngIntElt[RngMPolElt]`](desing-by-blow-up.md#function-firstchernclassofdesingularization-srfc)

    - [`CanonicalIntersection(S,D): Srfc, DivSchElt → RngIntElt`](desing-by-blow-up.md#function-canonicalintersection-srfc-divschelt)

    - [`CanonicalIntersection(S,D): Srfc, Sch → RngIntElt`](desing-by-blow-up.md#function-canonicalintersection-srfc-sch)

    - [`CanonicalIntersection(dsd,i): DesingData, RngIntElt → RngIntElt`](desing-by-blow-up.md#function-canonicalintersection-desingdata-rngintelt)

    - [`ExceptionalDivisors(S): Srfc → List, List`](desing-by-blow-up.md#function-exceptionaldivisors-srfc)

    - [`Example: Srfc Ex Divs Intr`](desing-by-blow-up.md#example-ex-838890)

  - [Dual Resolution Graphs](desing-by-blow-up.md#dual-resolution-graphs)

    - [`DualResolutionGraph(dsd): DesingData → GrphMultUnd, SeqEnum, SeqEnum`](desing-by-blow-up.md#function-dualresolutiongraph-desingdata)

    - [`MinimalDualResolutionGraph(dsd): DesingData → GrphMultUnd, SeqEnum, SeqEnum, Mtrx`](desing-by-blow-up.md#function-minimaldualresolutiongraph-desingdata)

    - [`Example: Srfc Dual Desing Grph 1`](desing-by-blow-up.md#example-ex-b5837e)

    - [`Example: Srfc Dual Desing Grph 2`](desing-by-blow-up.md#example-ex-58237d)

    - [`SelfIntersection(dsd,i): DesingData, RngIntElt → RngIntElt`](desing-by-blow-up.md#function-selfintersection-desingdata-rngintelt)

    - [`SelfIntersection(G,i): GrphMultUnd, RngIntElt → RngIntElt`](desing-by-blow-up.md#function-selfintersection-grphmultund-rngintelt)

    - [`CanonicalIntersection(dsd,i): DesingData, RngIntElt → RngIntElt`](desing-by-blow-up.md#function-canonicalintersection-desingdata-rngintelt-2)

    - [`CanonicalIntersection(G,i): GrphMultUnd, RngIntElt → RngIntElt`](desing-by-blow-up.md#function-canonicalintersection-grphmultund-rngintelt)

    - [`ArithmeticGenus(dsd,i): DesingData, RngIntElt → RngIntElt`](desing-by-blow-up.md#function-arithmeticgenus-desingdata-rngintelt)

    - [`ArithmeticGenus(G,i): GrphMultUnd, RngIntElt → RngIntElt`](desing-by-blow-up.md#function-arithmeticgenus-grphmultund-rngintelt)

    - [`Genus(dsd,i): DesingData, RngIntElt → RngIntElt`](desing-by-blow-up.md#function-genus-desingdata-rngintelt)

    - [`Genus(G,i): GrphMultUnd, RngIntElt → RngIntElt`](desing-by-blow-up.md#function-genus-grphmultund-rngintelt)

    - [`LocalIntersectionNumber(e): GrphEdge → RngIntElt`](desing-by-blow-up.md#function-localintersectionnumber-grphedge)

    - [Point counting on resolution fibres](desing-by-blow-up.md#point-counting-on-resolution-fibres)

      - [`NumberOfPointsOnResolutionFibre(dsd): DesingData → RngIntElt`](desing-by-blow-up.md#function-numberofpointsonresolutionfibre-desingdata)

      - [`NumberOfPointsOnMinimalResolutionFibre(dsd): DesingData → RngIntElt`](desing-by-blow-up.md#function-numberofpointsonminimalresolutionfibre-desingdata)

      - [`ZetaFunctionOfResolutionFibre(dsd): DesingData → FldFunRatUElt`](desing-by-blow-up.md#function-zetafunctionofresolutionfibre-desingdata)

      - [`ZetaFunctionOfResolutionFibre(dsd): DesingData → FldFunRatUElt`](desing-by-blow-up.md#function-zetafunctionofresolutionfibre-desingdata-2)

      - [`ZetaFunctionOfMinimalResolutionFibre(dsd): DesingData → FldFunRatUElt`](desing-by-blow-up.md#function-zetafunctionofminimalresolutionfibre-desingdata)

      - [`Example: Srfc Dual Desing Grph Zeta`](desing-by-blow-up.md#example-ex-ee12c0)

  - [Extended Examples](desing-by-blow-up.md#extended-examples)

    - [`Example: Srfc Blow Up Desing 1`](desing-by-blow-up.md#example-ex-ef12b8)

    - [`Example: Srfc Blow Up Desing 2`](desing-by-blow-up.md#example-ex-5e9e06)

    - [`Example: Srfc Blow Up Desing 3`](desing-by-blow-up.md#example-ex-f69efd)

- [Surfaces in ${\mathbb{P}}^3$](srfcs-P3.md)

  - [Introduction](srfcs-P3.md#introduction)

  - [Embedded Formal Desingularization of Curves](srfcs-P3.md#embedded-formal-desingularization-of-curves)

    - [`ResolveAffineCurve(p): RngMPolElt → List, List, List, RngIntElt`](srfcs-P3.md#function-as-res-aff-crv)

    - [`Example: Aff Crv Res`](srfcs-P3.md#example-ex-32b426)

    - [`ResolveProjectiveCurve(p): RngMPolElt → List, List, List, RngIntElt`](srfcs-P3.md#function-resolveprojectivecurve-rngmpolelt)

    - [`Example: Prj Crv Res`](srfcs-P3.md#example-ex-f419e5)

  - [Formal Desingularization of Surfaces](srfcs-P3.md#formal-desingularization-of-surfaces)

    - [`ResolveAffineMonicSurface(s): RngUPolElt → List, RngIntElt`](srfcs-P3.md#function-as-res-aff-srf)

    - [`Example: Aff Res`](srfcs-P3.md#example-ex-455987)

    - [`FormallyResolveProjectiveHyperSurface({}{S}): Srfc → List, RngIntElt`](srfcs-P3.md#function-as-res-prj-srf)

    - [`Example: Prj Res`](srfcs-P3.md#example-ex-527dc0)

  - [Adjoint Systems and Birational Invariants](srfcs-P3.md#adjoint-systems-and-birational-invariants)

    - [`HomAdjoints(m,n,S): RngIntElt, RngIntElt, Srfc → SeqEnum`](srfcs-P3.md#function-as-hom-adj)

    - [`GeometricGenusOfDesingularization(S): Srfc → RngIntElt`](srfcs-P3.md#function-as-hyp-gg)

    - [`PlurigenusOfDesingularization(S,m): Srfc, RngIntElt → RngIntElt`](srfcs-P3.md#function-as-hyp-pg)

    - [`ArithmeticGenusOfDesingularization(S): Srfc → RngIntElt`](srfcs-P3.md#function-as-hyp-ag)

    - [`Example: Adj Ex`](srfcs-P3.md#example-ex-1ad4d2)

  - [Classification and Parameterization of Rational Surfaces](srfcs-P3.md#classification-and-parameterization-of-rational-surfaces)

    - [`IsRational(X): Srfc → BoolElt`](srfcs-P3.md#function-isrational-srfc)

  - [Reduction to Special Models](srfcs-P3.md#reduction-to-special-models)

    - [`ClassifyRationalSurface(S): Srfc → Srfc, List, MonStgElt`](srfcs-P3.md#function-as-class-prj)

    - [`Example: class`](srfcs-P3.md#example-ex-f22fab)

  - [Parametrization of Rational Surfaces](srfcs-P3.md#parametrization-of-rational-surfaces)

    - [`ParametrizeProjectiveHypersurface(X, P2): Srfc, Prj → BoolElt, MapSch`](srfcs-P3.md#function-parametrizeprojectivehypersurface-srfc-prj)

    - [`ParametrizeProjectiveSurface(X, P2): Srfc, Prj → BoolElt, MapSch`](srfcs-P3.md#function-parametrizeprojectivesurface-srfc-prj)

    - [`Example: prm`](srfcs-P3.md#example-ex-83bd7e)

    - [`Solve(p, F): RngMPolElt, FldFunRat → SeqEnum`](srfcs-P3.md#function-solve-rngmpolelt-fldfunrat)

    - [`Example: prm2`](srfcs-P3.md#example-ex-e08515)

  - [Parametrization of Special Surfaces](srfcs-P3.md#parametrization-of-special-surfaces)

    - [`ParametrizeQuadric(X,P2): Sch, Prj → BoolElt, MapSch`](srfcs-P3.md#function-parametrizequadric-sch-prj)

    - [`Example: Solve Quad`](srfcs-P3.md#example-ex-81f100)

    - [`ParametrizePencil(phi, P2): MapSch, Prj → BoolElt, MapSch`](srfcs-P3.md#function-parametrizepencil-mapsch-prj)

    - [`Example: Ruled Ex`](srfcs-P3.md#example-ex-8ec1f8)

    - [`ParametrizeDelPezzo(X, P2): Sch, Prj → BoolElt, MapSch`](srfcs-P3.md#function-as-prmdp)

- [Del Pezzo Surfaces](dp-srfcs.md)

  - [Introduction](dp-srfcs.md#introduction)

  - [Creation of General Del Pezzos](dp-srfcs.md#creation-of-general-del-pezzos)

    - [`DelPezzoSurface(P,L): Prj, List → SrfDelPezzo`](dp-srfcs.md#function-delpezzosurface-prj-list)

    - [`DelPezzoSurface(S): Setq[Pt] → SrfDelPezzo`](dp-srfcs.md#function-delpezzosurface-setq-pt)

    - [`DelPezzoSurface(Z): Clstr → SrfDelPezzo`](dp-srfcs.md#function-delpezzosurface-clstr)

    - [`DelPezzoSurface(f): RngMPolElt → SrfDelPezzo`](dp-srfcs.md#function-delpezzosurface-rngmpolelt)

    - [`IsDelPezzo(Y): Sch → BoolElt, SrfDelPezzo, MapSch`](dp-srfcs.md#function-isdelpezzo-sch)

  - [Some Auxiliary Intrinsics](dp-srfcs.md#some-auxiliary-intrinsics)

    - [`CollinearPointsOnPlane(P2,S): Prj, SetIndx[Pt] → SeqEnum`](dp-srfcs.md#function-collinearpointsonplane-prj-setindx-pt)

    - [`PointsInGeneralPosition(P2,S): Prj, SetIndx[Pt] → BoolElt, SeqEnum, SeqEnum, SeqEnum`](dp-srfcs.md#function-pointsingeneralposition-prj-setindx-pt)

    - [`EckardtPoints(X): SrfDelPezzo → Sch`](dp-srfcs.md#function-eckardtpoints-srfdelpezzo)

  - [Parametrization of Del Pezzo Surfaces](dp-srfcs.md#parametrization-of-del-pezzo-surfaces)

    - [`SetVerbose("ParamDP", v): MonStgElt, RngIntElt`](dp-srfcs.md#function-setverbose-monstgelt-rngintelt)

    - [`ParametrizeDegree9DelPezzo(X): Sch → BoolElt, MapIsoSch`](dp-srfcs.md#function-parametrizedegree9delpezzo-sch)

    - [`ParametrizeDegree8DelPezzo(X): Sch → BoolElt, MapSch`](dp-srfcs.md#function-parametrizedegree8delpezzo-sch)

    - [`Example: Del Pezzo Ex 8`](dp-srfcs.md#example-ex-2e5909)

    - [`ParametrizeDegree7DelPezzo(X): Sch → MapIsoSch`](dp-srfcs.md#function-parametrizedegree7delpezzo-sch)

    - [`ParametrizeDegree6DelPezzo(X): Sch → BoolElt, MapIsoSch`](dp-srfcs.md#function-parametrizedegree6delpezzo-sch)

    - [`Degree6DelPezzoType2_1(K,pt): FldNum, Pt → Sch`](dp-srfcs.md#function-degree6delpezzotype2-1-fldnum-pt)

    - [`Degree6DelPezzoType2_2(K,pt): FldNum, Pt → Sch`](dp-srfcs.md#function-degree6delpezzotype2-2-fldnum-pt)

    - [`Degree6DelPezzoType2_3(K,pt): FldNum, Pt → Sch`](dp-srfcs.md#function-degree6delpezzotype2-3-fldnum-pt)

    - [`Degree6DelPezzoType3(K,pt): FldNum, Pt → Sch`](dp-srfcs.md#function-degree6delpezzotype3-fldnum-pt)

    - [`Degree6DelPezzoType4(K,K1,pt): FldNum, Fld, Pt → Sch`](dp-srfcs.md#function-degree6delpezzotype4-fldnum-fld-pt)

    - [`Degree6DelPezzoType6(K,pt): FldNum, Pt → Sch`](dp-srfcs.md#function-degree6delpezzotype6-fldnum-pt)

    - [`ParametrizeDelPezzoDeg6(X): Sch → BoolElt, MapIsoSch`](dp-srfcs.md#function-parametrizedelpezzodeg6-sch)

    - [`Example: Del Pezzo Ex 6`](dp-srfcs.md#example-ex-cfe2ed)

    - [`ParametrizeDegree5DelPezzo(X): Sch → MapIsoSch`](dp-srfcs.md#function-parametrizedegree5delpezzo-sch)

    - [`ParametrizeSingularDegree3DelPezzo(X,P2): Sch, Prj → BoolElt, MapIsoSch`](dp-srfcs.md#function-parametrizesingulardegree3delpezzo-sch-prj)

    - [`ParametrizeSingularDegree4DelPezzo(X,P2): Sch, Prj → BoolElt, MapIsoSch`](dp-srfcs.md#function-parametrizesingulardegree4delpezzo-sch-prj)

    - [`Example: Del Pezzo Ex 3 Sing`](dp-srfcs.md#example-ex-b772c7)

  - [Minimization and Reduction of Surfaces](dp-srfcs.md#minimization-and-reduction-of-surfaces)

    - [`MinimizeCubicSurface(f, p): RngMPolElt, RngIntElt → RngMPolElt, Mtrx`](dp-srfcs.md#function-minimizecubicsurface-rngmpolelt-rngintelt)

    - [`ReduceCubicSurface(f): RngMPolElt → RngMPolElt, Mtrx`](dp-srfcs.md#function-reducecubicsurface-rngmpolelt)

    - [`MinimizeReduceCubicSurface(f): MPolElt → RngMPolElt, Mtrx`](dp-srfcs.md#function-minimizereducecubicsurface-mpolelt)

    - [`MinimizeDeg4delPezzo(f, p): SeqEnum, RngIntElt → SeqEnum, Mtrx`](dp-srfcs.md#function-minimizedeg4delpezzo-seqenum-rngintelt)

    - [`MinimizeReduceDeg4delPezzo(f): SeqEnum → SeqEnum, Mtrx`](dp-srfcs.md#function-minimizereducedeg4delpezzo-seqenum)

    - [`MinimizeReduce(S): SrfDelPezzo → SrfDelPezzo, Mtrx`](dp-srfcs.md#function-minimizereduce-srfdelpezzo)

    - [`Example: dp34`](dp-srfcs.md#example-ex-0d6a36)

  - [Cubic Surfaces over Finite Fields](dp-srfcs.md#cubic-surfaces-over-finite-fields)

    - [`NumberOfPointsOnCubicSurface(f): RngMPolElt → RngIntElt, RngIntElt`](dp-srfcs.md#function-numberofpointsoncubicsurface-rngmpolelt)

    - [`Example: numptscubic`](dp-srfcs.md#example-ex-3f2682)

    - [`IsIsomorphicCubicSurface(f,g): MPolElt, MPolElt → BoolElt, List`](dp-srfcs.md#function-isisomorphiccubicsurface-mpolelt-mpolelt)

    - [`Example: isisocubic`](dp-srfcs.md#example-ex-5e111c)

  - [Construction of Cubic Surfaces](dp-srfcs.md#construction-of-cubic-surfaces)

    - [`CubicSurfaceByHexahedralCoefficients(p): RngUPolElt → RngMPolElt`](dp-srfcs.md#function-cubicsurfacebyhexahedralcoefficients-rngupolelt)

    - [`CoblesRadicand(p): RngUPolElt → FldElt`](dp-srfcs.md#function-coblesradicand-rngupolelt)

    - [`Example: hex`](dp-srfcs.md#example-ex-f2bff8)

  - [Invariant Theory of Cubic Surfaces](dp-srfcs.md#invariant-theory-of-cubic-surfaces)

    - [Invariants](dp-srfcs.md#invariants)

      - [`ClebschSalmonInvariants(f): RngMPolElt → SeqEnum, RngElt`](dp-srfcs.md#function-clebschsalmoninvariants-rngmpolelt)

      - [`SkewInvariant100(f): RngMPolElt → RngElt`](dp-srfcs.md#function-skewinvariant100-rngmpolelt)

      - [`CubicSurfaceFromClebschSalmon(inv): SeqEnum → RngMPolElt`](dp-srfcs.md#function-cubicsurfacefromclebschsalmon-seqenum)

      - [`Example: Inv Cub`](dp-srfcs.md#example-ex-7e1f83)

    - [Covariants](dp-srfcs.md#covariants)

      - [`LinearCovariants(f): RngMPolElt → SeqEnum`](dp-srfcs.md#function-linearcovariants-rngmpolelt)

      - [`ClassicalCovariantsOfCubicSurface(f): RngMPolElt → SeqEnum`](dp-srfcs.md#function-classicalcovariantsofcubicsurface-rngmpolelt)

    - [Contravariants](dp-srfcs.md#contravariants)

      - [`NumericClebschTransfer(f, inv, p): RngMPolElt, UserProgram, SeqEnum → RngElt`](dp-srfcs.md#function-numericclebschtransfer-rngmpolelt-userprogram-seqenum)

      - [`ContravariantsOfCubicSurface(f): RngMPolElt → SeqEnum`](dp-srfcs.md#function-contravariantsofcubicsurface-rngmpolelt)

      - [`Example: Cayley Dual`](dp-srfcs.md#example-ex-b242ba)

    - [Interaction of Covariants and Contravariants](dp-srfcs.md#interaction-of-covariants-and-contravariants)

      - [`ApplyContravariant(c, d): MPolElt, MPolElt → MPolElt`](dp-srfcs.md#function-applycontravariant-mpolelt-mpolelt)

      - [`Example: Co Cont`](dp-srfcs.md#example-ex-b667d5)

  - [The Pentahedron of a Cubic Surface](dp-srfcs.md#the-pentahedron-of-a-cubic-surface)

    - [`PentahedronIdeal(f): RngMPolElt → RngMPol`](dp-srfcs.md#function-srfc-pent-ideal)

    - [`Example: penta`](dp-srfcs.md#example-ex-aa479a)

- [Degree $2$ K3 Surfaces](deg-2-K3-srfcs.md)

  - [Introduction](deg-2-K3-srfcs.md#introduction)

  - [Creation Functions](deg-2-K3-srfcs.md#creation-functions)

    - [`DegreeTwoK3Surface(f): RngMPolElt → Srfc`](deg-2-K3-srfcs.md#function-degreetwok3surface-rngmpolelt)

    - [`Example: Srfc Deg2K3 Constr`](deg-2-K3-srfcs.md#example-ex-25b20a)

  - [Split Divisors and Intersection Matrices](deg-2-K3-srfcs.md#split-divisors-and-intersection-matrices)

    - [`TriTangentLines(S): Srfc → List`](deg-2-K3-srfcs.md#function-tritangentlines-srfc)

    - [`TriTangentLines(F): RngMPolElt → List`](deg-2-K3-srfcs.md#function-tritangentlines-rngmpolelt)

    - [`SixTangentConicsModp(F): RngMPolElt → SeqEnum[RngMPolElt]`](deg-2-K3-srfcs.md#function-sixtangentconicsmodp-rngmpolelt)

    - [`SixTangentConicCheck(S,C): Srfc, RngMPolElt → BoolElt`](deg-2-K3-srfcs.md#function-sixtangentconiccheck-srfc-rngmpolelt)

    - [`SixTangentConicCheck(F,C): RngMPolElt, RngMPolElt → BoolElt`](deg-2-K3-srfcs.md#function-sixtangentconiccheck-rngmpolelt-rngmpolelt)

    - [`IntersectionMatrixOnDegree2K3(S, Ds): Srfc, SeqEnum[Sch] → Mtrx`](deg-2-K3-srfcs.md#function-intersectionmatrixondegree2k3-srfc-seqenum-sch)

    - [`Example: Deg2K3 Int Pairings`](deg-2-K3-srfcs.md#example-ex-54e6f4)

  - [Elliptic Fibrations](deg-2-K3-srfcs.md#elliptic-fibrations)

    - [`KodairaConfigurations(imat): Mtrx → List`](deg-2-K3-srfcs.md#function-kodairaconfigurations-mtrx)

    - [`Example: Deg2K3 Int Pairings`](deg-2-K3-srfcs.md#example-ex-b2ea2c)

    - [`EllipticFibrationRRSpaceDeg2K3(S,divlst,exdivlst): Srfc, SeqEnum, SeqEnum → SeqEnum[RngMPolElt], RngMPolElt`](deg-2-K3-srfcs.md#function-ellipticfibrationrrspacedeg2k3-srfc-seqenum-seqenum)

    - [`EllipticGeneralFibreDeg2K3(S,B,secs): Srfc, SeqEnum[RngMPolElt], SeqEnum[Sch] → Crv, SeqEnum, SeqEnum`](deg-2-K3-srfcs.md#function-ellipticgeneralfibredeg2k3-srfc-seqenum-rngmpolelt-seqenum-sch)

    - [`Example: Deg2K3 Ell Fib Ex`](deg-2-K3-srfcs.md#example-ex-d5a79f)
