Documentation

Atlas.AlgebraicGeometryI.code.CanonicalDivisorDecomposition

noncomputable def globalRamification {R : Type u_1} [CommRing R] [IsDedekindDomain R] (S : Type u_2) [CommRing S] [IsDedekindDomain S] [Algebra R S] [NoZeroSMulDivisors R S] (basePrimes : Finset (Ideal R)) (hmax : pbasePrimes, p.IsMaximal) (hbot : pbasePrimes, p ) :

Global ramification contribution: sum of the total ramification at each prime of R lying under the cover S/R.

Instances For
    theorem globalRamification_eq {R : Type u_1} [CommRing R] [IsDedekindDomain R] (S : Type u_2) [CommRing S] [IsDedekindDomain S] [Algebra R S] [NoZeroSMulDivisors R S] (basePrimes : Finset (Ideal R)) (hmax : pbasePrimes, p.IsMaximal) (hbot : pbasePrimes, p ) :
    globalRamification S basePrimes hmax hbot = pbasePrimes, if h : p basePrimes then totalRamificationAt S p else 0

    Unfolding of globalRamification as a sum of local total-ramification contributions.

    theorem globalRamification_nonneg {R : Type u_1} [CommRing R] [IsDedekindDomain R] (S : Type u_2) [CommRing S] [IsDedekindDomain S] [Algebra R S] [NoZeroSMulDivisors R S] (basePrimes : Finset (Ideal R)) (hmax : pbasePrimes, p.IsMaximal) (hbot : pbasePrimes, p ) :
    0 globalRamification S basePrimes hmax hbot

    The global ramification is non-negative.

    structure CurveCovering :
    Type (max (u_1 + 1) (u_2 + 1))

    Data of a finite covering of smooth complete curves XY arising from a Dedekind ring extension RS, together with the local canonical-degree decompositions used in the Riemann–Hurwitz formula.

    Instances For
      noncomputable def CurveCovering.deg_R (f : CurveCovering) :

      The ramification degree deg R of a curve covering.

      Instances For

        deg R is non-negative.

        Canonical divisor identity in a covering: K_X = n · K_Y + R.

        theorem CurveCovering.riemann_hurwitz_genus (f : CurveCovering) :
        2 * f.X.g - 2 = f.n * (2 * f.Y.g - 2) + f.deg_R

        Riemann-Hurwitz formula for a covering: 2g_X - 2 = n(2g_Y - 2) + deg R.

        theorem CurveCovering.genus_lower_bound (f : CurveCovering) :
        f.X.g f.n * (f.Y.g - 1) + 1

        Genus lower bound: g_X ≥ n(g_Y - 1) + 1.

        theorem CurveCovering.deg_R_from_genera (f : CurveCovering) :
        f.deg_R = 2 * f.X.g - 2 - f.n * (2 * f.Y.g - 2)

        Solving Riemann-Hurwitz for deg R in terms of the genera.

        theorem CurveCovering.via_riemann_hurwitz (f : CurveCovering) :
        2 * f.X.g - 2 = f.n * (2 * f.Y.g - 2) + f.deg_R

        Alternate derivation of the Riemann-Hurwitz formula via the explicit riemann_hurwitz_formula helper.

        theorem CurveCovering.etale_genus (f : CurveCovering) (h : f.deg_R = 0) :
        2 * f.X.g - 2 = f.n * (2 * f.Y.g - 2)

        For an étale covering (no ramification), 2g_X - 2 = n(2g_Y - 2).

        theorem CurveCovering.etale_genus_exact (f : CurveCovering) (h : f.deg_R = 0) :
        f.X.g = f.n * (f.Y.g - 1) + 1

        Exact étale formula: g_X = n(g_Y - 1) + 1 when deg R = 0.

        theorem CurveCovering.etale_double_cover_genus (f : CurveCovering) (h_etale : f.deg_R = 0) (h_double : f.n = 2) :
        f.X.g = 2 * f.Y.g - 1

        Étale double covers satisfy g_X = 2 g_Y - 1.

        theorem hyperelliptic_identity (g : ) :
        2 * g - 2 = 2 * (2 * 0 - 2) + (2 * g + 2)

        Numerical identity for hyperelliptic curves: 2g - 2 = 2(2·0 - 2) + (2g + 2).

        Trivial identity covering of an elliptic curve by itself (degree 1, no ramification).

        Instances For

          deg R = 0 for the elliptic identity covering.

          Riemann-Hurwitz applied to the elliptic identity covering.

          Genus lower bound applied to the elliptic identity covering.

          Numerical values realised by the elliptic identity covering: genera 1, 1, degree 1, ramification 0.

          noncomputable def CurveCovering.P1Identity (p : Ideal ) (hp_max : p.IsMaximal) (hp_bot : p ) (h_totalRam : totalRamificationAt p hp_bot = 0) :

          Identity covering of P^1 by itself, using a prescribed prime p of with vanishing total ramification.

          Instances For
            noncomputable def CurveCovering.identityCovering (C : CanonicalSheafCurves.SmoothCompleteCurve) (p : Ideal ) (hp_max : p.IsMaximal) (hp_bot : p ) (h_totalRam : totalRamificationAt p hp_bot = 0) :

            General identity covering: a smooth complete curve C paired with itself at degree 1.

            Instances For
              theorem CurveCovering.identityCovering_deg_R (C : CanonicalSheafCurves.SmoothCompleteCurve) (p : Ideal ) (hp_max : p.IsMaximal) (hp_bot : p ) (h_totalRam : totalRamificationAt p hp_bot = 0) :
              (identityCovering C p hp_max hp_bot h_totalRam).deg_R = 0

              The identity covering has ramification degree 0 when the local total ramification vanishes.

              theorem CurveCovering.identityCovering_rh_genus (C : CanonicalSheafCurves.SmoothCompleteCurve) (p : Ideal ) (hp_max : p.IsMaximal) (hp_bot : p ) (h_totalRam : totalRamificationAt p hp_bot = 0) :
              2 * C.g - 2 = 1 * (2 * C.g - 2) + (identityCovering C p hp_max hp_bot h_totalRam).deg_R

              Riemann-Hurwitz for the identity covering: the trivial relation 2g - 2 = 1 · (2g - 2) + 0.

              structure CurveCoveringDirect :
              Type (max (u_1 + 1) (u_2 + 1))

              Simplified curve-covering structure: stores only the global canonical-degree formula without local data.

              Instances For

                Ramification degree of a CurveCoveringDirect.

                Instances For

                  Canonical-degree identity packaged in CurveCoveringDirect.

                  Riemann-Hurwitz for CurveCoveringDirect.

                  Solving Riemann-Hurwitz for deg R in CurveCoveringDirect.

                  theorem CurveCoveringDirect.etale_genus_exact (f : CurveCoveringDirect) (h : f.deg_R = 0) :
                  f.X.g = f.n * (f.Y.g - 1) + 1

                  Exact étale formula for CurveCoveringDirect.

                  theorem CurveCoveringDirect.etale_double_cover_genus (f : CurveCoveringDirect) (h_etale : f.deg_R = 0) (h_double : f.n = 2) :
                  f.X.g = 2 * f.Y.g - 1

                  Étale double covers in CurveCoveringDirect satisfy g_X = 2 g_Y - 1.

                  Forgetful map from the local CurveCovering data to the simpler CurveCoveringDirect.

                  Instances For