Documentation

LeanPool.FLTEichlerShimura.Definitions.Def_AlgebraicCurve_PlacesOverDVR

Places above a place via primes of the integral closure #

Definition: AlgebraicCurve_PlacesOverDVR (71585f74-5f90-5e62-b565-e6e34df02a7a), by Claude, 2026-09-05.

Throughout, $K \subseteq F \subseteq F'$ are fields with $F'/F$ finite and separable (compatible algebra structures and scalar tower), and a place of $F/K$ means an element of the project's structure Place K F: a valuation subring $\mathcal{O}_v \subsetneq F$ containing the image of $K$ whose ideals are all principal, so that $\mathcal{O}_v$ is a discrete valuation ring with normalised order function $v.\mathrm{ord}$ and residue field.

The first construction is an affine chart. For a Dedekind domain $R$ with $R \subseteq F$ as fraction field and a place $w$, given the hypothesis that every $r \in R$ maps into $\mathcal{O}_w$, center R w hw is the contraction $\mathfrak{m}_w \cap R$, i.e. the preimage of the maximal ideal of $\mathcal{O}_w$ under the induced map $R \to \mathcal{O}_w$; it is prime, nonzero, hence a height-one prime centerHeightOneSpectrum R w hw, and $\mathcal{O}_w$ coincides with the localisation $\mathcal{O}_{R,\mathfrak{p}}$ attached to it by Mathlib's valuationSubringAtPrime. Membership in the centre is characterised by $0 < w.\mathrm{ord}$, and for fixed $r_0 \neq 0$ only finitely many places satisfy both conditions.

For a place $v$ of $F/K$, integralClosureAt F' v is the integral closure $C_v$ of $\mathcal{O}_v$ in $F'$, which is a Dedekind domain, module-finite over $\mathcal{O}_v$, with fraction field $F'$. For $w$ a place of $F'/K$ with $w|_F = v$ (equality of $w.\mathrm{restrict}\,F$, the contraction of $\mathcal{O}_w$ to $F$, with $v$), fiberCenter F' v hw is the centre $\mathfrak{m}_w \cap C_v$ as a height-one prime of $C_v$; it lies over $\mathfrak{m}_v$, and $\mathcal{O}_w$ is its localisation. Conversely placeOfPrime P is the place of $F'/K$ with valuation ring $(C_v)_{\mathfrak{P}}$, and it restricts to $v$. These are mutually inverse: fiberEquiv F' v is the resulting bijection between $\{w : w|_F = v\}$ and the height-one spectrum of $C_v$. Consequently the set of places above $v$ is finite, and fiberOver F' v is it as a finset, with membership criterion $w|_F = v$, cardinality equal to that of Mathlib's primesOverFinset of $\mathfrak{m}_v$ in $C_v$, and agreement with the fibre finset fiber of the divisor push/pull module under HasPrincipalDivisors K F'. Auxiliary results record that $\mathcal{O}_w$ is integrally closed (a root of a monic polynomial with coefficients in $\mathcal{O}_w$ lies in $\mathcal{O}_w$), the translation of maximal-ideal membership into positivity of $\mathrm{ord}$, and the identity $w.\mathrm{ord}(r) = e(w/F)\cdot v.\mathrm{ord}(r)$ for $r \in \mathcal{O}_v$.

Relation to Mathlib. Place is the project's own structure; Mathlib's height-one spectrum of a Dedekind domain, its valuationSubringAtPrime, primesOverFinset, and the theorems that the integral closure in a finite separable extension is Dedekind, module-finite and has the larger field as fraction field are used to identify the fibre of places above a place with a set of primes.

Where it is used. The fibre finset fiberOver and the ramification data it supports underlie the pullback and pushforward maps on divisors, the fundamental identity relating ramification indices and residue degrees, and hence the degree-zero divisor class groups of curves used in the formalisation.

<!-- Generated by add_prove2me_provenance.py -->

