Definitions/Def_ModularCurve_DRResolvedModelPackageV4.lean
Resolved Deligne–Rapoport model packages for
Fix a prime p. The module defines two helpers and one structure. DRResolvedModelPackage.chainPos sends a width function w\colon\mathrm{node}\to\mathbb N, a node n and d\in\mathbb N to an element of X0MqComponents w =\mathrm{Fin}\,2\sqcup\Sigma_x\,\mathrm{Fin}(w(x)-1): the value is \mathrm{inl}\,0 for d=0, \mathrm{inr}(n,d-1) for 0<d<w(n), and \mathrm{inl}\,1 otherwise, so it walks the chain \mathrm{inl}\,0,(n,0),\dots,(n,w(n)-2),\mathrm{inl}\,1. DRModel.baseChangeMap associates to a ring homomorphism \mathrm{to}\kappa\colon O\to\kappa the morphism \mathfrak X_{\kappa}\to\mathfrak X_{O} between base changes of DRModel.toBase p induced by the identity on the model and \operatorname{Spec}\mathrm{to}\kappa, using uniqueness of ring maps out of \mathbb Z.
Given a DRModelPackage \mathfrak X for p, a commutative ring O, an algebraically closed field \kappa of characteristic p and \mathrm{to}\kappa\colon O\to\kappa, the structure DRResolvedModelPackage bundles: an integral, locally Noetherian scheme Y, proper and flat over \operatorname{Spec}O, with a proper morphism \mathrm{toDR} to \mathfrak X\times_{\mathbb Z}\operatorname{Spec}O over \operatorname{Spec}O; regularity and \operatorname{Kdim}\le 2 of all stalks at points outside the preimage of D(p)\subseteq\operatorname{Spec}O; \mathrm{toDR} an isomorphism over \mathfrak X's smooth locus and over D(p). The special fibre is presented combinatorially: a finite type \mathrm{node} in bijection with the points of \mathfrak X_\kappa's component intersection \mathrm{compInf}\times\mathrm{compZero}, widths w(n)\ge 1, and a family \mathrm{comp}_v of ideal sheaf data indexed by X0MqComponents w, each invertible in the sense of IsInvertible and with integral subscheme, supported over p, with \prod_v\mathrm{comp}_v the ideal (p) on every affine open. Further fields give generic points \eta_v where \mathrm{comp}_v germs to the maximal ideal and the others to the unit ideal, exhaust all points over p of stalk dimension \le 1; identify the \kappa-fibres of \mathrm{comp}_{\mathrm{inl}\,0},\mathrm{comp}_{\mathrm{inl}\,1} with \mathfrak X's two rational components compatibly with \mathrm{toDR}; force each exceptional \mathrm{comp}_{(n,i)} to lie over the crossing point \mathrm{nodeEquiv}\,n and to have \kappa-fibre a curve model with function field \kappa(t); provide injectively indexed points \mathrm{edgePt}(n,d) lying on \mathrm{comp}_{\mathrm{chainPos}(n,d)} and \mathrm{comp}_{\mathrm{chainPos}(n,d+1)}, over \mathrm{nodeEquiv}\,n, exhausting all pairwise intersections of components and transversal there (the germ of the sum of the two ideals is the maximal ideal); and an open \mathrm{smoothOffEdges}, smooth of relative dimension 1 over \operatorname{Spec}O, containing every non-edge point.
Relation to Mathlib
Mathlib supplies the ambient notions used here (Scheme.IdealSheafData, properness, flatness, SmoothOfRelativeDimension, IsRegularLocalRing, ringKrullDim); the resolved Deligne–Rapoport model package, the invertibility predicate on ideal sheaf data and the component indexing X0MqComponents are the project's own.
Where it is used
The structure axiomatises a regular model of X_0(p) over a base O obtained from the Deligne–Rapoport model by resolving the supersingular crossing points into chains of rational curves, with its special fibre described by the data entering the x0MqResolvedTable intersection matrix. It is the geometric input for computations of the component group of the Jacobian at p and for the Picard-functor comparisons 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.
- 138 lines
- 37 declarations
- used in the statements of 77 theorems and imported by 80 proofs
- imports 4 definition modules
Source file: Definitions/Def_ModularCurve_DRResolvedModelPackageV4.lean
Imports
Declarations
- def
ModularCurve.DRResolvedModelPackage.chainPos - def
ModularCurve.DRModel.baseChangeMap - structure
ModularCurve.DRResolvedModelPackage - field
ModularCurve.DRResolvedModelPackage.Y - field
ModularCurve.DRResolvedModelPackage.toBase - field
ModularCurve.DRResolvedModelPackage.toDR - field
ModularCurve.DRResolvedModelPackage.toDR_over - field
ModularCurve.DRResolvedModelPackage.regular - field
ModularCurve.DRResolvedModelPackage.IsRegularLocalRing - field
ModularCurve.DRResolvedModelPackage.stalk_dim_le_two - field
ModularCurve.DRResolvedModelPackage.ringKrullDim - field
ModularCurve.DRResolvedModelPackage.toDR_iso_smoothLocus - field
ModularCurve.DRResolvedModelPackage.toDR_iso_generic - field
ModularCurve.DRResolvedModelPackage.node - field
ModularCurve.DRResolvedModelPackage.width - field
ModularCurve.DRResolvedModelPackage.one_le_width - field
ModularCurve.DRResolvedModelPackage.nodeEquiv - field
ModularCurve.DRResolvedModelPackage.comp - field
ModularCurve.DRResolvedModelPackage.comp_isInvertible - field
ModularCurve.DRResolvedModelPackage.comp_integral - field
ModularCurve.DRResolvedModelPackage.comp_support - field
ModularCurve.DRResolvedModelPackage.comp_prod - field
ModularCurve.DRResolvedModelPackage.codim - field
ModularCurve.DRResolvedModelPackage.ringKrullDim - field
ModularCurve.DRResolvedModelPackage.strict_iso_inf - field
ModularCurve.DRResolvedModelPackage.strict_iso_zero - field
ModularCurve.DRResolvedModelPackage.exc_image - field
ModularCurve.DRResolvedModelPackage.edgePt - field
ModularCurve.DRResolvedModelPackage.edgePt_injective - field
ModularCurve.DRResolvedModelPackage.edgePt_mem - field
ModularCurve.DRResolvedModelPackage.edgePt_over - field
ModularCurve.DRResolvedModelPackage.edgePt_exhaust - field
ModularCurve.DRResolvedModelPackage.edgePt_transversal - field
ModularCurve.DRResolvedModelPackage.exc_rational - field
ModularCurve.DRResolvedModelPackage.e - field
ModularCurve.DRResolvedModelPackage.smoothOffEdges - field
ModularCurve.DRResolvedModelPackage.mem_smoothOffEdges
Source
import Mathlib import Definitions.Def_ModularCurve_DRModelPackage import Definitions.Def_ModularCurve_X0MqResolvedTable import Definitions.Def_AlgebraicCurve_RelCartier import Definitions.Def_AlgebraicGeometry_RelativePicardFunctor set_option autoImplicit false open CategoryTheory CategoryTheory.Limits AlgebraicGeometry noncomputable section namespace ModularCurve def DRResolvedModelPackage.chainPos {node : Type} (width : node → ℕ) (n : node) (d : ℕ) : X0MqComponents width := if h0 : d = 0 then Sum.inl 0 else if h : d < width n then Sum.inr ⟨n, ⟨d - 1, by omega⟩⟩ else Sum.inl 1 variable (p : ℕ) [Fact p.Prime] variable {p} in def DRModel.baseChangeMap {O κ : Type} [CommRing O] [CommRing κ] (toκ : O →+* κ) : pullback (DRModel.toBase p) (Spec.map (CommRingCat.ofHom (algebraMap ℤ κ))) ⟶ pullback (DRModel.toBase p) (Spec.map (CommRingCat.ofHom (algebraMap ℤ O))) := pullback.map _ _ _ _ (𝟙 _) (Spec.map (CommRingCat.ofHom toκ)) (𝟙 _) (by rw [Category.comp_id, Category.id_comp]) (by rw [Category.comp_id, ← Spec.map_comp] congr 1 ext1 exact RingHom.ext_int _ _) structure DRResolvedModelPackage (𝔛 : DRModelPackage p) (O : Type) [CommRing O] (κ : Type) [Field κ] [CharP κ p] [IsAlgClosed κ] (toκ : O →+* κ) where Y : Scheme.{0} toBase : Y ⟶ Spec (CommRingCat.of O) toDR : Y ⟶ pullback (DRModel.toBase p) (Spec.map (CommRingCat.ofHom (algebraMap ℤ O))) toDR_over : toDR ≫ pullback.snd _ _ = toBase [toDR_proper : IsProper toDR] [isProper : IsProper toBase] [flat : Flat toBase] [isIntegral : IsIntegral Y] [isLocallyNoetherian : IsLocallyNoetherian Y] regular : ∀ y : Y, y ∉ toBase ⁻¹ᵁ (PrimeSpectrum.basicOpen ((p : ℕ) : O) : (Spec (CommRingCat.of O)).Opens) → IsRegularLocalRing (Y.presheaf.stalk y) stalk_dim_le_two : ∀ y : Y, y ∉ toBase ⁻¹ᵁ (PrimeSpectrum.basicOpen ((p : ℕ) : O) : (Spec (CommRingCat.of O)).Opens) → ringKrullDim (Y.presheaf.stalk y) ≤ 2 toDR_iso_smoothLocus : IsIso (toDR ∣_ (pullback.fst (DRModel.toBase p) _ ⁻¹ᵁ 𝔛.smoothLocus)) toDR_iso_generic : IsIso (toDR ∣_ (pullback.snd (DRModel.toBase p) _ ⁻¹ᵁ (PrimeSpectrum.basicOpen ((p : ℕ) : O) : (Spec (CommRingCat.of O)).Opens))) node : Type [node_fintype : Fintype node] [node_deq : DecidableEq node] width : node → ℕ one_le_width : ∀ n, 1 ≤ width n nodeEquiv : node ≃ ↥(pullback (𝔛.compInf κ) (𝔛.compZero κ)) comp : X0MqComponents width → Y.IdealSheafData comp_isInvertible : ∀ v, (comp v).IsInvertible comp_integral : ∀ v, IsIntegral (comp v).subscheme comp_support : ∀ v (y : Y), y ∈ (comp v).support → y ∉ toBase ⁻¹ᵁ (PrimeSpectrum.basicOpen ((p : ℕ) : O) : (Spec (CommRingCat.of O)).Opens) comp_prod : ∀ U : Y.affineOpens, (∏ v, comp v).ideal U = Ideal.span {((p : ℕ) : Γ(Y, U))} η : X0MqComponents width → Y η_not_mem : ∀ v, η v ∉ toBase ⁻¹ᵁ (PrimeSpectrum.basicOpen ((p : ℕ) : O) : (Spec (CommRingCat.of O)).Opens) η_stalk : ∀ v, ∃ (U : Y.affineOpens) (hU : η v ∈ (U : Y.Opens)), Ideal.map (Y.presheaf.germ (U : Y.Opens) (η v) hU).hom ((comp v).ideal U) = IsLocalRing.maximalIdeal (Y.presheaf.stalk (η v)) ∧ ∀ w, w ≠ v → Ideal.map (Y.presheaf.germ (U : Y.Opens) (η v) hU).hom ((comp w).ideal U) = ⊤ codim : ∀ y : Y, y ∉ toBase ⁻¹ᵁ (PrimeSpectrum.basicOpen ((p : ℕ) : O) : (Spec (CommRingCat.of O)).Opens) → ringKrullDim (Y.presheaf.stalk y) ≤ 1 → ∃ v, y = η v strict_iso_inf : ∃ e : pullback ((comp (Sum.inl 0)).subschemeι ≫ toBase) (Spec.map (CommRingCat.ofHom toκ)) ⟶ (𝔛.ratModel κ).C, IsIso e ∧ e ≫ (𝔛.ratModel κ).toBase = pullback.snd _ _ ∧ e ≫ 𝔛.compInf κ ≫ DRModel.baseChangeMap toκ = pullback.fst _ _ ≫ (comp (Sum.inl 0)).subschemeι ≫ toDR strict_iso_zero : ∃ e : pullback ((comp (Sum.inl 1)).subschemeι ≫ toBase) (Spec.map (CommRingCat.ofHom toκ)) ⟶ (𝔛.ratModel κ).C, IsIso e ∧ e ≫ (𝔛.ratModel κ).toBase = pullback.snd _ _ ∧ e ≫ 𝔛.compZero κ ≫ DRModel.baseChangeMap toκ = pullback.fst _ _ ≫ (comp (Sum.inl 1)).subschemeι ≫ toDR exc_image : ∀ (n : node) (i : Fin (width n - 1)), ∀ y ∈ (comp (Sum.inr ⟨n, i⟩)).support, toDR.base y = (pullback.fst (𝔛.compInf κ) (𝔛.compZero κ) ≫ 𝔛.compInf κ ≫ DRModel.baseChangeMap toκ).base (nodeEquiv n) edgePt : (n : node) → Fin (width n) → Y edgePt_injective : Function.Injective (fun e : Σ n, Fin (width n) => edgePt e.1 e.2) edgePt_mem : ∀ (n : node) (d : Fin (width n)), edgePt n d ∈ ((comp (DRResolvedModelPackage.chainPos width n d)).support : Set Y) ∩ ((comp (DRResolvedModelPackage.chainPos width n (d + 1))).support : Set Y) edgePt_over : ∀ (n : node) (d : Fin (width n)), toDR.base (edgePt n d) = (pullback.fst (𝔛.compInf κ) (𝔛.compZero κ) ≫ 𝔛.compInf κ ≫ DRModel.baseChangeMap toκ).base (nodeEquiv n) edgePt_exhaust : ∀ v w, v ≠ w → ∀ y ∈ ((comp v).support : Set Y) ∩ ((comp w).support : Set Y), ∃ (n : node) (d : Fin (width n)), y = edgePt n d ∧ ((v = DRResolvedModelPackage.chainPos width n d ∧ w = DRResolvedModelPackage.chainPos width n (d + 1)) ∨ (w = DRResolvedModelPackage.chainPos width n d ∧ v = DRResolvedModelPackage.chainPos width n (d + 1))) edgePt_transversal : ∀ (n : node) (d : Fin (width n)), ∃ (U : Y.affineOpens) (hU : edgePt n d ∈ (U : Y.Opens)), Ideal.map (Y.presheaf.germ (U : Y.Opens) (edgePt n d) hU).hom ((comp (DRResolvedModelPackage.chainPos width n d)).ideal U ⊔ (comp (DRResolvedModelPackage.chainPos width n (d + 1))).ideal U) = IsLocalRing.maximalIdeal (Y.presheaf.stalk (edgePt n d)) exc_rational : ∀ (n : node) (i : Fin (width n - 1)), ∃ (M : AlgebraicCurve.CurveModel κ (RatFunc κ)) (e : M.C ⟶ pullback ((comp (Sum.inr ⟨n, i⟩)).subschemeι ≫ toBase) (Spec.map (CommRingCat.ofHom toκ))), IsIso e ∧ e ≫ pullback.snd _ _ = M.toBase smoothOffEdges : Y.Opens [smoothOffEdges_smooth : SmoothOfRelativeDimension 1 (smoothOffEdges.ι ≫ toBase)] mem_smoothOffEdges : ∀ y : Y, (∀ (n : node) (d : Fin (width n)), y ≠ edgePt n d) → y ∈ smoothOffEdges attribute [instance] DRResolvedModelPackage.toDR_proper DRResolvedModelPackage.isProper DRResolvedModelPackage.flat DRResolvedModelPackage.isIntegral DRResolvedModelPackage.isLocallyNoetherian DRResolvedModelPackage.node_fintype DRResolvedModelPackage.node_deq DRResolvedModelPackage.smoothOffEdges_smooth end ModularCurve end
Statements phrased using this module (77)
- Depth dictionary gives the depth divisor and second-branch degree
ModularCurve.PlaceSpecialization.sum_height_mul_multidegree_comp_eq_depthDiv_and_apply_inl_one_eq_degree_sndDiv_level144 below · depth 16 - Valuation ring of the inertia field inside A
ModularCurve.inertiaField_comap_incl_and_surjective_and_isAlgClosed_residueField10 below · depth 16 - Existence of a resolved Deligne–Rapoport model with étale crossing charts
ModularCurve.DRModelPackage.exists_dRResolvedModelPackageV4_and_dRResolvedModelCharts1,166 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 - 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 - Divisorial descent along the resolved Deligne–Rapoport model
ModularCurve.DRResolvedModelPackage.exists_isInvertible_and_pullback_toDR_iso_of_forall_exceptional_degree_eq_zero1,192 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 - Base change from characteristic p lands in the p-fibre
ModularCurve.DRModel.baseChangeMap_apply_notMem_preimage_basicOpen0 below · depth 18 - Rationality of a closed-fibre section gives a closed point
ModularCurve.DRModel.isClosed_singleton_baseChangeMap_residue_apply122 below · depth 18 - Components of the special fibre stay distinct over O
ModularCurve.DRModelPackage.baseChangeMap_compInf_genericPoint_ne_baseChangeMap_compZero_genericPoint206 below · depth 18 - Generic points of the two special-fibre components are smooth
ModularCurve.DRModelPackage.baseChangeMap_genericPoint_mem_preimage_smoothLocus59 below · depth 18 - Maximality of the two special-fibre component generic points
ModularCurve.DRModelPackage.eq_baseChangeMap_genericPoint_of_specializes44 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 - An orientation bit matching strict places to branch components
ModularCurve.DRModelPackage.exists_swap_forall_isStrict_section_mem_range_comp_of_reading445 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 - Injectivity of the node map into the model over O
ModularCurve.DRModelPackage.injective_baseChangeMap_compInf_of_exists_section2 below · depth 18 - Normality of stalks of the base-changed Deligne–Rapoport model
ModularCurve.DRModelPackage.isIntegrallyClosed_stalk_pullback_toBase1,102 below · depth 18 - Regular stalks of X_O away from the crossing points
ModularCurve.DRModelPackage.isRegularLocalRing_stalk_of_forall_ne_baseChangeMap_crossing59 below · depth 18 - Trichotomy for points of the integral model over a DVR
ModularCurve.DRModelPackage.mem_preimage_basicOpen_or_mem_preimage_smoothLocus_or_exists_eq_of_pullback_toBase56 below · depth 18 - Image of the zero component equals its generic point's closure
ModularCurve.DRModelPackage.range_compZero_comp_baseChangeMap_eq_closure_and_isClosed252 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 - Local triviality at a crossing of a degree-zero divisorial sheaf
ModularCurve.DRResolvedModelPackage.DRResolvedModelCharts.exists_open_pullback_iso_unit_of_forall_exceptional_degree_eq_zero94 below · depth 18 - Crossing points have stalk Krull dimension greater than one
ModularCurve.DRResolvedModelPackage.DRResolvedModelCharts.not_ringKrullDim_stalk_crossingPt_le_one4 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 - Residue field map is an isomorphism at a rational point
ModularCurve.DRModel.isIso_residueFieldMap_snd_baseChangeMap_residue_apply0 below · depth 19 - Crossing points specialise from both component generic points
ModularCurve.DRModelPackage.baseChangeMap_genericPoint_specializes_crossing0 below · depth 19 - Special fibre is covered by the two component generic points
ModularCurve.DRModelPackage.baseChangeMap_genericPoint_specializes_or0 below · depth 19 - Uniqueness of the point over 𝒪 on a j-level set
ModularCurve.DRModelPackage.eq_of_forall_exists_comp_baseChangeMap_eq_of_not_mem_jNeLocus234 below · depth 19 - Special-fibre points with stalk of dimension ≤ 1
ModularCurve.DRModelPackage.eq_or_eq_baseChangeMap_genericPoint_of_ringKrullDim_stalk_le_one904 below · depth 19 - Points in both component closures are crossing points
ModularCurve.DRModelPackage.exists_eq_baseChangeMap_crossing_of_mem_closure_of_mem_closure253 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 - (p) is radical on affine opens of X_O
ModularCurve.DRModelPackage.isRadical_span_natCast_sections_pullback_toBase185 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 - 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 - Image of the ∞-component is the closure of its generic point
ModularCurve.DRModelPackage.range_compInf_comp_baseChangeMap_eq_closure_and_isClosed252 below · depth 19 - Euler characteristic of ι_w^*𝒪(Cᵥ) shifts by adjacency number
ModularCurve.DRResolvedModelPackage.eulerChar_sectionsOf_pullback_invModule_comp_eq_add_x0MqAdjV4107 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 - Edges between distinct components equal the adjacency x0MqAdj
ModularCurve.DRResolvedModelPackage.natCard_edge_eq_x0MqAdjV40 below · depth 19 - Raw intersection rows for the resolved X₀(Mq) table
ModularCurve.intersectionAlpha_x0MqResolvedTable_eq_sum_x0MqAdj_and_sum_x0MqAdj_inl0 below · depth 19 - Strict-transform rows of the resolved X₀(Mq) intersection table
ModularCurve.intersectionAlpha_x0MqResolvedTable_inl0 below · depth 19 - 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 - Points in both component closures are crossing points
ModularCurve.DRModelPackage.exists_eq_baseChangeMap_crossing_of_ne_of_mem_closure_of_mem_closure45 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 - Finiteness and degree of Cᵥ ∩ C_w over k
ModularCurve.DRResolvedModelPackage.isFinite_and_finrank_subscheme_comap_comp_eq_natCardV42 below · depth 20 - Invertibility of the ideal of Cᵥ restricted to C_w
ModularCurve.DRResolvedModelPackage.isInvertible_comap_comp_subschemeIotaV41 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 - Generic points of the special fibre give minimal primes over (p)
ModularCurve.DRModelPackage.mem_minimalPrimes_of_fst_baseChangeMap_genericPoint_eq_iotaFin47 below · depth 22 - Stalks at the two special-fibre generic points have dimension one
ModularCurve.DRModelPackage.ringKrullDim_stalk_baseChangeMap_genericPoint_eq_one906 below · depth 22 - Images of the two special-fibre generic points are p-fibre-maximal
ModularCurve.DRModelPackage.eq_fst_baseChangeMap_genericPoint_of_specializes45 below · depth 23