Definitions/Def_ModularCurve_DRModelPackage.lean
Integral two-chart model of and its property package
Fix a prime p. DRModel p is the scheme \mathfrak X = AlgebraicCurve.TwoChartIntegralModel over \mathbf Z attached to the field F = modularFunctionFieldFull p, the subfield of \mathbf Q-Laurent series generated by the q-expansions j(q^d) for the divisors d of p, and to the element j = IgusaScheme.jFull p of F: the pushout of \operatorname{Spec} of the integral closure of \mathbf Z[j] in F and \operatorname{Spec} of the integral closure of \mathbf Z[j^{-1}] in F, glued along \operatorname{Spec} of the integral closure of \mathbf Z[j,j^{-1}]. DRModel.toBase p is its structure morphism to \operatorname{Spec}\mathbf Z, and DRModel.pFibre p the base change along \mathbf Z \to \mathbf Z/(p). For a section \varepsilon of the structure morphism and a ring homomorphism a\colon\mathbf Z\to\kappa, DRModel.sectionFibre is the induced \kappa-point of the base change of \mathfrak X along a.
DRModelPackage p is a structure bundling data and properties of (\mathfrak X,\ \text{toBase}); it asserts nothing on its own. Its fields are: properness, flatness, integrality and affine-local integral closedness (normality); a CurveModel M_0 of F/\mathbf Q and a CurveModel M_\eta of modularFunctionFieldBar p over \overline{\mathbf Q}, each with an isomorphism onto the corresponding base change of \mathfrak X over the structure morphism, together with equivariance of the points-to-places bijection of M_\eta for the action arithmeticGalois of \operatorname{Gal}(\overline{\mathbf Q}/\mathbf Q), and compatibility of the valuation subrings of places of M_\eta and M_0 at points lying over the same point of \mathfrak X; two sections \varepsilon_\infty,\varepsilon_0 over \mathbf Z; an open smoothLocus, smooth of relative dimension 1 over \mathbf Z and containing every open on which the structure morphism is smooth, containing the images of both sections, smoothness after inverting p; reducedness of the fibre at p; for every algebraically closed \kappa of characteristic p, a curve model of \kappa(T) over \kappa with two closed immersions into the fibre over \kappa, jointly surjective, with distinct images, reduced scheme-theoretic intersection whose cardinality equals that of the supersingular j-set ssJSet p κ, and receiving the reductions of \varepsilon_\infty and \varepsilon_0 respectively; an involutive automorphism w of \mathfrak X over \mathbf Z exchanging the two sections; and finiteness of each chart algebra over \mathbf Z[X], where X acts as j, respectively j^{-1}. A helper lemma supplies NeZero p.
Relation to Mathlib
Mathlib has no modular curves or integral models of them; TwoChartIntegralModel, CurveModel, modularFunctionFieldFull, ssJSet and this package are the project's own. The package is phrased entirely in terms of Mathlib's morphism classes (IsProper, Flat, Smooth, SmoothOfRelativeDimension, IsClosedImmersion), pushouts and pullbacks of schemes, and Mathlib's function-field and valuation-subring API.
Where it is used
The package is the interface through which the arithmetic geometry of X_0(p) over \mathbf Z — its generic fibre, its two rational components crossing at the supersingular points in the fibre at p, the two cusp sections and the Atkin–Lehner involution — is fed into the construction of J_0(p) and of the identity component of its Néron model at p, which is what the level-lowering step of the Fermat argument consumes.
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
- N. M. Katz and B. Mazur, Arithmetic Moduli of Elliptic Curves, Annals of Mathematics Studies 108, Princeton University Press, 1985
- J.-I. Igusa, Kroneckerian model of fields of elliptic modular functions, American Journal of Mathematics 81 (1959), 561–577
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 135 lines
- 41 declarations
- used in the statements of 109 theorems and imported by 112 proofs
- imports 9 definition modules
Source file: Definitions/Def_ModularCurve_DRModelPackage.lean
Imports
Def_ModularCurve_X0Def_ModularCurve_IgusaSchemeDef_AlgebraicCurve_TwoChartIntegralModelDef_AlgebraicCurve_CurveModelDef_ModularCurve_GeometricBaseChangeDef_ModularCurve_ArithmeticGaloisDef_AlgebraicGeometry_NeronModelPropertyBundleCarrierDef_ModularCurve_SupersingularModuliDef_AlgebraicGeometry_TwoAffineOpenCover
Declarations
- theorem
ModularCurve.DRModelPackage.neZero_of_fact_prime - abbrev
ModularCurve.DRModel - abbrev
ModularCurve.DRModel.toBase - abbrev
ModularCurve.DRModel.pFibre - def
ModularCurve.DRModel.sectionFibre - structure
ModularCurve.DRModelPackage - field
ModularCurve.DRModelPackage.isProper - field
ModularCurve.DRModelPackage.flat - field
ModularCurve.DRModelPackage.isIntegral - field
ModularCurve.DRModelPackage.normal - field
ModularCurve.DRModelPackage.M₀ - field
ModularCurve.DRModelPackage.e₀ - field
ModularCurve.DRModelPackage.he₀ - field
ModularCurve.DRModelPackage.hgal - field
ModularCurve.DRModelPackage.hcompat - field
ModularCurve.DRModelPackage.y - field
ModularCurve.DRModelPackage.pullback - field
ModularCurve.DRModelPackage.x₀ - field
ModularCurve.DRModelPackage.B - field
ModularCurve.DRModelPackage.smoothLocus - field
ModularCurve.DRModelPackage.smoothLocus_maximal - field
ModularCurve.DRModelPackage.smooth_away - field
ModularCurve.DRModelPackage.pFibre_reduced - field
ModularCurve.DRModelPackage.ratModel - field
ModularCurve.DRModelPackage.compInf - field
ModularCurve.DRModelPackage.compZero - field
ModularCurve.DRModelPackage.compInf_over - field
ModularCurve.DRModelPackage.compZero_over - field
ModularCurve.DRModelPackage.compInf_isClosedImmersion - field
ModularCurve.DRModelPackage.compZero_isClosedImmersion - field
ModularCurve.DRModelPackage.comp_jointly_surjective - field
ModularCurve.DRModelPackage.x - field
ModularCurve.DRModelPackage.range_compInf_ne - field
ModularCurve.DRModelPackage.crossing_reduced - field
ModularCurve.DRModelPackage.crossing_card - field
ModularCurve.DRModelPackage.w - field
ModularCurve.DRModelPackage.w_over - field
ModularCurve.DRModelPackage.w_invol - field
ModularCurve.DRModelPackage.w_sections - field
ModularCurve.DRModelPackage.chartFin_finite - field
ModularCurve.DRModelPackage.chartInf_finite
Source
import Mathlib import Definitions.Def_ModularCurve_X0 import Definitions.Def_ModularCurve_IgusaScheme import Definitions.Def_AlgebraicCurve_TwoChartIntegralModel import Definitions.Def_AlgebraicCurve_CurveModel import Definitions.Def_ModularCurve_GeometricBaseChange import Definitions.Def_ModularCurve_ArithmeticGalois import Definitions.Def_AlgebraicGeometry_NeronModelPropertyBundleCarrier import Definitions.Def_ModularCurve_SupersingularModuli import Definitions.Def_AlgebraicGeometry_TwoAffineOpenCover set_option autoImplicit false open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra ModularCurve AlgebraicCurve IsLocalRing noncomputable section namespace ModularCurve variable (p : ℕ) [Fact p.Prime] theorem DRModelPackage.neZero_of_fact_prime : NeZero p := ⟨(Fact.out : p.Prime).ne_zero⟩ attribute [local instance] DRModelPackage.neZero_of_fact_prime abbrev DRModel : Scheme.{0} := AlgebraicCurve.TwoChartIntegralModel ℤ ↥(modularFunctionFieldFull p) (IgusaScheme.jFull p) abbrev DRModel.toBase : DRModel p ⟶ Spec (CommRingCat.of ℤ) := AlgebraicCurve.TwoChartIntegralModel.toBase ℤ ↥(modularFunctionFieldFull p) (IgusaScheme.jFull p) abbrev DRModel.pFibre : Scheme.{0} := AlgebraicCurve.TwoChartIntegralModel.fibre ℤ ↥(modularFunctionFieldFull p) (IgusaScheme.jFull p) (Ideal.span {(p : ℤ)}) variable {p} in def DRModel.sectionFibre (ε : SchemeHomOver (𝟙 (Spec (CommRingCat.of ℤ))) (DRModel.toBase p)) {κ : Type} [CommRing κ] (a : ℤ →+* κ) : Spec (CommRingCat.of κ) ⟶ pullback (DRModel.toBase p) (Spec.map (CommRingCat.ofHom a)) := pullback.lift (Spec.map (CommRingCat.ofHom a) ≫ ε.1) (𝟙 _) (by rw [Category.assoc, ε.2, Category.comp_id, Category.id_comp]) structure DRModelPackage where isProper : IsProper (DRModel.toBase p) flat : Flat (DRModel.toBase p) isIntegral : IsIntegral (DRModel p) normal : ∀ U : (DRModel p).Opens, IsAffineOpen U → IsIntegrallyClosed Γ(DRModel p, U) M₀ : CurveModel ℚ ↥(modularFunctionFieldFull p) e₀ : M₀.C ⟶ pullback (DRModel.toBase p) (Spec.map (CommRingCat.ofHom (algebraMap ℤ ℚ))) [e₀_iso : IsIso e₀] he₀ : e₀ ≫ pullback.snd _ _ = M₀.toBase Mη : CurveModel (AlgebraicClosure ℚ) (modularFunctionFieldBar p) eη : Mη.C ⟶ pullback (DRModel.toBase p) (Spec.map (CommRingCat.ofHom (algebraMap ℤ (AlgebraicClosure ℚ)))) [eη_iso : IsIso eη] heη : eη ≫ pullback.snd _ _ = Mη.toBase hgal : ∀ (g : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (x x' : {q : Spec (CommRingCat.of (AlgebraicClosure ℚ)) ⟶ Mη.C // q ≫ Mη.toBase = 𝟙 _}), x'.1 ≫ eη ≫ pullback.fst _ _ = Spec.map (CommRingCat.ofHom (g : AlgebraicClosure ℚ →+* AlgebraicClosure ℚ)) ≫ x.1 ≫ eη ≫ pullback.fst _ _ → Mη.pointEquivPlace x' = arithmeticGalois (L := AlgebraicClosure ℚ) (modularFunctionFieldFull p) g • Mη.pointEquivPlace x hcompat : ∀ (x : {q : Spec (CommRingCat.of (AlgebraicClosure ℚ)) ⟶ Mη.C // q ≫ Mη.toBase = 𝟙 _}) (y : Spec (CommRingCat.of (AlgebraicClosure ℚ)) ⟶ pullback (DRModel.toBase p) (Spec.map (CommRingCat.ofHom (algebraMap ℤ ℚ)))) (x₀ : closedPoints M₀.C), y ≫ pullback.fst (DRModel.toBase p) _ = x.1 ≫ eη ≫ pullback.fst (DRModel.toBase p) _ → (y ≫ inv e₀).base (IsLocalRing.closedPoint (AlgebraicClosure ℚ)) = x₀.1 → ((Mη.pointEquivPlace x).toValuationSubring.toSubring.comap ((baseChangeEquiv (AlgebraicClosure ℚ) (modularFunctionFieldFull p)).toAlgHom.toRingHom.comp (Algebra.TensorProduct.includeRight (R := ℚ) (A := AlgebraicClosure ℚ) (B := ↥(modularFunctionFieldFull p))).toRingHom) = (M₀.placeOfPoint x₀).toValuationSubring.toSubring) εinf : SchemeHomOver (𝟙 (Spec (CommRingCat.of ℤ))) (DRModel.toBase p) εzero : SchemeHomOver (𝟙 (Spec (CommRingCat.of ℤ))) (DRModel.toBase p) smoothLocus : (DRModel p).Opens [smoothLocus_relDim : SmoothOfRelativeDimension 1 (smoothLocus.ι ≫ DRModel.toBase p)] smoothLocus_maximal : ∀ U : (DRModel p).Opens, Smooth (U.ι ≫ DRModel.toBase p) → U ≤ smoothLocus εinf_mem_smoothLocus : Set.range εinf.1.base ⊆ (smoothLocus : Set (DRModel p)) εzero_mem_smoothLocus : Set.range εzero.1.base ⊆ (smoothLocus : Set (DRModel p)) smooth_away : Smooth (pullback.snd (DRModel.toBase p) (Spec.map (CommRingCat.ofHom (algebraMap ℤ (Localization.Away (p : ℤ)))))) pFibre_reduced : IsReduced (DRModel.pFibre p) ratModel : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ], CurveModel κ (RatFunc κ) compInf : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ], (ratModel κ).C ⟶ pullback (DRModel.toBase p) (Spec.map (CommRingCat.ofHom (algebraMap ℤ κ))) compZero : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ], (ratModel κ).C ⟶ pullback (DRModel.toBase p) (Spec.map (CommRingCat.ofHom (algebraMap ℤ κ))) compInf_over : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ], compInf κ ≫ pullback.snd _ _ = (ratModel κ).toBase compZero_over : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ], compZero κ ≫ pullback.snd _ _ = (ratModel κ).toBase compInf_isClosedImmersion : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ], IsClosedImmersion (compInf κ) compZero_isClosedImmersion : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ], IsClosedImmersion (compZero κ) comp_jointly_surjective : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ] (x : ↥(pullback (DRModel.toBase p) (Spec.map (CommRingCat.ofHom (algebraMap ℤ κ))))), x ∈ Set.range (compInf κ).base ∨ x ∈ Set.range (compZero κ).base range_compInf_ne : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ], Set.range (compInf κ).base ≠ Set.range (compZero κ).base crossing_reduced : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ], IsReduced (pullback (compInf κ) (compZero κ)) crossing_card : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ] [DecidableEq κ], Nat.card ↥(pullback (compInf κ) (compZero κ)) = Nat.card ↥(ssJSet p κ) εinf_mem_compInf : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ], Set.range (DRModel.sectionFibre εinf (algebraMap ℤ κ)).base ⊆ Set.range (compInf κ).base εzero_mem_compZero : ∀ (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ], Set.range (DRModel.sectionFibre εzero (algebraMap ℤ κ)).base ⊆ Set.range (compZero κ).base w : DRModel p ≅ DRModel p w_over : w.hom ≫ DRModel.toBase p = DRModel.toBase p w_invol : w.hom ≫ w.hom = 𝟙 _ w_sections : εinf.1 ≫ w.hom = εzero.1 chartFin_finite : letI := (AlgebraicCurve.TwoChartIntegralModel.polynomialToChartFin ℤ ↥(modularFunctionFieldFull p) (IgusaScheme.jFull p)).toRingHom.toAlgebra Module.Finite (Polynomial ℤ) ↥(AlgebraicCurve.TwoChartIntegralModel.chartAlgFin ℤ ↥(modularFunctionFieldFull p) (IgusaScheme.jFull p)) chartInf_finite : letI := (AlgebraicCurve.TwoChartIntegralModel.polynomialToChartInf ℤ ↥(modularFunctionFieldFull p) (IgusaScheme.jFull p)).toRingHom.toAlgebra Module.Finite (Polynomial ℤ) ↥(AlgebraicCurve.TwoChartIntegralModel.chartAlgInf ℤ ↥(modularFunctionFieldFull p) (IgusaScheme.jFull p)) attribute [instance] DRModelPackage.e₀_iso DRModelPackage.eη_iso DRModelPackage.smoothLocus_relDim end ModularCurve end
Statements phrased using this module (109)
- Existence of a Deligne–Rapoport model package with q-expansion pin
ModularCurve.exists_dRModelPackage_ffPin1,050 below · depth 14 - Good-reduction Néron identity component of J₀(p) from the Deligne–Rapoport model
ModularCurve.nonempty_jZeroNeronIdentityComponentGood_of_dRModelPackage_of_ffPin3,335 below · depth 14 - Leg-two input (v2) for the Deligne–Rapoport package
ModularCurve.nonempty_legTwoInputV21,395 below · depth 14 - The cusp ∞ reduces onto the W₀-component mod p
ModularCurve.DRModel.dvd_coeffZero_of_mem_nonunits_and_exists_not_dvd_of_prime139 below · depth 15 - Two branch valuation rings of ℚ(X₀(p)) above p
ModularCurve.DRModel.exists_chartAlgFin_valuationSubring_pair_levelP130 below · depth 15 - Geometric fibre at p: two rational components, supersingular intersection
ModularCurve.DRModel.exists_curveModel_ratFunc_closedImmersion_pair_pFibre_and_range_sectionFibre_subset_of_residue_generators383 below · depth 15 - Involution over ℤ of the two-chart model of X₀(p)
ModularCurve.DRModel.exists_iso_comp_toBase_eq_and_hom_comp_hom_eq_id_and_exists_algHom_comp_hom_eq208 below · depth 15 - Reducedness of the p-fibre of the Deligne–Rapoport model
ModularCurve.DRModel.isReduced_pFibre133 below · depth 15 - Characteristic-p fibres of the DR model are reduced
ModularCurve.DRModel.isReduced_pullback_toBase_of_charP184 below · depth 15 - Degree-zero cohomological flatness of the integral model at level p
ModularCurve.DRModelPackage.bijective_algebraMap_sections_baseChange921 below · depth 15 - Local pools of disjoint étale multisections near the cusp
ModularCurve.DRModelPackage.exists_locallySplitPools_of_five_le1,048 below · depth 15 - Residue-field points above p killed by [m], p∤ m
ModularCurve.DRModelPackage.exists_schemeNsmul_eq_one_residueField_point435 below · depth 15 - Two-line degeneration of a non-smooth Deligne–Rapoport fibre
ModularCurve.DRModelPackage.exists_twoLineDegeneration_of_not_smooth962 below · depth 15 - No p-power torsion in the Pic⁰-cut on characteristic p fibres
ModularCurve.DRModelPackage.forall_fibre_pow_torsionFree_algEquivZeroGroupCut432 below · depth 15 - Geometric fibre at p of the Deligne–Rapoport model is non-smooth
ModularCurve.DRModelPackage.not_smooth_pullback_snd_toBase_of_charP148 below · depth 15 - Relative Pic⁰ of the Deligne–Rapoport model: group law and points
ModularCurve.exists_abelJacobi_pts_relativeGroupLaw_of_dRModelPackage_of_representsRelSubPic1,214 below · depth 15 - A component map on inertia invariants of J₀(p)
ModularCurve.exists_componentHom_extension_of_dRModelPackage_of_abelJacobi_of_ffPin2,509 below · depth 15 - Hecke endomorphisms of the integral model of J₀(p)
ModularCurve.exists_heckeEndomorphism_of_dRModelPackage_of_representsRelSubPic291 below · depth 15 - Points dictionaries modulo ℓ for the relative Pic⁰ of X₀(p)
ModularCurve.exists_pointsDict_pullback_snd_ratLocalizedAt_of_dRModelPackage_of_representsRelSubPic1,835 below · depth 15 - Hecke action on the generic fibre of relative Pic⁰
ModularCurve.forall_exists_schemeHomOver_baseChange_rat_isHom_pts_smul_of_dRModelPackage1,207 below · depth 15 - Good-prime data for relative Pic⁰ of the DR model at ℓ ∤ p
ModularCurve.goodPrime_relativePic0_of_dRModelPackage_of_representsRelSubPic1,837 below · depth 15 - Pole-chart residue X⁻¹ and separation of the two cusps
ModularCurve.DRModel.exists_chartAlgInf_residue_eq_inv_and_cusps_separate_of_valuationSubring_pair162 below · depth 16 - Fibre at p of each Deligne–Rapoport chart: reduced, two components
ModularCurve.DRModel.isReduced_quotient_and_ncard_minimalPrimes_span_natCast_chartAlg_int132 below · depth 16 - Distinct minimal primes over q and 1/j generate the unit ideal
ModularCurve.DRModel.sup_sup_span_jInvChartInf_eq_top_of_mem_minimalPrimes231 below · depth 16 - Branches above p: Gauss ring and Atkin–Lehner conjugate
ModularCurve.DRModel.valuationSubring_pair_eq_gauss_and_exists_algEquiv_swap127 below · depth 16 - Finite-map datum of degree ≥ 1 away from p
ModularCurve.DRModelPackage.exists_finiteMapData_baseChange_away_one_le_m1,108 below · depth 16 - Node-ratio embedding of the Pic⁰ cut at p
ModularCurve.DRModelPackage.exists_injective_monoidHom_algEquivZeroGroupCut_pFibre430 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 - Trivial component classes extend to A-points of Pic⁰
ModularCurve.DRModelPackage.exists_schemeHomOver_of_comp_eq_zero_of_abelJacobiPin_of_surjective2,060 below · depth 16 - Two-affine cover of the bad fibre avoiding crossing points
ModularCurve.DRModelPackage.exists_twoAffineOpenCover_compl_eq_pair_compInf_compZero292 below · depth 16 - Prime-to-p torsion of cut classes on the geometric p-fibre
ModularCurve.DRModelPackage.forall_fibre_exists_pow_eq_one_algEquivZeroGroupCut431 below · depth 16 - Away from `compZero`, `compInf` restricts to an open immersion
ModularCurve.DRModelPackage.isOpenImmersion_restrict_compInf_compl_range_compZero2 below · depth 16 - Smooth locus in the p-fibre: complement of the crossings
ModularCurve.DRModelPackage.mem_preimage_smoothLocus_iff_not_mem_range_compInf_inter_range_compZero55 below · depth 16 - Pole-chart inclusion X₀(Nq)→ X₀(q) separates components mod q
ModularCurve.IgusaScheme.exists_ringHom_chartAlgInf_comap_minimalPrimes_ne_of_not_dvd205 below · depth 16 - Valuation ring of the inertia field inside A
ModularCurve.inertiaField_comap_incl_and_surjective_and_isAlgClosed_residueField10 below · depth 16 - Igusa and Deligne–Rapoport point dictionaries agree through θ_ℚ
ModularCurve.pts_lift_comp_theta_fst_eq_pts_of_dRModelPackage_of_igusaModel209 below · depth 16 - Pole-chart lift of 1/̄ jₚ on the W₁ branch
ModularCurve.DRModel.exists_chartAlgInf_mul_sub_one_mem_nonunits_of_valuationSubring_pair86 below · depth 17 - Maximal ideals of the pole chart containing p and 1/j
ModularCurve.DRModel.forall_mem_iff_dvd_or_forall_mem_of_isMaximal_of_jInvChartInf_mem_of_prime144 below · depth 17 - Integrality of the X₀(p) two-chart model over an unramified DVR
ModularCurve.DRModel.isIntegral_pullback_toBase859 below · depth 17 - Each bad-fibre component meets every j-level set in one point
ModularCurve.DRModelPackage.compl_jNeLocus_inter_range_comp_eq_singleton233 below · depth 17 - Ogg's unit detects the ∞-component mod p
ModularCurve.DRModelPackage.exists_coordinate_forall_mem_range_compInf_and_not_mem_range_compZero280 below · depth 17 - Residue-field point above a crossing point of the mod-p fibre
ModularCurve.DRModelPackage.exists_residueField_point_baseChangeMap_eq_of_isAlgClosed_residueField270 below · depth 17 - Zeros of g(v) in the finite chart lie in the smooth locus
ModularCurve.DRModelPackage.iotaFin_mem_smoothLocus_of_aeval_mem57 below · depth 17 - Vanishing of g(v) forces membership in the ε_∞-component
ModularCurve.DRModelPackage.mem_connectedComponentIn_of_aeval_mem195 below · depth 17 - Geometric-fibre transport of the Poincaré bundle with section twists
ModularCurve.DRModelPackage.nonempty_poincare_pullbackAlong_comp_iso_of_pullback_toDR_iso_of_sectionTwist17 below · depth 17 - Recognising pts of a divisor class from its Poincaré fibre
ModularCurve.DRModelPackage.pts_pic0Mk_eq_comp_of_poincare_pullbackAlong_iso21 below · depth 17 - Transporting a degree-zero divisor along a level equivalence
ModularCurve.DRModelPackage.sum_coef_eq_zero_and_exists_degZero_mapDomain_of_equiv_support145 below · depth 17 - Base change along τ of a section and its geometric generic point
ModularCurve.DRResolvedModelPackage.eEta_comp_pullbackMap_eq_comp_toDR_of_comp_fst_eq0 below · depth 17 - Node bijection and orientation bit for the component dictionary
ModularCurve.DRResolvedModelPackage.exists_nodeEquiv_swap_forall_comp_eq_dict_of_sections_of_charts1,640 below · depth 17 - An O-point of D whose Poincaré class is M
ModularCurve.DRResolvedModelPackage.exists_schemeHomOver_poincare_pullbackAlong_iso_of_generic_sectionTwist_of_forall_isAlgEquivZero36 below · depth 17 - Inertia-fixed places give sections of the resolved model
ModularCurve.DRResolvedModelPackage.exists_section_toDR_generic_eq_pointEquivPlace_symm_of_forall_inertia_smul_eq0 below · depth 17 - Vertical twist to multidegree zero fixing the generic fibre
ModularCurve.DRResolvedModelPackage.exists_verticalTwist_multidegree_eq_zero_and_generic_iso_sectionTwist46 below · depth 17 - Multidegree zero forces algebraic equivalence to zero on fibres
ModularCurve.DRResolvedModelPackage.isAlgEquivZero_fibre_of_pullback_toDR_iso_divisorial_of_multidegree_eq_zero1,241 below · depth 17 - Vanishing component class puts the multidegree in α's image
ModularCurve.DRResolvedModelPackage.multidegree_mem_range_intersectionAlpha_of_comp_eq_zero482 below · depth 17 - Sections of the resolved model avoid the edge points
ModularCurve.DRResolvedModelPackage.ne_edgePt_and_mem_smoothOffEdges_and_existsUnique_mem_comp_support_of_section1 below · depth 17 - Generic fibre of a bundle descended through the resolution
ModularCurve.DRResolvedModelPackage.nonempty_pullback_comp_toDR_iso_sectionTwist_of_iso_divisorial0 below · depth 17 - Fibre at p of the Deligne–Rapoport model: two lines
ModularCurve.DRModel.exists_curveModel_closedImmersion_pair_pFibre_cover_levelSet_singleton232 below · depth 18 - Components of the special fibre stay distinct over O
ModularCurve.DRModelPackage.baseChangeMap_compInf_genericPoint_ne_baseChangeMap_compZero_genericPoint206 below · depth 18 - Minimal primes over p label the components of the bad fibre
ModularCurve.DRModelPackage.exists_index_forall_mem_range_compInf_of_not_le56 below · depth 18 - Node coordinates at a supersingular crossing from a chart presentation
ModularCurve.DRModelPackage.exists_nodeCoordinates_and_forall_mem_support_iff_chainPos_of_chartPresentation_of_branch_of_jPin1,158 below · depth 18 - Supersingular places enumerate the crossings, with width and j-pin
ModularCurve.DRModelPackage.exists_nodeEquiv_width_eq_and_jPin414 below · depth 18 - Function field of the DR model over an unramified DVR
ModularCurve.DRModelPackage.exists_ringHom_functionField_pullback_eq_algebraMap_and_coe_eq_coeffEmb860 below · depth 18 - An orientation bit matching strict places to branch components
ModularCurve.DRModelPackage.exists_swap_forall_isStrict_section_mem_range_comp_of_reading445 below · depth 18 - Two-line degeneration with named components of the X₀(p) fibre
ModularCurve.DRModelPackage.exists_twoLineDegeneration_of_not_smooth_iso_comp_eq962 below · depth 18 - Supersingular O-lift of j at each crossing
ModularCurve.DRModelPackage.forall_exists_lift_jFun_sub_mem_maximalIdeal_and_mem_ssJSet404 below · depth 18 - Oriented crossing charts for the Deligne–Rapoport model at p
ModularCurve.DRModelPackage.forall_exists_orientedCrossingChart1,094 below · depth 18 - Finite presentation of the Deligne–Rapoport model over ℤ
ModularCurve.DRModelPackage.locallyOfFinitePresentation_toBase1 below · depth 18 - Fibre points off the 0-component: smooth, in the cusp component
ModularCurve.DRModelPackage.mem_smoothLocus_and_mem_connectedComponentIn_of_mem_range_compInf56 below · depth 18 - Stalks of X×_ℤSpec O have dimension at most two
ModularCurve.DRModelPackage.ringKrullDim_stalk_pullback_toBase_le_two2 below · depth 18 - Sections through non-strict inertia-fixed places meet the matched crossing
ModularCurve.DRModelPackage.section_base_closedPoint_eq_crossing_of_reduceFst_mem337 below · depth 18 - Local chart presentation at a node of the resolved model
ModularCurve.DRResolvedModelPackage.DRResolvedModelCharts.exists_chartPresentation_stalk255 below · depth 18 - Strict transforms detected on the Deligne–Rapoport closed fibre
ModularCurve.DRResolvedModelPackage.eq_inl_iff_toDR_base_mem_range_compInf_of_mem_comp_support56 below · depth 18 - Multidegree zero gives χ=χ(𝒪) on a strict transform
ModularCurve.DRResolvedModelPackage.eulerChar_sectionsOf_pullback_strictTransform_eq_of_multidegree_eq_zero_of_surjective237 below · depth 18 - Node width equals the j-width of the reduced j-value
ModularCurve.DRResolvedModelPackage.width_eq_jWidth_of_exists_jFun_sub_mem_maximalIdeal_of_prolongationTuple1,630 below · depth 18 - Ogg's unit and the two minimal primes over p
ModularCurve.HpoolLevelRing.exists_minimalPrimes_pair_modularUnitSeries222 below · depth 18 - Characteristic-p fibre dictionary for the modular unit
ModularCurve.HpoolLevelRing.exists_pFibre_dictionary353 below · depth 18 - Two points off the finite chart in the geometric p-fibre
ModularCurve.DRModel.exists_ne_and_notMem_chartFin_pFibre216 below · depth 19 - Characteristic-p fibres of the Deligne–Rapoport model are reducible
ModularCurve.DRModel.not_irreducibleSpace_pullback_toBase_of_charP205 below · depth 19 - Germ readings are V-integral with value the section pull-back
ModularCurve.DRModelPackage.evalAt_eq_stalkClosedPointTo_of_schemeHomOver3 below · depth 19 - Germ reading j(qᵖ)-j(q)ᵖ at a supersingular crossing
ModularCurve.DRModelPackage.exists_germ_jq_sub_pow_and_stalkSpecializes_mem_maximalIdeal_of_swap568 below · depth 19 - Vanishing of j(qᵖ)-j(q)ᵖ on the p-fibre components
ModularCurve.DRModelPackage.exists_range_comp_subset_zeroLocus_jq_sub_pow198 below · depth 19 - Maximal ideals generate along base change to the geometric fibre
ModularCurve.DRModelPackage.map_maximalIdeal_stalkMap_baseChangeMap_eq_of_inertia_grain0 below · depth 19 - Germs at a supersingular crossing are node-integral
ModularCurve.DRModelPackage.mem_nodeIntegers_of_stalk_of_specializes_of_exists_sub_mem998 below · depth 19 - Evaluation at an A-integral place via an 𝒪-section
ModularCurve.DRModelPackage.mem_preimage_and_forall_evalAt_eq_stalkClosedPointTo_of_ord_sub_pos126 below · depth 19 - Branch residues at a supersingular crossing: kernels and orders
ModularCurve.DRModelPackage.nodeResidue_eq_zero_iff_and_ord_eq_of_specializes_of_mem_maximalIdeal549 below · depth 19 - Branch residues and orders at a supersingular crossing, swapped labelling
ModularCurve.DRModelPackage.nodeResidue_eq_zero_iff_and_ord_eq_of_specializes_of_mem_maximalIdeal_swap549 below · depth 19 - Transversal parameters at a crossing are uniformisers on each branch
ModularCurve.DRModelPackage.ord_placeOfPoint_stalkMap_eq_one_of_span_eq_maximalIdeal0 below · depth 19 - Saturation of the two geometric p-fibre components under X-morphisms
ModularCurve.DRModelPackage.preimage_closure_image_range_compInf_eq_of_comp_fst_eq189 below · depth 19 - Nodes of the resolved model index supersingular j-invariants
ModularCurve.DRResolvedModelPackage.exists_node_equiv_ssJSet_germ_sub_mem_maximalIdeal_iff394 below · depth 19 - An involution of the two-chart model X₀(p) over ℤ
ModularCurve.DRModel.exists_iso_and_algHom_chartAlgFin_comp_eq_and_involutive208 below · depth 20 - At a crossing, primes over p are the two branch primes
ModularCurve.DRModelPackage.eq_comap_or_eq_comap_of_mem_minimalPrimes_natCast_of_specializes0 below · depth 20 - Crossings of the mod p fibre have supersingular j-invariants
ModularCurve.DRModelPackage.exists_equiv_pullback_compInf_compZero_ssJSet_germ_jCoordBC_sub_constSection_mem393 below · depth 20 - Reading the compInf branch of the p-fibre as k(X₀(1))
ModularCurve.DRModelPackage.exists_ringEquiv_ratFunc_forall_stalkMap_genericPoint_compInf_eq_residueSnd275 below · depth 20 - The `compZero` branch of the p-fibre as a j-line
ModularCurve.DRModelPackage.exists_ringEquiv_ratFunc_forall_stalkMap_genericPoint_compZero_eq_residueFst275 below · depth 20 - First mod p branch reads the level-one fibre field
ModularCurve.DRModelPackage.exists_ringEquiv_ratFunc_forall_stalkMap_genericPoint_eq_residueFst275 below · depth 20 - Second branch reading of the p-fibre function field
ModularCurve.DRModelPackage.exists_ringEquiv_ratFunc_forall_stalkMap_genericPoint_eq_residueSnd275 below · depth 20 - Germs at a point below both branches lie in both prolongations
ModularCurve.DRModelPackage.mem_integers_and_mem_integers_of_stalk_of_specializes919 below · depth 20 - Branch local rings at a crossing map into the two Gauss rings
ModularCurve.DRModelPackage.phi_algebraMap_stalk_mem_integers_and_exists_eq_jFun_of_specializes_of_mem_maximalIdeal289 below · depth 20 - Branch integrality and j-attainment at a supersingular crossing (exchanged labels)
ModularCurve.DRModelPackage.phi_algebraMap_stalk_mem_integers_and_exists_eq_jFun_of_specializes_of_mem_maximalIdeal_swap289 below · depth 20 - Inertia-fixed strict place with an 𝒪-section of the resolved model
ModularCurve.DRResolvedModelPackage.exists_isStrictFst_forall_inertia_smul_eq_and_section_toDR_generic_eq444 below · depth 20 - Uniqueness and Galois equivariance of the place transport 1· p → p
ModularCurve.placeEquiv_unique_and_arithmeticGalois_smul_of_forall_mem_iff0 below · depth 20 - A common domain for the branch function field and k(jmath̃)
ModularCurve.DRModelPackage.exists_isDomain_ringHom_functionField_and_ringHom_modularFunctionFieldC_of_residueField_compInf272 below · depth 21 - Common domain generating both branch and level-one function fields
ModularCurve.DRModelPackage.exists_isDomain_ringHom_functionField_and_ringHom_modularFunctionFieldC_of_residueField_compZero272 below · depth 21 - Points over the closed point are closed or branch generic points
ModularCurve.DRModelPackage.isClosed_or_eq_generic_of_snd_eq_closedPoint911 below · depth 21 - Stalk dominated by R₁ forces a non-closed point
ModularCurve.DRModelPackage.not_isClosed_of_forall_stalk_mem_integersFst1 below · depth 21 - Stalk dominated by R₂ gives a non-closed point
ModularCurve.DRModelPackage.not_isClosed_of_forall_stalk_mem_integersSnd77 below · depth 21 - Units at the two fibre generic points: Q(j) for ̄ Q≠ 0
ModularCurve.DRModelPackage.polynomialEval_mem_range_algebraMap_stalk_and_inv_mem_of_map_ne_zero250 below · depth 21 - Off the image of i_∞, i₀ is an open immersion
ModularCurve.DRModelPackage.isOpenImmersion_restrict_compZero_compl_range_compInf2 below · depth 22