Definitions/Def_AlgebraicCurve_PlacesOf.lean
Places of the function field centred in an open subscheme
Throughout, K is a field and C an integral scheme equipped with a morphism c\colon C \to \operatorname{Spec} K; the function field C.\mathrm{functionField}, i.e. the stalk of \mathcal O_C at the generic point, is regarded as a K-algebra via the ring homomorphism AlgebraicCurve.baseToFunctionField c (the inverse of the \Gamma–\operatorname{Spec} adjunction isomorphism, followed by the map on global sections induced by c, followed by the germ at the generic point). Recall that an element of AlgebraicCurve.Place K F is a valuation subring \mathcal O_v \subseteq F that contains the image of K, is not all of F, and is a principal ideal ring (hence a discrete valuation ring).
For an open subscheme U of C, AlgebraicCurve.placesOf c U is defined to be the set of places v of K(C)/K that admit a centre in U: those v for which there is a point x \in U whose singleton \{x\} is closed in C and such that the image of the canonical map \mathcal O_{C,x} \to K(C), taken as a subring of K(C), is exactly \mathcal O_v. This is a definition of vocabulary only: no regularity, properness or smoothness is assumed, and nothing is asserted about existence or uniqueness of such a centre.
The accompanying lemmas record the elementary behaviour of this set as a function of U: mem_placesOf_iff restates membership in the above existential form; placesOf_mono gives U \le V \Rightarrow \mathtt{placesOf}\,c\,U \subseteq \mathtt{placesOf}\,c\,V; placesOf_sup gives \mathtt{placesOf}\,c\,(U \sqcup V) = \mathtt{placesOf}\,c\,U \cup \mathtt{placesOf}\,c\,V, since a centre lying in the union of two opens lies in one of them; and placesOf_bot gives \mathtt{placesOf}\,c\,\bot = \varnothing. Compatibility with intersections, and surjectivity onto all places for U = C, are not formal consequences of the definition and belong to the theory of smooth proper curves.
Relation to Mathlib
Built on Mathlib's Scheme.functionField and stalk machinery, but the notion of a place of F/K used here is the project's own structure AlgebraicCurve.Place (a valuation subring of F over K, proper and a principal ideal ring), and Mathlib has no notion of the set of places centred in a given open subscheme.
Where it is used
This vocabulary lets statements about a curve over K be phrased simultaneously in scheme-theoretic and function-field terms: sections of \mathcal O_C over an affine open are compared with the intersection of the valuation rings \mathcal O_v for v centred in that open, and Čech computations for a cover by two affine opens are matched with their function-field counterparts. Such comparisons feed the divisor and Jacobian theory of curves used in the arithmetic input to the proof.
References
- R. Hartshorne, Algebraic Geometry, Graduate Texts in Mathematics 52, Springer, 1977, Chapter I §6 and Chapter II §6
- H. Stichtenoth, Algebraic Function Fields and Codes, 2nd edition, Springer, 2009, Chapter I
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 61 lines
- 5 declarations
- used in the statements of 33 theorems and imported by 47 proofs
- imports 2 definition modules
Source file: Definitions/Def_AlgebraicCurve_PlacesOf.lean
Imported by
Declarations
- def
AlgebraicCurve.placesOf - theorem
AlgebraicCurve.mem_placesOf_iff - theorem
AlgebraicCurve.placesOf_mono - theorem
AlgebraicCurve.placesOf_sup - theorem
AlgebraicCurve.placesOf_bot
Source
import Mathlib.AlgebraicGeometry.FunctionField ↗ import Definitions.Def_AlgebraicCurve_DivisorClassGroup import Definitions.Def_AlgebraicCurve_CurveModel set_option autoImplicit false noncomputable section open CategoryTheory AlgebraicGeometry universe u namespace AlgebraicCurve variable {K : Type u} [Field K] {C : Scheme.{u}} (c : C ⟶ Spec (CommRingCat.of K)) [IsIntegral C] def placesOf (U : C.Opens) : letI := (baseToFunctionField c).toAlgebra Set (Place K C.functionField) := letI := (baseToFunctionField c).toAlgebra {v | ∃ x : C, x ∈ U ∧ IsClosed ({x} : Set C) ∧ (algebraMap (C.presheaf.stalk x) C.functionField).range = v.toValuationSubring.toSubring} theorem mem_placesOf_iff (U : C.Opens) : letI := (baseToFunctionField c).toAlgebra ∀ v : Place K C.functionField, v ∈ placesOf c U ↔ ∃ x : C, x ∈ U ∧ IsClosed ({x} : Set C) ∧ (algebraMap (C.presheaf.stalk x) C.functionField).range = v.toValuationSubring.toSubring := fun _ => Iff.rfl theorem placesOf_mono {U V : C.Opens} (h : U ≤ V) : letI := (baseToFunctionField c).toAlgebra placesOf c U ⊆ placesOf c V := by rintro v ⟨x, hxU, hx, hv⟩ exact ⟨x, h hxU, hx, hv⟩ theorem placesOf_sup (U V : C.Opens) : letI := (baseToFunctionField c).toAlgebra placesOf c (U ⊔ V) = placesOf c U ∪ placesOf c V := by letI := (baseToFunctionField c).toAlgebra apply Set.Subset.antisymm · rintro v ⟨x, hxUV, hx, hv⟩ rcases (show x ∈ (U : Set C) ∪ (V : Set C) from hxUV) with h | h · exact Or.inl ⟨x, h, hx, hv⟩ · exact Or.inr ⟨x, h, hx, hv⟩ · rintro v (h | h) · exact placesOf_mono c le_sup_left h · exact placesOf_mono c le_sup_right h theorem placesOf_bot : letI := (baseToFunctionField c).toAlgebra placesOf c (⊥ : C.Opens) = ∅ := by letI := (baseToFunctionField c).toAlgebra ext v simp only [Set.mem_empty_iff_false, iff_false] rintro ⟨x, hx, -, -⟩ exact hx end AlgebraicCurve end
Statements phrased using this module (33)
- Riemann–Roch in two-chart Čech form for 𝒪(D)
AlgebraicCurve.finrank_H0_H1_sectionsOf_of_range_eq_lSpaceOn76 below · depth 16 - Čech cohomology of mathcal O_C computed by places
AlgebraicCurve.nonempty_linearEquiv_cechH0_and_cechH18 below · depth 16 - Two-chart Čech cohomology of an invertible sheaf as L(D) Čech cohomology
AlgebraicCurve.nonempty_linearEquiv_cechH0_and_cechH1_sectionsOf11 below · depth 16 - Two proper opens of a smooth proper curve exhaust the places
AlgebraicCurve.placesOf_union_eq_univ_of_sup_eq_top7 below · depth 16 - Invertible sheaf on a smooth curve is L(D)
AlgebraicGeometry.Scheme.Modules.IsInvertible.exists_divisor_range_eq_lSpaceOn9 below · depth 16 - Structure sheaf as L_{S_U}(0) inside the function field
AlgebraicGeometry.Scheme.Modules.exists_unit_range_eq_lSpaceOn_zero7 below · depth 16 - Divisor of mathcal I_P^{ n} and its dual at a point
AlgebraicGeometry.Scheme.Modules.isPrincipal_sub_single_of_presentation_ker_pow99 below · depth 16 - Tensor product of invertible sheaves adds divisors up to principal
AlgebraicGeometry.Scheme.Modules.isPrincipal_sub_sub_of_presentations_tensor85 below · depth 16 - Čech h⁰=1 and h¹= genus for smooth proper curves
AlgebraicCurve.finite_H0_H1_structureSheaf_of_isAlgClosed79 below · depth 17 - Two-chart Čech cohomology of a module realised as L(D)
AlgebraicCurve.nonempty_linearEquiv_cechH0_and_cechH1_sectionsOf_of_range_eq_lSpaceOn1 below · depth 17 - Divisor presenting the dual of an invertible ideal sheaf
AlgebraicGeometry.Scheme.IdealSheafData.IsInvertible.exists_divisor_range_invModule_eq_lSpaceOn25 below · depth 17 - Divisor presentation of an invertible ideal sheaf on a curve
AlgebraicGeometry.Scheme.IdealSheafData.IsInvertible.exists_divisor_range_module_eq_lSpaceOn15 below · depth 17 - Two 𝒪(D)-presentations of a sheaf differ by a principal divisor
AlgebraicGeometry.Scheme.Modules.exists_eq_mul_and_eq_add_ord_of_presentations75 below · depth 17 - Čech H⁰,H¹ of mathcal O_C on a two-affine cover
AlgebraicCurve.finite_H0_H1_structureSheaf_of_smoothProperCurve26 below · depth 18 - Norm–pull-back endomorphism acts by trace on Čech H¹
AlgebraicGeometry.RelPicard.IsDeformationClassMap.exists_cechH1ToH1_germ_eq_traceAlong_of_classifies_normModule_pullback_of_mono129 below · depth 25 - Degeneracy roof at the generic fibre: function-field Hecke correspondence
ModularCurve.exists_functionField_degeneracyRoof_kaehlerToFunctionField_eq_correspondence_of_res_eq_heckeDiffBar208 below · depth 25 - Correspondence identity in H¹ descends along trivial base change
AlgebraicCurve.cechH1ToH1_corrH1_of_pullback_specMap_self15 below · depth 26 - Places off the chart U₁ are the section points
AlgebraicCurve.exists_embedding_place_range_eq_compl_placesOf_of_isSectional7 below · depth 26 - Germ comparison of Čech H¹ with function-field H¹(0)
AlgebraicCurve.exists_linearEquiv_structureSheafH1_cechH18 below · depth 26 - Sections on U∩ V are regular at places centred in U and in V
AlgebraicCurve.germToFunctionField_inf_mem_lSpaceOn_inter_placesOf2 below · depth 26 - Tangent action of a norm-pull-back endomorphism over a field
AlgebraicGeometry.RelPicard.IsDeformationClassMap.exists_cechH1ToH1_germ_eq_traceAlong_of_classifies_normModule_pullback_of_field74 below · depth 26 - Moduli description of an endomorphism transported to the base change
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.nonempty_poincare_pullbackAlong_iso_rigidify_normModule_baseChange58 below · depth 26 - Degeneracy roof at q over the generic fibre
ModularCurve.exists_functionField_degeneracyRoof_lift_of_ratCurveModel4 below · depth 26 - Residue package for the two legs of the T_q degeneracy roof
ModularCurve.functionField_residuePackage_degeneracyRoof_of_finiteAlong85 below · depth 26 - Generic-fibre degeneracy roof for Hecke action on differentials
ModularCurve.kaehlerToFunctionField_eq_correspondence_degeneracyRoof_of_res_eq_heckeDiffBar161 below · depth 26 - Sections over U lie in L_{placesOf(U)}(0)
AlgebraicCurve.germToFunctionField_mem_lSpaceOn_placesOf1 below · depth 27 - Places centred in a preimage open set
AlgebraicCurve.placesOf_preimage_eq_preimage_restrictAlong_placesOf9 below · depth 27 - Cover independence of the répartition class of a deformation
AlgebraicGeometry.RelPicard.IsDeformationClassMap.cechH1ToH1_germ_eq_of_two_covers36 below · depth 27 - Generic germ of a relative trace is the function-field trace
AlgebraicGeometry.germToFunctionField_trace_eq_traceFunAlong_germToFunctionField1 below · depth 27 - Places centred in π⁻¹U restrict to places centred in U
AlgebraicCurve.placesOf_preimage_subset_preimage_restrictAlong_placesOf7 below · depth 28 - Places restricting into Pl_X(U) are centred over π⁻¹U
AlgebraicCurve.preimage_restrictAlong_placesOf_subset_placesOf_preimage7 below · depth 28 - Cross sections comparing two two-chart deformation representatives
AlgebraicGeometry.RelPicard.IsDeformationClassMap.exists_crossSections31 below · depth 28 - Presentation divisor of σ^*P is D' up to principal divisors
ModularCurve.JHNeronObjectAtP.exists_forall_divisor_congrRingEquiv_eq_add_ord_of_range_eq_lSpaceOn_restrict_poincare_pullbackAlong_of_barPt_comp_eq_pts118 below · depth 36