Definitions/Def_AlgebraicCurve_RatFuncPlaces.lean
Places of rational function fields, and transport along field isomorphisms
Throughout, a Place of a field extension F/K is (as defined in the divisor class group module) a valuation subring V \subseteq F containing the image of K, distinct from F, and a principal ideal ring; adicValuation is the \mathbb{Z}^{\mathrm{m}0}-valued valuation attached to the maximal ideal of V, ord is -\log of it, and deg is \dim_K of the residue field of V. The first group of results is the dictionary between these data: the valuation subring of adicValuation is V itself, so f \in V \iff v(f) \le 1, an element of V lies in the maximal ideal iff its value is <1, any valuation on F with valuation subring V is equivalent to adicValuation, and for f \ne 0 one has \operatorname{ord}_v f = 0 \iff v(f) = 1; adicValuation is registered as rank-one discrete and as trivial on K. For a Dedekind domain R with fraction field F sitting in a tower K \to R \to F, the place ofHeightOneSpectrum w attached to a height-one prime w has w-adic valuation equivalent to its adicValuation; the map w \mapsto place is injective, and for q \in R nonzero, \operatorname{ord}(q) \ne 0 \iff q \in w.
Specialising to R = K[X] and F = K(X): heightOneSpectrumOfIrreducible is the height-one prime (p) of an irreducible p, every height-one prime of K[X] arises this way, and finitePlace hp is the corresponding place of K(X). The composite of K[X] \to V \to V/\mathfrak m has kernel w and is surjective, giving a K-algebra isomorphism K[X]/w \cong residue field, whence \deg = \deg p when w = (p). placeOfPoint a is the place at X - a; it is injective in a and has degree 1.
Finally, for a ring isomorphism e : F \cong F' commuting with the structure maps from K, congrRingEquiv transports a place to the place with valuation subring the preimage of V under e^{-1} (i.e. e(V)), with \operatorname{ord}_{e_*v}(e f) = \operatorname{ord}_v f, a K-algebra isomorphism of residue fields, equality of degrees, and congrEquiv, the resulting bijection \mathrm{Place}\,K\,F \simeq \mathrm{Place}\,K\,F' with inverse induced by e^{-1}.
Relation to Mathlib
Mathlib supplies the w-adic valuations of a Dedekind domain (IsDedekindDomain.HeightOneSpectrum), valuation subrings and RatFunc; the Place structure is the project's own, and this module provides the comparison between the two descriptions, the classification of places of K(X) coming from K[X], and the transport of places along an isomorphism of extensions of K.
Where it is used
These places supply the local data on rational function fields used when a genus-zero modular curve is presented as a j-line: the places of K(j) at K-rational points are obtained from placeOfPoint and carried across the identification of the function field with K(X) by congrEquiv, feeding the divisor and degree computations built on the divisor class group module.
References
- H. Stichtenoth, Algebraic Function Fields and Codes, 2nd edition, Graduate Texts in Mathematics 254, Springer, 2009, Chapter I
- J.-P. Serre, Local Fields, Graduate Texts in Mathematics 67, Springer, 1979
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 398 lines
- 39 declarations
- used in the statements of 170 theorems and imported by 304 proofs
- imports 1 definition modules
Source file: Definitions/Def_AlgebraicCurve_RatFuncPlaces.lean
Imported by
Def_AlgebraicCurve_Pic0CongrDef_AlgebraicCurve_RatFuncPlaceClassificationDef_AlgebraicCurve_StandardAnnulusDef_AlgebraicGeometry_TwoGluedProjectiveLinesNodeUnitModuleDef_ModularCurve_CharLFrobeniusGeomLevelDef_ModularCurve_CharLFrobeniusGeomLevelUnconditionalDef_ModularCurve_DRModelLegTwoInputDef_ModularCurve_DRModelLegTwoInputV2Def_ModularCurve_JLinePlacesDef_ModularCurve_JLinePlacesBarDef_ModularCurve_SpecializeModuli
Declarations
- theorem
AlgebraicCurve.Place.adicValuation_valuationSubring - theorem
AlgebraicCurve.Place.mem_iff_adicValuation_le_one - theorem
AlgebraicCurve.Place.isEquiv_adicValuation_of_valuationSubring_eq - theorem
AlgebraicCurve.Place.mem_maximalIdeal_iff_adicValuation_lt_one - theorem
AlgebraicCurve.Place.ord_eq_zero_iff_adicValuation_eq_one - theorem
AlgebraicCurve.Place.isEquiv_adicValuation_ofHeightOneSpectrum - theorem
AlgebraicCurve.Place.ofHeightOneSpectrum_injective - theorem
AlgebraicCurve.Place.ord_ofHeightOneSpectrum_ne_zero_iff - def
AlgebraicCurve.RationalFunctionField.heightOneSpectrumOfIrreducible - theorem
AlgebraicCurve.RationalFunctionField.heightOneSpectrumOfIrreducible_asIdeal - theorem
AlgebraicCurve.RationalFunctionField.exists_irreducible_span - def
AlgebraicCurve.RationalFunctionField.finitePlace - theorem
AlgebraicCurve.RationalFunctionField.finitePlace_def - theorem
AlgebraicCurve.RationalFunctionField.algebraMap_mem_ofHeightOneSpectrum - def
AlgebraicCurve.RationalFunctionField.residueOfHeightOneSpectrum - theorem
AlgebraicCurve.RationalFunctionField.residueOfHeightOneSpectrum_apply - theorem
AlgebraicCurve.RationalFunctionField.ker_residueOfHeightOneSpectrum - theorem
AlgebraicCurve.RationalFunctionField.surjective_residueOfHeightOneSpectrum - def
AlgebraicCurve.RationalFunctionField.residueFieldEquivOfHeightOneSpectrum - theorem
AlgebraicCurve.RationalFunctionField.deg_ofHeightOneSpectrum - theorem
AlgebraicCurve.RationalFunctionField.deg_finitePlace - def
AlgebraicCurve.RationalFunctionField.placeOfPoint - theorem
AlgebraicCurve.RationalFunctionField.placeOfPoint_def - theorem
AlgebraicCurve.RationalFunctionField.placeOfPoint_eq_ofHeightOneSpectrum - theorem
AlgebraicCurve.RationalFunctionField.placeOfPoint_injective - theorem
AlgebraicCurve.RationalFunctionField.deg_placeOfPoint - def
AlgebraicCurve.Place.comapSymmRingEquiv - theorem
AlgebraicCurve.Place.coe_comapSymmRingEquiv_apply - theorem
AlgebraicCurve.Place.symm_algebraMap_comm - def
AlgebraicCurve.Place.congrRingEquiv - theorem
AlgebraicCurve.Place.congrRingEquiv_toValuationSubring - theorem
AlgebraicCurve.Place.ord_congrRingEquiv - def
AlgebraicCurve.Place.congrResidueAlgEquiv - theorem
AlgebraicCurve.Place.deg_congrRingEquiv - def
AlgebraicCurve.Place.congrEquiv - theorem
AlgebraicCurve.Place.congrEquiv_apply - theorem
AlgebraicCurve.Place.congrEquiv_symm_apply
Source
import Mathlib import Definitions.Def_AlgebraicCurve_DivisorClassGroup set_option autoImplicit false noncomputable section open Polynomial IsDedekindDomain WithZero IsLocalRing open scoped Polynomial namespace AlgebraicCurve namespace Place variable {K F : Type*} [Field K] [Field F] [Algebra K F] (v : Place K F) theorem adicValuation_valuationSubring : v.adicValuation.valuationSubring = v.toValuationSubring := by ext x rw [Valuation.mem_valuationSubring_iff] constructor · intro hx obtain ⟨a, rfl⟩ := IsDiscreteValuationRing.exists_lift_of_le_one hx exact a.2 · intro hx exact v.heightOneSpectrum.valuation_le_one (⟨x, hx⟩ : v.toValuationSubring) theorem mem_iff_adicValuation_le_one {f : F} : f ∈ v.toValuationSubring ↔ v.adicValuation f ≤ 1 := by rw [← v.adicValuation_valuationSubring] exact Valuation.mem_valuationSubring_iff _ _ instance : v.adicValuation.IsRankOneDiscrete := IsDiscreteValuationRing.isRankOneDiscrete v.toValuationSubring F instance : v.adicValuation.IsTrivialOn K := Valuation.IsTrivialOn.of_le_one v.adicValuation fun a => v.mem_iff_adicValuation_le_one.mp (v.algebraMap_mem' a) theorem isEquiv_adicValuation_of_valuationSubring_eq {Γ : Type*} [LinearOrderedCommGroupWithZero Γ] {w : Valuation F Γ} (h : w.valuationSubring = v.toValuationSubring) : w.IsEquiv v.adicValuation := (Valuation.isEquiv_iff_valuationSubring _ _).mpr (h.trans v.adicValuation_valuationSubring.symm) theorem mem_maximalIdeal_iff_adicValuation_lt_one (a : v.toValuationSubring) : a ∈ IsLocalRing.maximalIdeal v.toValuationSubring ↔ v.adicValuation (a : F) < 1 := by rw [IsLocalRing.mem_maximalIdeal, mem_nonunits_iff, ← v.adicValuation_coe_eq_one_iff, lt_iff_le_and_ne] have hle : v.adicValuation (a : F) ≤ 1 := v.mem_iff_adicValuation_le_one.mp a.2 tauto theorem ord_eq_zero_iff_adicValuation_eq_one {f : F} (hf : f ≠ 0) : v.ord f = 0 ↔ v.adicValuation f = 1 := by simp only [ord, neg_eq_zero] constructor · intro h have h2 := exp_log (v.adicValuation_ne_zero hf) rw [h, exp_zero] at h2 exact h2.symm · intro h rw [h, log_one] section OfHeightOneSpectrum variable {R : Type*} [CommRing R] [IsDedekindDomain R] [Algebra R F] [IsFractionRing R F] [Algebra K R] [IsScalarTower K R F] theorem isEquiv_adicValuation_ofHeightOneSpectrum (w : HeightOneSpectrum R) : (w.valuation F).IsEquiv (ofHeightOneSpectrum (K := K) w).adicValuation := (ofHeightOneSpectrum (K := K) w).isEquiv_adicValuation_of_valuationSubring_eq rfl theorem ofHeightOneSpectrum_injective : Function.Injective (ofHeightOneSpectrum (K := K) (F := F) (R := R)) := by intro w w' h refine HeightOneSpectrum.eq_of_valuation_isEquiv_valuation (K := F) ?_ refine (isEquiv_adicValuation_ofHeightOneSpectrum (K := K) (F := F) w).trans ?_ rw [h] exact (isEquiv_adicValuation_ofHeightOneSpectrum (K := K) (F := F) w').symm theorem ord_ofHeightOneSpectrum_ne_zero_iff (w : HeightOneSpectrum R) {q : R} (hq : q ≠ 0) : (ofHeightOneSpectrum (K := K) (F := F) w).ord (algebraMap R F q) ≠ 0 ↔ q ∈ w.asIdeal := by have hq' : algebraMap R F q ≠ 0 := (map_ne_zero_iff _ (IsFractionRing.injective R F)).mpr hq rw [ne_eq, (ofHeightOneSpectrum (K := K) w).ord_eq_zero_iff_adicValuation_eq_one hq', ← (isEquiv_adicValuation_ofHeightOneSpectrum (K := K) (F := F) w).eq_one_iff_eq_one, HeightOneSpectrum.valuation_eq_one_iff_notMem, not_not] end OfHeightOneSpectrum end Place namespace RationalFunctionField variable (K : Type*) [Field K] def heightOneSpectrumOfIrreducible {p : K[X]} (hp : Irreducible p) : HeightOneSpectrum K[X] where asIdeal := Ideal.span {p} isPrime := (PrincipalIdealRing.isMaximal_of_irreducible hp).isPrime ne_bot := by simpa [Ideal.span_singleton_eq_bot] using hp.ne_zero @[simp] theorem heightOneSpectrumOfIrreducible_asIdeal {p : K[X]} (hp : Irreducible p) : (heightOneSpectrumOfIrreducible K hp).asIdeal = Ideal.span {p} := rfl theorem exists_irreducible_span (w : HeightOneSpectrum K[X]) : ∃ p : K[X], Irreducible p ∧ w.asIdeal = Ideal.span {p} := by obtain ⟨p, hp⟩ := (IsPrincipalIdealRing.principal w.asIdeal).principal rw [Ideal.submodule_span_eq] at hp refine ⟨p, ?_, hp⟩ have hp0 : p ≠ 0 := by rintro rfl exact w.ne_bot (hp.trans (by simp)) have hpr := w.isPrime rw [hp] at hpr exact ((Ideal.span_singleton_prime hp0).mp hpr).irreducible def finitePlace {p : K[X]} (hp : Irreducible p) : Place K (RatFunc K) := Place.ofHeightOneSpectrum (heightOneSpectrumOfIrreducible K hp) theorem finitePlace_def {p : K[X]} (hp : Irreducible p) : finitePlace K hp = Place.ofHeightOneSpectrum (heightOneSpectrumOfIrreducible K hp) := rfl section ResidueDegree theorem algebraMap_mem_ofHeightOneSpectrum (w : HeightOneSpectrum K[X]) (q : K[X]) : algebraMap K[X] (RatFunc K) q ∈ (Place.ofHeightOneSpectrum (K := K) (F := RatFunc K) w).toValuationSubring := (Place.mem_iff_adicValuation_le_one _).mpr ((Place.isEquiv_adicValuation_ofHeightOneSpectrum (K := K) (F := RatFunc K) w).le_one_iff_le_one.mp (w.valuation_le_one q)) def residueOfHeightOneSpectrum (w : HeightOneSpectrum K[X]) : K[X] →+* (Place.ofHeightOneSpectrum (K := K) (F := RatFunc K) w).ResidueField := (IsLocalRing.residue _).comp ((algebraMap K[X] (RatFunc K)).codRestrict (Place.ofHeightOneSpectrum (K := K) (F := RatFunc K) w).toValuationSubring.toSubring (algebraMap_mem_ofHeightOneSpectrum K w)) theorem residueOfHeightOneSpectrum_apply (w : HeightOneSpectrum K[X]) (q : K[X]) : residueOfHeightOneSpectrum K w q = IsLocalRing.residue _ ⟨algebraMap K[X] (RatFunc K) q, algebraMap_mem_ofHeightOneSpectrum K w q⟩ := rfl theorem ker_residueOfHeightOneSpectrum (w : HeightOneSpectrum K[X]) : RingHom.ker (residueOfHeightOneSpectrum K w) = w.asIdeal := by ext q rw [RingHom.mem_ker, residueOfHeightOneSpectrum_apply, IsLocalRing.residue_eq_zero_iff, Place.mem_maximalIdeal_iff_adicValuation_lt_one, ← (Place.isEquiv_adicValuation_ofHeightOneSpectrum (K := K) (F := RatFunc K) w).lt_one_iff_lt_one] exact HeightOneSpectrum.valuation_lt_one_iff_mem w q theorem surjective_residueOfHeightOneSpectrum (w : HeightOneSpectrum K[X]) : Function.Surjective (residueOfHeightOneSpectrum K w) := by intro y obtain ⟨⟨x, hx⟩, rfl⟩ := IsLocalRing.residue_surjective y have hxval : w.valuation (RatFunc K) x ≤ 1 := (Place.isEquiv_adicValuation_ofHeightOneSpectrum (K := K) (F := RatFunc K) w).le_one_iff_le_one.mpr ((Place.mem_iff_adicValuation_le_one _).mp hx) have hden_ne : algebraMap K[X] (RatFunc K) x.denom ≠ 0 := (map_ne_zero_iff _ (IsFractionRing.injective K[X] (RatFunc K))).mpr x.denom_ne_zero have hmul : x * algebraMap K[X] (RatFunc K) x.denom = algebraMap K[X] (RatFunc K) x.num := ((div_eq_iff hden_ne).mp x.num_div_denom).symm have hden : x.denom ∉ w.asIdeal := by intro hd have hnum : x.num ∉ w.asIdeal := by intro hn refine w.isPrime.ne_top ((Ideal.eq_top_iff_one _).mpr ?_) obtain ⟨a, b, hab⟩ := RatFunc.isCoprime_num_denom x exact hab ▸ Ideal.add_mem _ (Ideal.mul_mem_left _ _ hn) (Ideal.mul_mem_left _ _ hd) have h1 : w.valuation (RatFunc K) (algebraMap K[X] (RatFunc K) x.num) = 1 := (HeightOneSpectrum.valuation_eq_one_iff_notMem w).mpr hnum refine absurd h1 (ne_of_lt ?_) calc w.valuation (RatFunc K) (algebraMap K[X] (RatFunc K) x.num) = w.valuation (RatFunc K) x * w.valuation (RatFunc K) (algebraMap K[X] (RatFunc K) x.denom) := by rw [← map_mul, hmul] _ ≤ w.valuation (RatFunc K) (algebraMap K[X] (RatFunc K) x.denom) := mul_le_of_le_one_left' hxval _ < 1 := (HeightOneSpectrum.valuation_lt_one_iff_mem w x.denom).mpr hd have hmax : w.asIdeal.IsMaximal := IsPrime.to_maximal_ideal w.ne_bot obtain ⟨t, ht⟩ : ∃ t : K[X], x.denom * t - 1 ∈ w.asIdeal := by obtain ⟨b, c, hc, hbc⟩ := hmax.exists_inv hden refine ⟨b, ?_⟩ rw [show x.denom * b - 1 = -c by linear_combination hbc] exact neg_mem hc refine ⟨x.num * t, ?_⟩ rw [residueOfHeightOneSpectrum_apply, ← sub_eq_zero, ← map_sub, IsLocalRing.residue_eq_zero_iff, Place.mem_maximalIdeal_iff_adicValuation_lt_one] show (Place.ofHeightOneSpectrum (K := K) (F := RatFunc K) w).adicValuation (algebraMap K[X] (RatFunc K) (x.num * t) - x) < 1 rw [← (Place.isEquiv_adicValuation_ofHeightOneSpectrum (K := K) (F := RatFunc K) w).lt_one_iff_lt_one] have key : algebraMap K[X] (RatFunc K) (x.num * t) - x = x * algebraMap K[X] (RatFunc K) (x.denom * t - 1) := by rw [map_sub, map_mul, map_mul, map_one, mul_sub, mul_one, ← mul_assoc, hmul] rw [key, map_mul] calc w.valuation (RatFunc K) x * w.valuation (RatFunc K) (algebraMap K[X] (RatFunc K) (x.denom * t - 1)) ≤ w.valuation (RatFunc K) (algebraMap K[X] (RatFunc K) (x.denom * t - 1)) := mul_le_of_le_one_left' hxval _ < 1 := (HeightOneSpectrum.valuation_lt_one_iff_mem w _).mpr ht def residueFieldEquivOfHeightOneSpectrum (w : HeightOneSpectrum K[X]) : (K[X] ⧸ w.asIdeal) ≃ₐ[K] (Place.ofHeightOneSpectrum (K := K) (F := RatFunc K) w).ResidueField := by refine AlgEquiv.ofRingEquiv (f := (Ideal.quotEquivOfEq (ker_residueOfHeightOneSpectrum K w).symm).trans (RingHom.quotientKerEquivOfSurjective (surjective_residueOfHeightOneSpectrum K w))) ?_ intro a rw [show (algebraMap K (K[X] ⧸ w.asIdeal)) a = Ideal.Quotient.mk w.asIdeal (algebraMap K K[X] a) from rfl] rw [RingEquiv.trans_apply, Ideal.quotEquivOfEq_mk, RingHom.quotientKerEquivOfSurjective_apply_mk, residueOfHeightOneSpectrum_apply] exact congrArg (IsLocalRing.residue _) (Subtype.ext (IsScalarTower.algebraMap_apply K K[X] (RatFunc K) a).symm) theorem deg_ofHeightOneSpectrum {w : HeightOneSpectrum K[X]} {p : K[X]} (hw : w.asIdeal = Ideal.span {p}) : (Place.ofHeightOneSpectrum (K := K) (F := RatFunc K) w).deg = p.natDegree := by rw [Place.deg, ← (residueFieldEquivOfHeightOneSpectrum K w).toLinearEquiv.finrank_eq, hw] exact finrank_quotient_span_eq_natDegree theorem deg_finitePlace {p : K[X]} (hp : Irreducible p) : (finitePlace K hp).deg = p.natDegree := deg_ofHeightOneSpectrum K (heightOneSpectrumOfIrreducible_asIdeal K hp) end ResidueDegree def placeOfPoint (a : K) : Place K (RatFunc K) := finitePlace K (irreducible_X_sub_C a) theorem placeOfPoint_def (a : K) : placeOfPoint K a = finitePlace K (irreducible_X_sub_C a) := rfl theorem placeOfPoint_eq_ofHeightOneSpectrum (a : K) : placeOfPoint K a = Place.ofHeightOneSpectrum (heightOneSpectrumOfIrreducible K (irreducible_X_sub_C a)) := rfl theorem placeOfPoint_injective : Function.Injective (placeOfPoint K) := by intro a b h have h2 : heightOneSpectrumOfIrreducible K (irreducible_X_sub_C a) = heightOneSpectrumOfIrreducible K (irreducible_X_sub_C b) := Place.ofHeightOneSpectrum_injective (K := K) (F := RatFunc K) h have h3 : Ideal.span {(X : K[X]) - C a} = Ideal.span {(X : K[X]) - C b} := by have := congrArg HeightOneSpectrum.asIdeal h2 simpa using this have h4 : ((X : K[X]) - C a) ∣ (X - C b) := (Ideal.span_singleton_eq_span_singleton.mp h3).dvd have h5 : (X - C b).IsRoot a := dvd_iff_isRoot.mp h4 have h6 : a - b = 0 := by simpa [IsRoot] using h5 exact sub_eq_zero.mp h6 @[simp] theorem deg_placeOfPoint (a : K) : (placeOfPoint K a).deg = 1 := by rw [placeOfPoint, deg_finitePlace, natDegree_X_sub_C] end RationalFunctionField namespace Place section Congr variable {K F F' : Type*} [Field K] [Field F] [Field F'] [Algebra K F] [Algebra K F'] variable (e : F ≃+* F') def comapSymmRingEquiv (V : ValuationSubring F) : V ≃+* (V.comap (e.symm : F' →+* F)) where toFun x := ⟨e x, by rw [ValuationSubring.mem_comap] show e.symm (e x) ∈ V rw [e.symm_apply_apply] exact x.2⟩ invFun y := ⟨e.symm y, y.2⟩ left_inv x := by ext exact e.symm_apply_apply x right_inv y := by ext exact e.apply_symm_apply y map_mul' x y := by ext exact e.map_mul x y map_add' x y := by ext exact e.map_add x y @[simp] theorem coe_comapSymmRingEquiv_apply (V : ValuationSubring F) (x : V) : ((comapSymmRingEquiv e V x : (V.comap (e.symm : F' →+* F))) : F') = e x := rfl variable (he : ∀ a : K, e (algebraMap K F a) = algebraMap K F' a) include he theorem symm_algebraMap_comm (a : K) : e.symm (algebraMap K F' a) = algebraMap K F a := by rw [← he a, e.symm_apply_apply] def congrRingEquiv (v : Place K F) : Place K F' where toValuationSubring := v.toValuationSubring.comap (e.symm : F' →+* F) algebraMap_mem' a := by rw [ValuationSubring.mem_comap] show e.symm (algebraMap K F' a) ∈ v.toValuationSubring rw [symm_algebraMap_comm e he a] exact v.algebraMap_mem' a ne_top' := fun h => v.ne_top' (SetLike.ext fun x => ⟨fun _ => ValuationSubring.mem_top x, fun _ => by have hx : e x ∈ v.toValuationSubring.comap (e.symm : F' →+* F) := by rw [h] exact ValuationSubring.mem_top _ rw [ValuationSubring.mem_comap] at hx have : e.symm (e x) ∈ v.toValuationSubring := hx rwa [e.symm_apply_apply] at this⟩) isPrincipalIdealRing' := IsPrincipalIdealRing.of_surjective (comapSymmRingEquiv e v.toValuationSubring : _ ≃+* _) (comapSymmRingEquiv e v.toValuationSubring).surjective @[simp] theorem congrRingEquiv_toValuationSubring (v : Place K F) : (congrRingEquiv e he v).toValuationSubring = v.toValuationSubring.comap (e.symm : F' →+* F) := rfl theorem ord_congrRingEquiv (v : Place K F) (f : F) : (congrRingEquiv e he v).ord (e f) = v.ord f := by rcases eq_or_ne f 0 with rfl | hf · simp obtain ⟨π, hπ⟩ := IsDiscreteValuationRing.exists_irreducible v.toValuationSubring obtain ⟨u, hu⟩ := v.exists_unit_mul_zpow hf hπ have hπ' : Irreducible (comapSymmRingEquiv e v.toValuationSubring π) := (MulEquiv.irreducible_iff (comapSymmRingEquiv e v.toValuationSubring)).mpr hπ have hu' : IsUnit (comapSymmRingEquiv e v.toValuationSubring (u : v.toValuationSubring)) := u.isUnit.map (comapSymmRingEquiv e v.toValuationSubring) have key : e f = ((hu'.unit : (v.toValuationSubring.comap (e.symm : F' →+* F))) : F') * (((comapSymmRingEquiv e v.toValuationSubring π : (v.toValuationSubring.comap (e.symm : F' →+* F))) : F') ^ (v.ord f)) := by rw [IsUnit.unit_spec, coe_comapSymmRingEquiv_apply, coe_comapSymmRingEquiv_apply, ← map_zpow₀, ← map_mul, ← hu] rw [key] exact (congrRingEquiv e he v).ord_unit_smul_zpow hu'.unit hπ' (v.ord f) def congrResidueAlgEquiv (v : Place K F) : v.ResidueField ≃ₐ[K] (congrRingEquiv e he v).ResidueField := AlgEquiv.ofRingEquiv (f := IsLocalRing.ResidueField.mapEquiv (comapSymmRingEquiv e v.toValuationSubring)) (fun a => by have h3 : (comapSymmRingEquiv e v.toValuationSubring) (algebraMap K v.toValuationSubring a) = algebraMap K (congrRingEquiv e he v).toValuationSubring a := by ext rw [coe_comapSymmRingEquiv_apply, coe_algebraMap, coe_algebraMap] exact he a show IsLocalRing.ResidueField.mapEquiv _ (IsLocalRing.residue _ _) = IsLocalRing.residue _ _ rw [IsLocalRing.ResidueField.mapEquiv_apply, IsLocalRing.ResidueField.map_residue] exact congrArg _ h3) theorem deg_congrRingEquiv (v : Place K F) : (congrRingEquiv e he v).deg = v.deg := ((congrResidueAlgEquiv e he v).toLinearEquiv.finrank_eq).symm def congrEquiv : Place K F ≃ Place K F' where toFun := congrRingEquiv e he invFun := congrRingEquiv e.symm (symm_algebraMap_comm e he) left_inv v := by ext1 refine SetLike.ext fun x => ?_ show e.symm (e.symm.symm x) ∈ v.toValuationSubring ↔ x ∈ v.toValuationSubring rw [RingEquiv.symm_symm, e.symm_apply_apply] right_inv v := by ext1 refine SetLike.ext fun x => ?_ show e.symm.symm (e.symm x) ∈ v.toValuationSubring ↔ x ∈ v.toValuationSubring rw [RingEquiv.symm_symm, e.apply_symm_apply] @[simp] theorem congrEquiv_apply (v : Place K F) : congrEquiv e he v = congrRingEquiv e he v := rfl @[simp] theorem congrEquiv_symm_apply (v : Place K F') : (congrEquiv e he).symm v = congrRingEquiv e.symm (symm_algebraMap_comm e he) v := rfl end Congr end Place end AlgebraicCurve end
Statements phrased using this module (170)
- Riemann–Roch over an algebraically closed base field
AlgebraicCurve.functionFieldRiemannRoch_of_isAlgClosed8 below · depth 9 - Divisor specialisation preserves degree zero and principality
ModularCurve.CharPModel.FibreModel.spDiv_preservesPrincipal_of_reductionInputs313 below · depth 9 - Equivalence with v's adic valuation from equal valuation rings
AlgebraicCurve.Place.isEquiv_adicValuation_of_valuationSubring_eq0 below · depth 10 - Order zero at a place iff adic valuation one
AlgebraicCurve.Place.ord_eq_zero_iff_adicValuation_eq_one0 below · depth 10 - The place at infinity of K(t) has degree one
AlgebraicCurve.RationalFunctionField.deg_placeInfty8 below · depth 10 - Places of K(t): the finite places and ∞
AlgebraicCurve.RationalFunctionField.eq_ofHeightOneSpectrum_or_eq_placeInfty3 below · depth 10 - Finite-dimensionality of L(0) when the constants are K
AlgebraicCurve.RationalFunctionField.finiteDimensional_lSpace_zero_of_constantsAreBase23 below · depth 10 - Riemann's index theorem for curves over a perfect field
AlgebraicCurve.exists_genus_riemannIndex_of_isCurveOver26 below · depth 10 - Riemann–Roch from the residue theorem, K algebraically closed
AlgebraicCurve.functionFieldRiemannRoch_of_residueTheoremK_of_isAlgClosed0 below · depth 10 - Powers of a transcendental element are linearly independent
AlgebraicCurve.linearIndependent_pow_of_transcendental23 below · depth 10 - Residue theorem over an algebraically closed base field
AlgebraicCurve.residueTheoremK_of_isAlgClosed6 below · depth 10 - Reduction mod ℓ on J₀(N) equals the constructed specialisation
ModularCurve.CharPModel.FibreModel.reductionModL_eq_pic0Congr_spPic0812 below · depth 10 - Degree-zero divisors on the level-one j-line are principal
ModularCurve.isPrincipal_of_degree_eq_zero_charLOne20 below · depth 10 - Places of the level-N modular function field have degree one
ModularCurve.place_deg_eq_one_of_isAlgClosed88 below · depth 10 - Zeros of jmath̄-j₀ on X₀(N) total ψ(N)
ModularCurve.sum_ord_jBar_sub_eq_dedekindPsi144 below · depth 10 - Places of K(t) over an algebraically closed K have degree one
AlgebraicCurve.RationalFunctionField.deg_eq_one_of_isAlgClosed37 below · depth 11 - Degree of a finite place of K(t) equals deg p
AlgebraicCurve.RationalFunctionField.deg_ofHeightOneSpectrum3 below · depth 11 - The infinite place of K(t) characterised among all places
AlgebraicCurve.RationalFunctionField.eq_placeInfty_iff_forall_ne_ofHeightOneSpectrum2 below · depth 11 - Places of K(t) for K algebraically closed: P¹(K)
AlgebraicCurve.RationalFunctionField.eq_placeOfPoint_or_eq_placeInfty4 below · depth 11 - Order at the infinite place is minus the degree
AlgebraicCurve.RationalFunctionField.ord_placeInfty8 below · depth 11 - Order at infinity of a polynomial is -deg q
AlgebraicCurve.RationalFunctionField.ord_placeInfty_algebraMap9 below · depth 11 - Order at the place t=a equals root multiplicity
AlgebraicCurve.RationalFunctionField.ord_placeOfPoint_algebraMap37 below · depth 11 - The place at infinity of K(t) is not a finite place
AlgebraicCurve.RationalFunctionField.placeInfty_ne_ofHeightOneSpectrum0 below · depth 11 - Existence of the genus for separable extensions of K(X)
AlgebraicCurve.RationalFunctionField.stichtenothGenusExists23 below · depth 11 - Degree of a canonical divisor is 2g-2 over ̄ K
AlgebraicCurve.degree_canonicalDivisor_eq_of_isAlgClosed56 below · depth 11 - Residue theorem for K(x), K algebraically closed
AlgebraicCurve.residueTheoremK_ratFunc_of_isAlgClosed0 below · depth 11 - Residue–trace commutation through the completion, F/E separable
AlgebraicCurve.residueTraceCompletionCommute4 below · depth 11 - Reduction of places equals the fibre-model specialisation map
ModularCurve.CharPModel.FibreModel.placeReductionModL_eq_spPlace810 below · depth 11 - Generic compatibility transports points to places along φ
AlgebraicCurve.CurveModel.pointEquivPlace_comp_eq_congrRingEquiv_of_fromSpecStalk_comp_eq0 below · depth 12 - The w-adic valuation is equivalent to its place's valuation
AlgebraicCurve.Place.isEquiv_adicValuation_ofHeightOneSpectrum0 below · depth 12 - Membership in a place's valuation ring via v≤ 1
AlgebraicCurve.Place.mem_iff_adicValuation_le_one0 below · depth 12 - Maximal ideal of a place: v-valuation <1
AlgebraicCurve.Place.mem_maximalIdeal_iff_adicValuation_lt_one0 below · depth 12 - Order at the place of w is nonzero exactly on w
AlgebraicCurve.Place.ord_ofHeightOneSpectrum_ne_zero_iff0 below · depth 12 - A pole of X forces the place at infinity on K(X)
AlgebraicCurve.RationalFunctionField.eq_placeInfty_of_ord_X_neg5 below · depth 12 - Residue theorem for curves over an algebraically closed field
AlgebraicCurve.residueTheorem_of_isAlgClosed8 below · depth 12 - Existence of the Stichtenoth genus for a curve over a perfect field
AlgebraicCurve.stichtenothGenusExists_of_isCurveOver25 below · depth 12 - Tate's residue agrees with the local residue trace
AlgebraicCurve.tateAgreement0 below · depth 12 - Chain rule for Tate's residue along F/E
AlgebraicCurve.tateChainRule0 below · depth 12 - Tate's commutator has finite K-rank at every place
AlgebraicCurve.tateCommFinite0 below · depth 12 - Trace compatibility of Tate's local residue for separable F/E
AlgebraicCurve.tateTraceCompat_of_isSeparable0 below · depth 12 - Transported specialisation is a reduction of places mod ℓ
ModularCurve.CharPModel.FibreModel.isPlaceReductionModL_congr_spPlace299 below · depth 12 - Finiteness of the zero locus of jmath̄ - j₀
ModularCurve.exists_finset_ord_jBar_sub_pos144 below · depth 12 - Every cusp place of X₀(N) arises from a slot
ModularCurve.exists_slot_of_isCusp151 below · depth 12 - Valuation subring of a place's adic valuation
AlgebraicCurve.Place.adicValuation_valuationSubring0 below · depth 13 - Adelic Weil duality over an algebraically closed constant field
AlgebraicCurve.weilDualityAdelic_of_isAlgClosed69 below · depth 13 - Places above a finite j-value as ℚ̄-points of the coordinate ring
ModularCurve.nonempty_equiv_place_pos_ord_algHom_integralClosure143 below · depth 13 - ordᵤ(X)≥ 0 for every place u≠∞ of K(X)
AlgebraicCurve.RationalFunctionField.ord_X_nonneg_of_ne_placeInfty23 below · depth 14 - ord_∞(X) = -1 on the rational function field
AlgebraicCurve.RationalFunctionField.ord_placeInfty_X23 below · depth 14 - Weil differentials form a rank-one F-module for curves
AlgebraicCurve.weilDifferentialRankOne_of_isCurveOver26 below · depth 14 - Representability of relative Pic⁰ under two-line degenerations
AlgebraicGeometry.RelPicard.exists_representsRelSubPic_algEquivZeroCut_of_smoothLocus_of_twoLineDegenerations628 below · depth 14 - Package fibre dictionary and centre-pinned model read equal places
ModularCurve.DRModelPackageLevel.pointEquivPlace_efib_inv_eq_congrRingEquiv_pointEquivPlace_of_finChart_centrePin126 below · depth 14 - Centre pins for the chart-pinned generic fibre of the Igusa scheme
ModularCurve.IgusaScheme.coeffEmb_sub_mem_nonunits_pointEquivPlace_ofGenerator_of_chartPin0 below · depth 14 - Centre pins on special fibres of the Igusa scheme
ModularCurve.IgusaScheme.exists_spBase_and_cuspChart_centrePin_of_genericFibre_iso_ofGenerator815 below · depth 14 - Reduction of Igusa-scheme points matches the fibre model's specialisation of places
ModularCurve.IgusaScheme.pointReduction_eq_congr_spPlace_of_cuspChart_centrePin191 below · depth 14 - Reduction of principal divisors on the projective line
AlgebraicCurve.RationalFunctionField.mapDomain_eq_ord_div_map_of_primitive14 below · depth 15 - Divisor of X-b on the rational function field
AlgebraicCurve.RationalFunctionField.ord_X_sub_C37 below · depth 15 - The place t=a differs from the place at infinity
AlgebraicCurve.RationalFunctionField.placeOfPoint_ne_placeInfty1 below · depth 15 - Weil reciprocity for the rational function field
AlgebraicCurve.RationalFunctionField.weilReciprocity37 below · depth 15 - Relative Pic⁰ on a basic open, two-line degenerations
AlgebraicGeometry.RelPicard.forall_prime_exists_representsRelSubPic_algEquivZeroCut_baseChange_away_of_smoothLocus_of_twoLineDegenerations627 below · depth 15 - Algebraically trivial bundle with a section on two glued lines
AlgebraicGeometry.TwoGluedProjectiveLines.nonempty_iso_unit_of_isAlgEquivZero_of_ne_zero331 below · depth 15 - Centre-pinned specialisation of places on the finite j-chart
ModularCurve.CharPModel.FibreModel.placeFullC_eq_congr_spPlace_of_finChart_centrePin186 below · depth 15 - Centre-pinned specialisation of places on the pole chart at a cusp
ModularCurve.CharPModel.FibreModel.placeFullC_eq_congr_spPlace_of_infChart_centrePin_of_mem_maximalIdeal184 below · depth 15 - Local pools of disjoint étale multisections near the cusp
ModularCurve.DRModelPackage.exists_locallySplitPools_of_five_le1,048 below · depth 15 - Places extend along an integral map of function fields
AlgebraicCurve.Place.exists_restrictAlong_eq_of_finiteDimensional_fieldRange4 below · depth 16 - Double transitivity of k(t)-automorphisms on rational places
AlgebraicCurve.RationalFunctionField.exists_algEquiv_congrRingEquiv_placeInfty_eq_placeOfPoint_zero_eq53 below · depth 16 - Chart divisors from a split pool of sections cover Pic⁰
AlgebraicGeometry.RelPicard.exists_chart_subsingleton_H1_fibre_of_blocks_of_injective413 below · depth 16 - Block general position for a split pool on geometric fibres
AlgebraicGeometry.RelPicard.exists_injective_forall_subsingleton_H1_of_blocks_of_pool_of_bijective_sections406 below · depth 16 - Openness of the algebraically-trivial locus for twisted divisor bundles
AlgebraicGeometry.RelPicard.exists_opens_range_subset_iff_isAlgEquivZero_twistModule_baseChange_of_twoLineDegenerations430 below · depth 16 - Fibrewise zero schemes as degree-g divisors inside U
AlgebraicGeometry.RelPicard.exists_relEffCartierDiv_I_eq_zeroSchemeIdeal_chartModule_fibre372 below · depth 16 - LFP-surjectivity of the base-changed Pic⁰ presheaf
AlgebraicGeometry.RelPicard.isLFPSurj_relSubPicPresheaf_algEquivZeroCut_baseChange_of_twoLineDegenerations440 below · depth 16 - Graph chart divisors lie on the ε-component of non-smooth fibres
AlgebraicGeometry.RelPicard.preimage_support_prodKerGraph_subset_connectedComponentIn_of_blocks0 below · depth 16 - Line bundles on two glued projective lines: Čech model
AlgebraicGeometry.TwoGluedProjectiveLines.exists_linearEquiv_sectionsOf_gluedLinesSections_and_eulerChar_pullback_of_isAlgClosed327 below · depth 16 - Locally split pools at primes 𝔭⊆(ℓ), ℓ≠ p
ModularCurve.DRModelPackage.exists_locallySplitPools_of_le_span_of_ne846 below · depth 16 - Locally split pools at primes above p
ModularCurve.DRModelPackage.exists_locallySplitPools_of_le_span_prime487 below · depth 16 - Chart rings of a smooth proper model of K(T)
AlgebraicCurve.CurveModel.range_sections_eq_map_eval2_polyPart_invPolyPart_of_coe_eq_compl6 below · depth 17 - Order at infinity under reduction of E(X) to K(X)
AlgebraicCurve.RationalFunctionField.ord_placeInfty_eq_ord_placeInfty_add_sum_ord_placeOfPoint_of_reduction51 below · depth 17 - Weil differentials bounded by W are F-proportional
AlgebraicCurve.exists_weilSmul_eq_of_riemannIndexFormula23 below · depth 17 - Attained Riemann genus equals the canonical genus
AlgebraicCurve.riemannGenusReached_of_stichtenothGenusExists23 below · depth 17 - Adelic index formula from an attained Riemann genus
AlgebraicCurve.riemannIndexFormula_of_genusReached23 below · depth 17 - Chart killing Čech H¹ on a non-smooth geometric fibre
AlgebraicGeometry.RelPicard.exists_chart_subsingleton_H1_fibre_of_blocks_of_not_smooth363 below · depth 17 - Block general position at a two-line degenerate geometric fibre
AlgebraicGeometry.RelPicard.exists_injective_forall_subsingleton_H1_of_blocks_of_twoLineDegeneration_of_sectionInSmoothLocus364 below · depth 17 - Openness of the Pic⁰ locus along the degeneration locus
AlgebraicGeometry.RelPicard.exists_isOpen_inter_preimage_eq_setOf_isAlgEquivZero_fibre_of_smoothLocus_of_twoLineDegenerations400 below · depth 17 - Zero schemes on non-smooth two-line geometric fibres
AlgebraicGeometry.RelPicard.exists_relEffCartierDiv_I_eq_zeroSchemeIdeal_chartModule_fibre_of_not_smooth_of_isReduced369 below · depth 17 - Degree-g divisors cutting out sections on smooth geometric fibres
AlgebraicGeometry.RelPicard.exists_relEffCartierDiv_I_eq_zeroSchemeIdeal_chartModule_fibre_of_smooth267 below · depth 17 - Point-independence of algebraic triviality of fibres under two-line degeneration
AlgebraicGeometry.RelPicard.isAlgEquivZero_fibre_of_range_subset_singleton_of_twoLineDegenerations335 below · depth 17 - Chart rings of two projective lines glued at nodes
AlgebraicGeometry.TwoGluedProjectiveLines.exists_algEquiv_cover_gluedLinesCover8 below · depth 17 - Anchored chart dictionary for two transversally glued projective lines
AlgebraicGeometry.TwoGluedProjectiveLines.exists_algEquiv_cover_gluedLinesCover_eval2_apply_eq8 below · depth 17 - Node-ratio invariant for two glued projective lines
AlgebraicGeometry.TwoGluedProjectiveLines.exists_nodeRatioHom72 below · depth 17 - Riemann–Roch in genus 0: dim_k L(E)=max(deg E+1,0)
AlgebraicCurve.finiteDimensional_and_finrank_riemannRochSpace_of_ringEquiv_ratFunc45 below · depth 18 - Euler characteristic g+1 on the first line of a degenerate fibre
AlgebraicGeometry.RelPicard.eulerChar_pullback_firstLine_sectionTwist_tensor_idealModule_eq259 below · depth 18 - Euler characteristic g+1 on the section component of a two-line fibre
AlgebraicGeometry.RelPicard.eulerChar_pullback_tensor_invModule_pow_ker_tensor_module_prod_ker_eq_of_twoLineDegeneration263 below · depth 18 - Vanishing H¹ and h⁰=1 on a two-line fibre
AlgebraicGeometry.RelPicard.subsingleton_H1_and_finrank_H0_fibre_of_twoGluedProjectiveLines357 below · depth 18 - Two lines glued at s points: s = g+1
AlgebraicGeometry.TwoGluedProjectiveLines.eq_finrank_H1_add_one_of_finrank_H0_eq_one330 below · depth 18 - Zeros of a section on two glued rational curves
AlgebraicGeometry.TwoGluedProjectiveLines.exists_relEffCartierDiv_I_eq_zeroSchemeIdeal_and_supportedIn_of_ne_zero_of_pos339 below · depth 18 - Two-glued-lines presentation transports along an isomorphism of k-schemes
AlgebraicGeometry.TwoGluedProjectiveLines.exists_twoAffineOpenCover_presentation_comp_iso0 below · depth 18 - Multidegree (s-1,0) bundles on two glued lines: h⁰=1, H¹=0
AlgebraicGeometry.TwoGluedProjectiveLines.finrank_H0_sectionsOf_eq_one_and_subsingleton_H1_of_eulerChar_pullback_eq_of_isAlgClosed331 below · depth 18 - Trivial pullbacks of L force h⁰(M_±)<2
AlgebraicGeometry.TwoGluedProjectiveLines.finrank_H0_twists_lt_two_of_nonempty_pullback_iso_unit334 below · depth 18 - Bundles trivial on both lines of a transversal gluing are algebraically equivalent to zero
AlgebraicGeometry.TwoGluedProjectiveLines.isAlgEquivZero_of_pullback_iso_unit18 below · depth 18 - Triviality on both lines when h⁰ of both twists is <2
AlgebraicGeometry.TwoGluedProjectiveLines.nonempty_pullback_iso_unit_of_finrank_H0_twists_lt_two334 below · depth 18 - Atkin–Lehner toggle at q and Vélu quotients of moduli places
ModularCurve.congrEquiv_moduliPlace_eq_moduliPlace_fullKernelQuotient_of_atkinLehner136 below · depth 18 - Rational functions with trivial divisor are constant
AlgebraicCurve.RationalFunctionField.exists_algebraMap_of_forall_ord_eq_zero37 below · depth 19 - Twisted Lagrange interpolation in L(E) on a rational function field
AlgebraicCurve.exists_mem_riemannRochSpace_forall_hasValue_zpow_mul_of_ringEquiv_ratFunc45 below · depth 19 - Genus-zero Riemann–Roch: L(E-w) is properly contained in L(E)
AlgebraicCurve.exists_mem_riemannRochSpace_not_mem_sub_single_of_ringEquiv_ratFunc45 below · depth 19 - dim_K Ω_F(D) = ℓ((ω) - D)
AlgebraicCurve.finrank_omegaSpace_eq_ell_canonical_sub_of_genusReached23 below · depth 19 - Dimension bound for twisted node-compatible pairs of sections
AlgebraicCurve.finrank_twistedNodeCompatible_add_min_card_le_of_ringEquiv_ratFunc45 below · depth 19 - Uniqueness up to isomorphism of node-unit modules
AlgebraicGeometry.TwoGluedProjectiveLines.IsNodeUnitModule.nonempty_iso0 below · depth 19 - Node-unit modules are stable under base change in T
AlgebraicGeometry.TwoGluedProjectiveLines.IsNodeUnitModule.pullback_baseChangeSnd4 below · depth 19 - Čech cohomology of a bundle on two glued projective lines
AlgebraicGeometry.TwoGluedProjectiveLines.exists_finrank_H0_sectionsOf_eq_finrank_H0_gluedLinesSections_and_eulerChar_pullback_of_isAlgClosed328 below · depth 19 - Existence of node-unit line bundles on two glued lines
AlgebraicGeometry.TwoGluedProjectiveLines.exists_isInvertible_isNodeUnitModule2 below · depth 19 - Bundle trivial on both lines is a node-unit module
AlgebraicGeometry.TwoGluedProjectiveLines.exists_isNodeUnitModule_pullback_of_pullback_iso_unit12 below · depth 19 - Structure sheaf of two glued lines is a node-unit module
AlgebraicGeometry.TwoGluedProjectiveLines.isNodeUnitModule_one_unit0 below · depth 19 - Glued sections on two rational curves: a dimension bound
AlgebraicCurve.finrank_nodeCompatible_add_min_card_le_of_ringEquiv_ratFunc45 below · depth 20 - Genus-zero Riemann–Roch for effective divisors
AlgebraicCurve.finrank_riemannRochSpace_eq_degree_add_one_of_ringEquiv_ratFunc45 below · depth 20 - Matching places give equal κ-points of the ambient scheme
AlgebraicGeometry.TwoGluedProjectiveLines.pointAt_comp_eq_pointAt_comp0 below · depth 20 - Residue commutes with trace through the completion
AlgebraicCurve.residueTraceCompletionCommute_v24 below · depth 21 - Transport of a curve model along a K-isomorphism of function fields
AlgebraicCurve.CurveModel.exists_curveModel_iso_ffEquiv_symm_germToFunctionField_eq_of_algEquiv0 below · depth 22 - Tate's residue equals the trace of the local residue
AlgebraicCurve.tateAgreement_v20 below · depth 22 - Transport of a curve model along a K-algebra isomorphism
AlgebraicCurve.CurveModel.exists_curveModel_iso_of_algEquiv0 below · depth 23 - Ramification index along a cover equals ord_w(φ(X)-a)
AlgebraicCurve.Place.ramificationIndexAlong_eq_ord_sub_of_restrictAlong_eq_placeOfPoint38 below · depth 24 - Transport of places along an isomorphism commutes with restriction
AlgebraicCurve.Place.restrictAlong_congrEquiv_and_existsUnique_iff0 below · depth 25 - Polynomials lie in every place other than ∞
AlgebraicCurve.RationalFunctionField.algebraMap_polynomial_mem_of_ne_placeInfty23 below · depth 25 - Value at infinity: f(∞)=c when deg(f-c)<0
AlgebraicCurve.RationalFunctionField.evalAt_placeInfty_eq37 below · depth 25 - Evaluation at the place t=a of K(t) is q ↦ q(a)
AlgebraicCurve.RationalFunctionField.evalAt_placeOfPoint_algebraMap37 below · depth 25 - ∞-side cusp law for the prolongation datum at p ∥ M
ModularCurve.XHDRModelAtP.cuspLawInfty_prolongationDatum_offDiag_of_residue1,248 below · depth 25 - Zero-side cusp law for the Deligne–Rapoport prolongation datum
ModularCurve.XHDRModelAtP.cuspLawZero_prolongationDatum_offDiag1,249 below · depth 25 - First divisor law for the prolongation datum at p ∥ M
ModularCurve.XHDRModelAtP.divisorLawFst_prolongationDatum_of_norm_of_typeDichotomy_of_localSemicontinuity_of_poleCancellation271 below · depth 25 - Second divisor law from the first at p ∥ M
ModularCurve.XHDRModelAtP.divisorLawSnd_prolongationDatum_of_divisorLawFst_of_norm_of_typeDichotomy58 below · depth 25 - Both cuspidal sides lie above a non-affine place
ModularCurve.XHDRModelAtP.exists_isInftySide_reduceFst_eq_and_isZeroSide_reduceSnd_eq_of_not_isAffinePlace_prolongationDatum1,102 below · depth 25 - Reduction of the norm along α of a doubly integral function
ModularCurve.XHDRModelAtP.exists_mapDomain_sp_eq_ord_and_ord_frob_eq_add_of_norm_of_prolongationDatum433 below · depth 25 - Off-diagonal semicontinuity for the prolongation datum at p ‖ M
ModularCurve.XHDRModelAtP.localSemicontinuity_prolongationDatum_offDiag1,284 below · depth 25 - Fixed-place order law from the reduced norm datum
ModularCurve.XHDRModelAtP.orderLawFixed_prolongationDatum_of_norm56 below · depth 25 - Pole cancellation for common units of a prolongation datum
ModularCurve.XHDRModelAtP.poleCancellation_prolongationDatum64 below · depth 25 - Refining a semistable covering into width-one annuli
AlgebraicCurve.SemistableCovering.exists_circleCharts_and_bands_width_one_of_discFibres_of_rankOne97 below · depth 26 - Cusp local semicontinuity for both prolongation residues
ModularCurve.XHDRModelAtP.cuspLocalSemicontinuity_prolongationDatum_of_residue1,218 below · depth 26 - A-section through a non-crossing point of the special fibre
ModularCurve.XHDRModelAtP.exists_section_of_not_mem_range_comp946 below · depth 26 - Cuspidal generic place iff non-affine special point
ModularCurve.XHDRModelAtP.isCuspidal_iff_not_isAffinePlace_placeOfPoint_of_section_comp905 below · depth 26 - Non-affine first reduction forces a cuspidal place
ModularCurve.XHDRModelAtP.isCuspidal_of_not_isAffinePlace_reduceFst_prolongationDatum597 below · depth 26 - Cuspidal place specialising into component 0 is ∞-side
ModularCurve.XHDRModelAtP.isInftySide_of_isCuspidal_of_section_comp_zero430 below · depth 26 - Cuspidal section closing on component 1 lies on the zero side
ModularCurve.XHDRModelAtP.isZeroSide_of_isCuspidal_of_section_comp_one512 below · depth 26 - Norm identity for the first reduction map at level Γ_H
ModularCurve.XHDRModelAtP.mapDomain_reduceFst_eq_ord_add_ord_of_norm_prolongationDatum55 below · depth 26 - Norm identity for a Γ_H prolongation datum
ModularCurve.XHDRModelAtP.mapDomain_reduceFst_eq_ord_add_ord_of_norm_prolongationDatum_min55 below · depth 26 - Zero-side places: Frobenius of the second reading is non-affine
ModularCurve.XHDRModelAtP.not_isAffinePlace_frob_reduceSnd_of_isZeroSide_prolongationDatum987 below · depth 26 - ∞-side places reduce to non-affine places under the first reading
ModularCurve.XHDRModelAtP.not_isAffinePlace_reduceFst_of_isInftySide_prolongationDatum595 below · depth 26 - Sections closing on component 1 are not ∞-side
ModularCurve.XHDRModelAtP.not_isInftySide_of_section_comp_one452 below · depth 26 - Cusps of the special fibre lie on one component only
ModularCurve.XHDRModelAtP.not_mem_range_comp_of_not_isAffinePlace_placeOfPoint54 below · depth 26 - Zero-side places: first reading equals Frobenius of second reading
ModularCurve.XHDRModelAtP.reduceFst_eq_frob_reduceSnd_of_isZeroSide_prolongationDatum449 below · depth 26 - Circle charts inside an annulus over a valuation ring
AlgebraicCurve.Annulus.exists_componentChart_ratFunc_of_valuation_lt_of_exists_lt52 below · depth 27 - Residue theorem over a perfect constant field
AlgebraicCurve.residueTheorem_of_perfectField65 below · depth 27 - Local semicontinuity at the ∞-side cusps, first prolongation
ModularCurve.XHDRModelAtP.cuspLocalSemicontinuityInfty_prolongationDatum_of_residue905 below · depth 27 - Semicontinuity of 0-side cusp orders under the second reduction
ModularCurve.XHDRModelAtP.cuspLocalSemicontinuityZero_prolongationDatum_of_residue1,217 below · depth 27
… and 20 more statements (search for the module name to find them).