theorem AlgebraicCurve.Place.ord_neg {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (w : Place K F) (f : F) :
w.ord (-f) = w.ord f
theorem AlgebraicCurve.Place.mem_of_eval_monic_eq_zero {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (w : Place K F) {P : Polynomial F} (hP : P.Monic) (hcoeff : ∀ (i : ℕ), P.coeff i ∈ w.toValuationSubring) {x : F} (hx : Polynomial.eval x P = 0) :
theorem AlgebraicCurve.Place.mem_maximalIdeal_iff_ord_pos {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (w : Place K F) {x : F} (hx : x ≠ 0) (hmem : x ∈ w.toValuationSubring) :
def AlgebraicCurve.Place.chartHom {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] {R : Type u_3} [CommRing R] [Algebra R F] (w : Place K F) (hw : ∀ (r : R), (algebraMap R F) r ∈ w.toValuationSubring) :

The homomorphism from an affine chart ring into the valuation ring of a place regular on that chart.

Equations
Instances For
    def AlgebraicCurve.Place.center {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (R : Type u_3) [CommRing R] [Algebra R F] (w : Place K F) (hw : ∀ (r : R), (algebraMap R F) r ∈ w.toValuationSubring) :

    The prime ideal of the chart ring obtained by pulling back the maximal ideal of the valuation ring.

    Equations
    Instances For
      instance AlgebraicCurve.Place.instIsPrimeCenter {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] {R : Type u_3} [CommRing R] [Algebra R F] (w : Place K F) (hw : ∀ (r : R), (algebraMap R F) r ∈ w.toValuationSubring) :
      (center R w hw).IsPrime
      theorem AlgebraicCurve.Place.mem_center_iff {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] {R : Type u_3} [CommRing R] [Algebra R F] (w : Place K F) (hw : ∀ (r : R), (algebraMap R F) r ∈ w.toValuationSubring) {r : R} :
      theorem AlgebraicCurve.Place.mem_center_iff_ord_pos {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] {R : Type u_3} [CommRing R] [IsDedekindDomain R] [Algebra R F] [IsFractionRing R F] (w : Place K F) (hw : ∀ (r : R), (algebraMap R F) r ∈ w.toValuationSubring) {r : R} (hr : r ≠ 0) :
      r ∈ center R w hw ↔ 0 < w.ord ((algebraMap R F) r)
      theorem AlgebraicCurve.Place.center_ne_bot {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] {R : Type u_3} [CommRing R] [IsDedekindDomain R] [Algebra R F] [IsFractionRing R F] (w : Place K F) (hw : ∀ (r : R), (algebraMap R F) r ∈ w.toValuationSubring) :
      center R w hw ≠ ⊥
      def AlgebraicCurve.Place.centerHeightOneSpectrum {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] (R : Type u_3) [CommRing R] [IsDedekindDomain R] [Algebra R F] [IsFractionRing R F] (w : Place K F) (hw : ∀ (r : R), (algebraMap R F) r ∈ w.toValuationSubring) :

      The center of the place bundled as a height-one prime of the chart ring.

      Equations
      Instances For
        @[simp]
        theorem AlgebraicCurve.Place.centerHeightOneSpectrum_asIdeal {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] {R : Type u_3} [CommRing R] [IsDedekindDomain R] [Algebra R F] [IsFractionRing R F] (w : Place K F) (hw : ∀ (r : R), (algebraMap R F) r ∈ w.toValuationSubring) :
        theorem AlgebraicCurve.Place.finite_setOf_forall_mem_and_ord_pos {K : Type u_1} {F : Type u_2} [Field K] [Field F] [Algebra K F] {R : Type u_3} [CommRing R] [IsDedekindDomain R] [Algebra R F] [IsFractionRing R F] {r₀ : R} (hr₀ : r₀ ≠ 0) :
        {w : Place K F | (∀ (r : R), (algebraMap R F) r ∈ w.toValuationSubring) ∧ 0 < w.ord ((algebraMap R F) r₀)}.Finite
        @[reducible]
        def AlgebraicCurve.Place.valuationSubringAlgebra {K : Type u_1} {F : Type u_2} (F' : Type u_3) [Field K] [Field F] [Field F'] [Algebra K F] [Algebra F F'] (v : Place K F) :

        The upstairs function field as an algebra over the downstairs valuation ring.

        Equations
        Instances For
          @[reducible, inline]
          abbrev AlgebraicCurve.Place.integralClosureAt {K : Type u_1} {F : Type u_2} (F' : Type u_3) [Field K] [Field F] [Field F'] [Algebra K F] [Algebra F F'] (v : Place K F) :
          Type u_3

          The integral closure of the downstairs valuation ring in the upstairs function field.

          Equations
          Instances For
            instance AlgebraicCurve.Place.instIsFractionRingIntegralClosureAt {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra F F'] [FiniteDimensional F F'] (v : Place K F) :
            theorem AlgebraicCurve.Place.forall_mem_of_restrict_eq {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [Algebra.IsSeparable F F'] {v : Place K F} {w : Place K F'} (hw : restrict F w = v) (c : integralClosureAt F' v) :
            def AlgebraicCurve.Place.fiberCenter {K : Type u_1} {F : Type u_2} (F' : Type u_3) [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] (v : Place K F) {w : Place K F'} (hw : restrict F w = v) :

            The height-one prime of the integral closure corresponding to a place above the given place.

            Equations
            Instances For
              theorem AlgebraicCurve.Place.mem_fiberCenter_iff_ord_pos {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] {v : Place K F} {w : Place K F'} (hw : restrict F w = v) {c : integralClosureAt F' v} (hc : c ≠ 0) :
              c ∈ (fiberCenter F' v hw).asIdeal ↔ 0 < w.ord ((algebraMap (integralClosureAt F' v) F') c)
              theorem AlgebraicCurve.Place.algebraMap_integralClosureAt_ne_zero {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra F F'] {v : Place K F} {r : ↥v.toValuationSubring} (hr : r ≠ 0) :
              theorem AlgebraicCurve.Place.ord_algebraMap_integralClosureAt {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [Algebra.IsSeparable F F'] {v : Place K F} {w : Place K F'} (hw : restrict F w = v) (r : ↥v.toValuationSubring) :
              theorem AlgebraicCurve.Place.fiberCenter_liesOver {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] {v : Place K F} {w : Place K F'} (hw : restrict F w = v) :
              noncomputable def AlgebraicCurve.Place.placeOfPrime {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] {v : Place K F} (P : IsDedekindDomain.HeightOneSpectrum (integralClosureAt F' v)) :
              Place K F'

              The upstairs place associated to a height-one prime of the integral closure.

              Equations
              Instances For
                theorem AlgebraicCurve.Place.fiberCenter_placeOfPrime {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] {v : Place K F} (P : IsDedekindDomain.HeightOneSpectrum (integralClosureAt F' v)) :
                fiberCenter F' v ⋯ = P
                theorem AlgebraicCurve.Place.eq_of_fiberCenter_eq {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] {v : Place K F} {w w' : Place K F'} (hw : restrict F w = v) (hw' : restrict F w' = v) (h : fiberCenter F' v hw = fiberCenter F' v hw') :
                w = w'
                noncomputable def AlgebraicCurve.Place.fiberEquiv {K : Type u_1} {F : Type u_2} (F' : Type u_3) [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] (v : Place K F) :

                Identify places above the given place with height-one primes of its integral closure.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem AlgebraicCurve.Place.fiberEquiv_apply {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] (v : Place K F) (w : { w : Place K F' // restrict F w = v }) :
                  (fiberEquiv F' v) w = fiberCenter F' v ⋯
                  @[simp]
                  theorem AlgebraicCurve.Place.fiberEquiv_symm_apply {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] (v : Place K F) (P : IsDedekindDomain.HeightOneSpectrum (integralClosureAt F' v)) :
                  ↑((fiberEquiv F' v).symm P) = placeOfPrime P
                  theorem AlgebraicCurve.Place.finite_setOf_restrict_eq {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] (v : Place K F) :
                  {w : Place K F' | restrict F w = v}.Finite
                  noncomputable def AlgebraicCurve.Place.fiberOver {K : Type u_1} {F : Type u_2} (F' : Type u_3) [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] (v : Place K F) :
                  Finset (Place K F')

                  The finite set of places above the specified downstairs place.

                  Equations
                  Instances For
                    @[simp]
                    theorem AlgebraicCurve.Place.mem_fiberOver {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] (v : Place K F) {w : Place K F'} :
                    w ∈ fiberOver F' v ↔ restrict F w = v
                    theorem AlgebraicCurve.Place.restrict_mem_fiberOver {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] (w : Place K F') :
                    theorem AlgebraicCurve.Place.restrict_eq_of_mem_fiberOver {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] (v : Place K F) {w : Place K F'} (hw : w ∈ fiberOver F' v) :
                    restrict F w = v
                    theorem AlgebraicCurve.Place.subset_fiberOver_of_forall_restrict_eq {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] (v : Place K F) {S : Finset (Place K F')} (hS : ∀ w ∈ S, restrict F w = v) :
                    S ⊆ fiberOver F' v
                    theorem AlgebraicCurve.Place.fiber_eq_fiberOver {K : Type u_1} {F : Type u_2} {F' : Type u_3} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] [Algebra F F'] [IsScalarTower K F F'] [FiniteDimensional F F'] [Algebra.IsSeparable F F'] (v : Place K F) [HasPrincipalDivisors K F'] :
                    fiber F' v = fiberOver F' v