Definitions/Def_ModularCurve_DRModelPackageCrossingFrame.lean
Branch ideals and crossing points on base-changed Deligne–Rapoport models
Two groups of definitions are made. First, for an arbitrary scheme X and a specialisation \xi \rightsquigarrow x of points of X, the branch ideal branchIdeal is the preimage of the maximal ideal of the local ring \mathcal O_{X,\xi} under the specialisation map of stalks \mathcal O_{X,x} \to \mathcal O_{X,\xi}; it is recorded as a prime ideal of \mathcal O_{X,x}, and mem_branchIdeal_iff restates membership as the condition that the image of the germ in \mathcal O_{X,\xi} lies in the maximal ideal, i.e. that the section vanishes at \xi.
Second, in the setting of a prime p, a package \mathfrak X of data and properties for the two-chart integral model DRModel p of the modular function field with its Igusa j-coordinate, a commutative ring O, an algebraically closed field \kappa of characteristic p and a ring map O \to \kappa, the base change X_O := baseChangeO p O is the fibre product of DRModel.toBase p with \operatorname{Spec} of \mathbb Z \to O, and baseChangeO.toBase is its second projection X_O \to \operatorname{Spec} O. For o \in O, baseGerm is the germ at a point x of X_O of the global section of X_O obtained by pulling o back along this projection. For a point n of the fibre product of the two closed immersions \mathfrak X.compInf \kappa and \mathfrak X.compZero \kappa of the rational model ratModel \kappa into the geometric p-fibre, crossingPt is the image of n in X_O under the first projection followed by compInf \kappa and then the base-change map X_\kappa \to X_O. Finally ξinf and ξzero are the images in X_O of the generic point of ratModel \kappa under compInf \kappa, respectively compZero \kappa, followed by that base-change map.
Relation to Mathlib
Mathlib supplies the specialisation morphism of stalks stalkSpecializes; the prime ideal attached to a specialisation is introduced here. The remaining declarations are abbreviations naming particular fibre products, germs and images attached to the project's Deligne–Rapoport model package.
Where it is used
These names fix the objects used in the local analysis of the base-changed Deligne–Rapoport model at a crossing point of its geometric fibre in characteristic p: the two branches through such a point are recorded by the branch ideals at the generic points \xi_\infty, \xi_0 of the two components, and the image of p in the local ring is recorded by baseGerm. This local structure underlies the study of the p-fibre of X_0(p) used in the level-lowering part of the argument.
References
- P. Deligne and M. Rapoport, Les schémas de modules de courbes elliptiques, in: Modular Functions of One Variable II, Lecture Notes in Mathematics 349, Springer, 1973, 143–316
- B. Mazur, Modular curves and the Eisenstein ideal, Publications Mathématiques de l'IHÉS 47 (1977), 33–186
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 56 lines
- 9 declarations
- used in the statements of 22 theorems and imported by 30 proofs
- imports 1 definition modules
Source file: Definitions/Def_ModularCurve_DRModelPackageCrossingFrame.lean
Declarations
- def
AlgebraicGeometry.Scheme.branchIdeal - instance
AlgebraicGeometry.Scheme.branchIdeal_isPrime - theorem
AlgebraicGeometry.Scheme.mem_branchIdeal_iff - abbrev
ModularCurve.DRModelPackage.baseChangeO - abbrev
ModularCurve.DRModelPackage.baseChangeO.toBase - abbrev
ModularCurve.DRModelPackage.crossingPt - abbrev
ModularCurve.DRModelPackage.baseGerm - abbrev
ModularCurve.DRModelPackage.ξinf - abbrev
ModularCurve.DRModelPackage.ξzero
Source
import Mathlib import Definitions.Def_ModularCurve_DRResolvedModelPackageV4 set_option autoImplicit false open CategoryTheory CategoryTheory.Limits AlgebraicGeometry ModularCurve noncomputable section universe u namespace AlgebraicGeometry.Scheme def branchIdeal {X : Scheme.{u}} {ξ x : X} (h : ξ ⤳ x) : Ideal (X.presheaf.stalk x) := Ideal.comap (X.presheaf.stalkSpecializes h).hom (IsLocalRing.maximalIdeal (X.presheaf.stalk ξ)) instance branchIdeal_isPrime {X : Scheme.{u}} {ξ x : X} (h : ξ ⤳ x) : (branchIdeal h).IsPrime := Ideal.comap_isPrime _ _ theorem mem_branchIdeal_iff {X : Scheme.{u}} {ξ x : X} (h : ξ ⤳ x) (a : X.presheaf.stalk x) : a ∈ branchIdeal h ↔ (X.presheaf.stalkSpecializes h).hom a ∈ IsLocalRing.maximalIdeal (X.presheaf.stalk ξ) := Iff.rfl end AlgebraicGeometry.Scheme namespace ModularCurve.DRModelPackage variable {p : ℕ} [Fact p.Prime] (𝔛 : DRModelPackage p) (O : Type) [CommRing O] (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ] (toκ : O →+* κ) abbrev baseChangeO (p : ℕ) [Fact p.Prime] (O : Type) [CommRing O] : Scheme.{0} := pullback (DRModel.toBase p) (Spec.map (CommRingCat.ofHom (algebraMap ℤ O))) abbrev baseChangeO.toBase (p : ℕ) [Fact p.Prime] (O : Type) [CommRing O] : baseChangeO p O ⟶ Spec (CommRingCat.of O) := pullback.snd _ _ abbrev crossingPt (n : ↥(pullback (𝔛.compInf κ) (𝔛.compZero κ))) : ↥(baseChangeO p O) := (pullback.fst (𝔛.compInf κ) (𝔛.compZero κ) ≫ 𝔛.compInf κ ≫ DRModel.baseChangeMap toκ).base n abbrev baseGerm (x : ↥(baseChangeO p O)) (o : O) : (baseChangeO p O).presheaf.stalk x := (baseChangeO p O).presheaf.germ ⊤ x trivial ((baseChangeO.toBase p O).appTop ((Scheme.ΓSpecIso (CommRingCat.of O)).inv o)) abbrev ξinf : ↥(baseChangeO p O) := letI := (𝔛.ratModel κ).isIntegral (𝔛.compInf κ ≫ DRModel.baseChangeMap toκ).base (genericPoint (𝔛.ratModel κ).C) abbrev ξzero : ↥(baseChangeO p O) := letI := (𝔛.ratModel κ).isIntegral (𝔛.compZero κ ≫ DRModel.baseChangeMap toκ).base (genericPoint (𝔛.ratModel κ).C) end ModularCurve.DRModelPackage end
Statements phrased using this module (22)
- Branch ideals at x order-reverse specialisation of generisations
AlgebraicGeometry.Scheme.branchIdeal_le_branchIdeal_iff45 below · depth 19 - Germ of p regular and stalk dimension ≥ 2 at a crossing
ModularCurve.DRModelPackage.baseGerm_mem_nonZeroDivisors_and_two_le_ringKrullDim_stalk945 below · depth 19 - Branch ideals at a crossing meet in the ideal (p)
ModularCurve.DRModelPackage.branchIdeal_xiInf_inf_branchIdeal_xiZero_eq_span_baseGerm888 below · depth 19 - Transversality at a crossing: branch ideals sum to the maximal ideal
ModularCurve.DRModelPackage.branchIdeal_xiInf_sup_branchIdeal_xiZero_eq_maximalIdeal270 below · depth 19 - Each branch ideal at a crossing is generated by two elements
ModularCurve.DRModelPackage.exists_span_pair_baseGerm_eq_branchIdeal968 below · depth 19 - Ogg's unit at a crossing: tt' = p¹²
ModularCurve.DRModelPackage.exists_stalk_mul_eq_baseGerm_pow_and_isUnit_stalkSpecializes_of_crossing402 below · depth 19 - Incomparable branch ideals at a crossing point
ModularCurve.DRModelPackage.not_branchIdeal_le_branchIdeal_crossingPt253 below · depth 19 - An O/𝔪-rational crossing point is closed with residue field O/𝔪
ModularCurve.DRModelPackage.residue_baseGerm_surjective_and_isClosed_crossingPt0 below · depth 19 - Crossings lie over the j-finite chart
ModularCurve.DRModelPackage.crossingPt_mem_preimage_chartFin244 below · depth 20 - Maximal ideal at a crossing: branch ideal plus one generator
ModularCurve.DRModelPackage.exists_maximalIdeal_eq_branchIdeal_sup_span_singleton275 below · depth 20 - Branch ideals at a crossing meet in (varpi_A)
ModularCurve.XOneP.branchIdeal_inf_branchIdeal_eq_span_germ_stalk_of_forall_mem_range_twoChartModel_x1_mul1,191 below · depth 28 - Branch ideals proper, stalk dimension ≤ 2, uniformiser nonzero
ModularCurve.XOneP.branchIdeal_ne_maximalIdeal_and_ringKrullDim_stalk_le_two_and_germ_ne_zero_twoChartModel_x1_mul1,196 below · depth 28 - Transversality of the two branches in the stalk over A
ModularCurve.XOneP.branchIdeal_sup_branchIdeal_eq_maximalIdeal_stalk_of_isReduced_pullback_twoChartModel_x1_mul1,208 below · depth 28 - Transport of a crossing presentation to the base change over O
ModularCurve.XOneP.exists_crossingPresentation_stalk_baseChange_of_branchIdeal_eq_span_twoChartModel_x1_mul2,919 below · depth 28 - Branch generic points specialise to each crossing point
ModularCurve.XOneP.genericPoint_specializes_crossing_and_baseChange_twoChartModel_x1_mul0 below · depth 28 - Points over the closed point specialise from a branch
ModularCurve.XOneP.genericPoint_specializes_or_of_not_mem_basicOpen_baseChange_twoChartModel_x1_mul0 below · depth 28 - Images of the two components in X_O are closed
ModularCurve.XOneP.range_comp_baseChange_eq_closure_genericPoint_and_isClosed_twoChartModel_x1_mul1,205 below · depth 28 - Rationality and closedness at a crossing over O
ModularCurve.XOneP.residue_germ_surjective_and_isClosed_crossing_baseChange_twoChartModel_x1_mul0 below · depth 28 - Stalk at a crossing of the two-chart model has dimension ≥ 2
ModularCurve.XOneP.two_le_ringKrullDim_stalk_crossing_baseChange_of_injective_twoChartModel_x1_mul2,892 below · depth 28 - Germ at x of the vanishing ideal of ξ̄ is the branch ideal
AlgebraicGeometry.Scheme.IdealSheafData.map_germ_vanishingIdeal_closure_eq_branchIdeal0 below · depth 29 - Stalk kernels at a crossing are the branch ideals
AlgebraicGeometry.Scheme.ker_stalkMap_eq_branchIdeal_and_branchIdeal_sup_branchIdeal_eq_maximalIdeal_of_isReduced_pullback3 below · depth 29 - Branch ideals extend to the geometric special fibre at a crossing
ModularCurve.XOneP.map_stalkMap_branchIdeal_eq_branchIdeal_specialFibre_twoChartModel_x1_mul1,208 below · depth 29