Definitions/Def_ModularCurve_DRResolvedModelChartsLevelRam.lean
Étale crossing charts on a ramified resolved Deligne–Rapoport model
The standing context is a prime q, a level N_0 with q \nmid N_0, a Deligne–Rapoport model package \mathfrak{X} for level N_0q, a commutative ring \mathcal{O} with a ring map \rho_{\mathcal{O}} from the base ring DRLevel.R q and an element \varpi \in \mathcal{O}, an algebraically closed residue field \kappa of characteristic q with \mathcal{O} \to \kappa, and a package \mathfrak{X}^{\mathrm{reg}} of type DRResolvedModelPackageLevelRam for these data.
The auxiliary definition crossingPt sends a node index n to a point of the base-changed model DRLevel.XO ρO: it is the image of \mathfrak{X}^{\mathrm{reg}}.\mathrm{nodeEquiv}(n), a point of the fibre product of the two component maps \mathfrak{X}.\mathrm{comp}\,\kappa\,0 and \mathfrak{X}.\mathrm{comp}\,\kappa\,1, under the first projection followed by \mathfrak{X}.\mathrm{comp}\,\kappa\,0 and then DRLevel.bcMap.
The structure DRResolvedModelChartsLevelRam, parametrised by a family F_c assigning to each e and each d \in \{0,\dots,e\} an ideal sheaf on Resolution ϖ e, is a pure data carrier: it asserts nothing by itself. Its fields give, for each node n of width e = \mathrm{width}(n): an open U_n of the base-changed model containing \mathrm{crossingPt}(n) and no other \mathrm{crossingPt}(m); an étale morphism f_n : U_n \to \operatorname{Spec} \mathcal{O}[x,y]/(xy-\varpi^{e}), commuting with the structure morphisms to \operatorname{Spec}\mathcal{O}, such that f_n(y) lies in D(x) \cup D(y) exactly when y \neq \mathrm{crossingPt}(n); injectivity of the second projection of U_n \times_{\operatorname{Spec}\mathcal{O}[x,y]/(xy-\varpi^{e})} \mathrm{Res}_e on points whose first projection is \mathrm{crossingPt}(n); a morphism g_n from \mathrm{toDR}^{-1}(U_n) to \mathrm{Res}_e together with an isomorphism \Phi_n from that fibre product onto \mathrm{toDR}^{-1}(U_n) carrying the two projections to the restriction of \mathrm{toDR} and to g_n; and the labelling condition that, for each d, the component ideal sheaf of the package at chain position d over n, pulled back to \mathrm{toDR}^{-1}(U_n), agrees with the pull-back of F_c^{(e)}(d) along g_n. Étaleness of each f_n is registered as an instance.
Relation to Mathlib
The ambient notions (Etale, pullback, Scheme.IdealSheafData and its comap) are Mathlib's; the target schemes \operatorname{Spec}\mathcal{O}[x,y]/(xy-t) and their chart-by-chart resolutions Resolution are defined in the project, and Mathlib has no notion of étale local charts on a model of a modular curve.
Where it is used
These charts pin down the local structure of a regular model of X_0(N_0q) over a possibly ramified base at each crossing point of its special fibre, identifying a neighbourhood in the resolution with the standard resolution of xy = \varpi^{e} and matching the model's component ideal sheaves with the standard labelled ones. That identification is what makes the component and intersection bookkeeping on the special fibre at q available, as needed for the study of the Jacobian of X_0(N_0q) in characteristic q underlying level lowering.
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. Edixhoven, Minimal resolution and stable reduction of X_0(N), Annales de l'Institut Fourier 40 (1990), 31–67
- N. M. Katz and B. Mazur, Arithmetic Moduli of Elliptic Curves, Annals of Mathematics Studies 108, Princeton University Press, 1985
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 58 lines
- 14 declarations
- used in the statements of 19 theorems and imported by 21 proofs
- imports 2 definition modules
Source file: Definitions/Def_ModularCurve_DRResolvedModelChartsLevelRam.lean
Imported by
- no other definition module
Declarations
- def
ModularCurve.DRResolvedModelPackageLevelRam.crossingPt - structure
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.U - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.mem_U - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.not_mem_U - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.f - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.etale - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.f_over - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.f_mem_Vc_iff - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.y - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.hinj - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.g - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.label - field
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.Fc
Source
import Mathlib import Definitions.Def_ModularCurve_DRResolvedModelPackageLevelRam import Definitions.Def_MvPolynomial_CrossingResolutionScheme set_option autoImplicit false open CategoryTheory CategoryTheory.Limits AlgebraicGeometry MvPolynomial MvPolynomial.CrossingQuotient noncomputable section namespace ModularCurve variable {N₀ q : ℕ} [NeZero N₀] [Fact q.Prime] attribute [local instance] DRModelPackageLevel.neZero_mul namespace DRResolvedModelPackageLevelRam variable {hqN : ¬ q ∣ N₀} {𝔛 : DRModelPackageLevel N₀ q hqN} {O : Type} [CommRing O] {ρO : DRLevel.R q →+* O} {ϖ : O} {κ : Type} [Field κ] [CharP κ q] [IsAlgClosed κ] [DecidableEq κ] {toκ : O →+* κ} (𝔛reg : DRResolvedModelPackageLevelRam N₀ q 𝔛 O ρO ϖ κ toκ) def crossingPt (n : 𝔛reg.node) : ↥(DRLevel.XO (N₀ := N₀) ρO) := (pullback.fst (𝔛.comp κ (toκ.comp ρO) 0) (𝔛.comp κ (toκ.comp ρO) 1) ≫ 𝔛.comp κ (toκ.comp ρO) 0 ≫ DRLevel.bcMap ρO toκ).base (𝔛reg.nodeEquiv n) structure DRResolvedModelChartsLevelRam (Fc : ∀ e : ℕ, Fin (e + 1) → (Resolution ϖ e).IdealSheafData) where U : 𝔛reg.node → (DRLevel.XO (N₀ := N₀) ρO).Opens mem_U : ∀ n, 𝔛reg.crossingPt n ∈ U n not_mem_U : ∀ n m, m ≠ n → 𝔛reg.crossingPt m ∉ U n f : ∀ n, (U n).toScheme ⟶ crossingScheme (ϖ ^ 𝔛reg.width n) etale : ∀ n, Etale (f n) f_over : ∀ n, f n ≫ Spec.map (CommRingCat.ofHom (algebraMap O (CrossingQuotient O (ϖ ^ 𝔛reg.width n)))) = (U n).ι ≫ pullback.snd (DRLevel.toBase N₀ q) (Spec.map (CommRingCat.ofHom ρO)) f_mem_Vc_iff : ∀ n (y : U n), (f n).base y ∈ ((PrimeSpectrum.basicOpen (CrossingQuotient.U (ϖ ^ 𝔛reg.width n)) : (crossingScheme (ϖ ^ 𝔛reg.width n)).Opens) ⊔ (PrimeSpectrum.basicOpen (CrossingQuotient.V (ϖ ^ 𝔛reg.width n)) : (crossingScheme (ϖ ^ 𝔛reg.width n)).Opens)) ↔ (y : ↥(DRLevel.XO (N₀ := N₀) ρO)) ≠ 𝔛reg.crossingPt n hinj : ∀ n (y y' : ↥(pullback (f n) (Resolution.toCrossing ϖ (𝔛reg.width n)))), ((pullback.fst (f n) (Resolution.toCrossing ϖ (𝔛reg.width n))).base y).1 = 𝔛reg.crossingPt n → ((pullback.fst (f n) (Resolution.toCrossing ϖ (𝔛reg.width n))).base y').1 = 𝔛reg.crossingPt n → (pullback.snd (f n) (Resolution.toCrossing ϖ (𝔛reg.width n))).base y = (pullback.snd (f n) (Resolution.toCrossing ϖ (𝔛reg.width n))).base y' → y = y' g : ∀ n, (𝔛reg.toDR ⁻¹ᵁ (U n)).toScheme ⟶ Resolution ϖ (𝔛reg.width n) Φ : ∀ n, pullback (f n) (Resolution.toCrossing ϖ (𝔛reg.width n)) ≅ (𝔛reg.toDR ⁻¹ᵁ (U n)).toScheme Φ_fst : ∀ n, (Φ n).hom ≫ (𝔛reg.toDR ∣_ U n) = pullback.fst (f n) (Resolution.toCrossing ϖ (𝔛reg.width n)) Φ_snd : ∀ n, (Φ n).hom ≫ g n = pullback.snd (f n) (Resolution.toCrossing ϖ (𝔛reg.width n)) label : ∀ n (d : Fin (𝔛reg.width n + 1)), (𝔛reg.comp (DRResolvedModelPackageLevel.chainPos 𝔛reg.width n d)).comap (𝔛reg.toDR ⁻¹ᵁ (U n)).ι = (Fc (𝔛reg.width n) d).comap (g n) attribute [instance] DRResolvedModelChartsLevelRam.etale end DRResolvedModelPackageLevelRam end ModularCurve end
Statements phrased using this module (19)
- Existence of a resolved model with étale crossing charts
ModularCurve.DRModelPackageLevel.exists_dRResolvedModelPackageLevel_and_dRResolvedModelChartsLevelRam414 below · depth 17 - Depth-to-component dictionary for the resolved Deligne–Rapoport model
ModularCurve.DRModelPackageLevel.exists_nodeCoordinates_and_forall_mem_support_iff_chainPos_of_charts_of_sp_eq_spPlace2,052 below · depth 17 - Node widths of the resolved model equal place widths
ModularCurve.DRModelPackageLevel.forall_width_eq_of_charts_of_sp_eq_spPlace2,299 below · depth 17 - Node coordinates and chain position at one supersingular crossing
ModularCurve.DRModelPackageLevel.exists_nodeCoordinates_and_forall_mem_support_iff_chainPos_of_chartPresentation2,007 below · depth 18 - Function field of the O-model inside ℚ̄(X₀(N₀q))
ModularCurve.DRModelPackageLevel.exists_ringHom_functionField_pullback_forall_eq_algebraMap_and_coe_eq_coeffEmb0 below · depth 18 - Integrality of the q-adic base change of the Deligne–Rapoport model
ModularCurve.DRModelPackageLevel.isIntegral_pullback_toBase_specMap3 below · depth 18 - Non-emptiness of the finite Igusa chart over O
ModularCurve.DRModelPackageLevel.nonempty_preimage_iotaFin_pullback_toBase_specMap0 below · depth 18 - Local equation uv=q^ew at a node of the resolved model
ModularCurve.DRResolvedModelPackageLevelRam.DRResolvedModelChartsLevelRam.exists_chartPresentation_stalk189 below · depth 18 - Germ of j(q^q)-j^q vanishing along the first component
ModularCurve.DRModelPackageLevel.exists_germ_jq_sub_pow_and_stalkSpecializes_mem_maximalIdeal_comp_zero299 below · depth 19 - Maximal ideals preserved at crossings under base change
ModularCurve.DRModelPackageLevel.map_maximalIdeal_stalkMap_bcMap_eq_of_inertia_grain0 below · depth 19 - Germs at a supersingular crossing lie in the node ring
ModularCurve.DRModelPackageLevel.mem_nodeIntegers_of_stalk_of_specializes_of_nodeEquiv_eq1,993 below · depth 19 - Branch residues and orders at a supersingular crossing
ModularCurve.DRModelPackageLevel.nodeResidue_eq_zero_iff_and_ord_eq_of_specializes_of_mem_maximalIdeal364 below · depth 19 - Crossing coordinates are uniformisers on the two branches
ModularCurve.DRModelPackageLevel.ord_placeOfPoint_stalkMap_eq_one_of_span_eq_maximalIdeal0 below · depth 19 - Evaluation at a place equals pull-back along an O-section
ModularCurve.DRModelPackageLevel.phi_mem_and_evalAt_eq_stalkClosedPointTo_of_section3 below · depth 19 - Crossing points are rational over the inertia ring O
ModularCurve.DRModelPackageLevel.surjective_residue_comp_germ_comp_appTop_of_inertia_grain10 below · depth 19 - Branch germs read as Gauss residues on X₀(N₀)_{κ_A}
ModularCurve.DRModelPackageLevel.ffEquiv_symm_stalkMap_genericPoint_eq_residue_phi363 below · depth 20 - Germs at a point met by both branches lie in both prolongations
ModularCurve.DRModelPackageLevel.mem_integers_and_mem_integers_of_stalk_of_specializes361 below · depth 20 - Branch generic stalks map into the two Gauss prolongations
ModularCurve.DRModelPackageLevel.phi_algebraMap_stalk_mem_integers_comp_genericPoint360 below · depth 20 - Chart-pinned readings agree at the generic point
ModularCurve.DRModelPackageLevel.specMap_comp_fromSpecStalk_genericPoint_comp_fst_eq_of_coe_eq_coeffEmb0 below · depth 20