Definitions/Def_ModularCurve_JZeroSemistableSpecialization.lean
Semistable specialization data for at
Three auxiliary notions are introduced first. For q\in\mathbb N and an element x of an additive monoid, PrimeToTorsion q x asserts that n\cdot x=0 for some n>0 with q\nmid n, i.e. x is torsion of order prime to q; the accompanying lemmas record that 0 satisfies it when q\neq 1, that it is preserved by addition (for q prime), by negation, and by additive monoid homomorphisms. For a subgroup I of a group G acting distributively on an abelian group M, smulInvariants I M is the additive subgroup \{x : \sigma\cdot x=x \text{ for all }\sigma\in I\}, and inertiaInvariants A M specialises this to I= the inertia subgroup of a valuation subring A of \overline{\mathbb Q} over \mathbb Q acting on JZero\,M=\mathrm{Pic}^0 of the level-M modular function field over \overline{\mathbb Q}.
The structure JZeroSemistableSpecialization, formed for a valuation subring A of \overline{\mathbb Q}, naturals N (nonzero) and q with q prime, and Hecke-module structures on the relevant groups, bundles as fields the data and properties of a semistable specialization. Writing \kappa for the residue field of A and F= modularFunctionFieldC \kappa\,N (the subfield of \kappa((t)) generated by the j- and j_N-expansions), it carries: a finite set nodes of pairs of places of F/\kappa, each place having residue field generated by \kappa; a \kappa-semilinear automorphism frob of F whose base automorphism is a\mapsto a^q, which permutes nodes by an involution; a width function nodes → ℕ; a homomorphism comp from the inertia invariants of JZero(Nq) to the component group of the width-weighted Gram pairing on the degree-zero character lattice of nodes, on which T_\ell acts by \ell+1 for \ell\nmid Nq and whose kernel is stable under the Hecke algebra and under any Frobenius at q; a homomorphism sp to the glued \mathrm{Pic}^0 of (F,\text{nodes}), which on the kernel of comp is T_\ell-equivariant after projection to \mathrm{Pic}^0\times\mathrm{Pic}^0, intertwines Frobenius at q with the glued map glueMap, sends T_q on the subgroup of node-unit classes to the permutation action induced by nodePerm, and is injective on prime-to-q torsion in the kernel of comp; the assertion that Hecke eigen-torsion for a maximal ideal \mathfrak m with q invertible in HeckeAlg/\mathfrak m is killed by some prime p\neq q; and a Hecke-equivariant specialization spN of JZero\,N into \mathrm{Pic}^0(F) that is injective on prime-to-q torsion and hits every prime-to-q torsion class by a prime-to-q torsion element. The structure is a carrier of hypotheses: it asserts nothing about existence of such data.
Relation to Mathlib
Mathlib has no notion of glued \mathrm{Pic}^0, of the component group of a weighted dual graph, or of specialization data for modular Jacobians; these rest on the project's own GluedPic0, componentGroup and JZero. PrimeToTorsion is a bespoke predicate for torsion of order prime to a fixed q, and smulInvariants packages the fixed points of a DistribMulAction of a subgroup as an AddSubgroup.
Where it is used
These definitions supply the language for the level-lowering step at the auxiliary prime q: the special fibre of X_0(Nq) at q is described as two copies of the level-N curve glued along pairs of nodes, and a mod-p Hecke eigensystem occurring in J_0(Nq) with trivial component-group contribution is transferred to J_0(N) through sp and spN.
References
- K. A. Ribet, On modular representations of \mathrm{Gal}(\overline{\mathbb{Q}}/\mathbb{Q}) arising from modular forms, Inventiones Mathematicae 100 (1990), 431–476
- 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
- S. Bosch, W. Lütkebohmert and M. Raynaud, Néron Models, Ergebnisse der Mathematik und ihrer Grenzgebiete 21, Springer, 1990, §9.6
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 177 lines
- 41 declarations
- used in the statements of 128 theorems and imported by 147 proofs
- imports 6 definition modules
Source file: Definitions/Def_ModularCurve_JZeroSemistableSpecialization.lean
Imports
Declarations
- def
ModularCurve.PrimeToTorsion - theorem
ModularCurve.PrimeToTorsion.zero - theorem
ModularCurve.PrimeToTorsion.add - theorem
ModularCurve.PrimeToTorsion.neg - theorem
ModularCurve.PrimeToTorsion.map - def
ModularCurve.smulInvariants - theorem
ModularCurve.mem_smulInvariants - def
ModularCurve.inertiaInvariants - theorem
ModularCurve.mem_inertiaInvariants - structure
ModularCurve.JZeroSemistableSpecialization - field
ModularCurve.JZeroSemistableSpecialization.nodes - field
ModularCurve.JZeroSemistableSpecialization.Place - field
ModularCurve.JZeroSemistableSpecialization.nodes_rational - field
ModularCurve.JZeroSemistableSpecialization.frob - field
ModularCurve.JZeroSemistableSpecialization.frob_nodeStable - field
ModularCurve.JZeroSemistableSpecialization.baseAut_frob - field
ModularCurve.JZeroSemistableSpecialization.nodePerm_nodePerm - field
ModularCurve.JZeroSemistableSpecialization.width - field
ModularCurve.JZeroSemistableSpecialization.comp - field
ModularCurve.JZeroSemistableSpecialization.comp_heckeGen - field
ModularCurve.JZeroSemistableSpecialization.hx - field
ModularCurve.JZeroSemistableSpecialization.comp_hecke_of_comp_eq_zero - field
ModularCurve.JZeroSemistableSpecialization.hx - field
ModularCurve.JZeroSemistableSpecialization.comp_frob_of_comp_eq_zero - field
ModularCurve.JZeroSemistableSpecialization.hx - field
ModularCurve.JZeroSemistableSpecialization.sp - field
ModularCurve.JZeroSemistableSpecialization.GluedPic0 - field
ModularCurve.JZeroSemistableSpecialization.toPic0Pair_sp_heckeGen - field
ModularCurve.JZeroSemistableSpecialization.hx - field
ModularCurve.JZeroSemistableSpecialization.toPic0Pair_sp_eq_zero - field
ModularCurve.JZeroSemistableSpecialization.hx - field
ModularCurve.JZeroSemistableSpecialization.sp_frob - field
ModularCurve.JZeroSemistableSpecialization.hx - field
ModularCurve.JZeroSemistableSpecialization.sp_heckeGen_self - field
ModularCurve.JZeroSemistableSpecialization.hx - field
ModularCurve.JZeroSemistableSpecialization.sp_injective - field
ModularCurve.JZeroSemistableSpecialization.exists_prime_torsion - field
ModularCurve.JZeroSemistableSpecialization.spN - field
ModularCurve.JZeroSemistableSpecialization.spN_hecke - field
ModularCurve.JZeroSemistableSpecialization.spN_injective - field
ModularCurve.JZeroSemistableSpecialization.spN_surjective
Source
import Definitions.Def_AlgebraicCurve_GluedPic0 import Definitions.Def_AlgebraicCurve_GluedPic0Functoriality import Definitions.Def_ModularCurve_ArithmeticGalois import Definitions.Def_ModularCurve_JqCoeff import Definitions.Def_HeckeGalois_EichlerShimura import Definitions.Def_ModularCurve_ComponentGroup noncomputable section namespace ModularCurve open AlgebraicCurve IsLocalRing local notation "Qbar" => AlgebraicClosure ℚ section Generic def PrimeToTorsion (q : ℕ) {M : Type*} [AddMonoid M] (x : M) : Prop := ∃ n : ℕ, 0 < n ∧ ¬ q ∣ n ∧ n • x = 0 namespace PrimeToTorsion variable {q : ℕ} {M M' : Type*} theorem zero [AddMonoid M] (hq : q ≠ 1) : PrimeToTorsion q (0 : M) := ⟨1, Nat.one_pos, fun h => hq (Nat.dvd_one.mp h), nsmul_zero _⟩ theorem add [AddCommMonoid M] (hq : q.Prime) {x y : M} (hx : PrimeToTorsion q x) (hy : PrimeToTorsion q y) : PrimeToTorsion q (x + y) := by obtain ⟨n, hn, hqn, hnx⟩ := hx obtain ⟨m, hm, hqm, hmy⟩ := hy refine ⟨n * m, Nat.mul_pos hn hm, fun h => (hq.dvd_mul.mp h).elim hqn hqm, ?_⟩ rw [nsmul_add, mul_nsmul, hnx, nsmul_zero, zero_add, mul_comm n m, mul_nsmul, hmy, nsmul_zero] theorem neg [AddCommGroup M] {x : M} (hx : PrimeToTorsion q x) : PrimeToTorsion q (-x) := by obtain ⟨n, hn, hqn, hnx⟩ := hx exact ⟨n, hn, hqn, by rw [neg_nsmul, hnx, neg_zero]⟩ theorem map [AddMonoid M] [AddMonoid M'] {F : Type*} [FunLike F M M'] [AddMonoidHomClass F M M'] (f : F) {x : M} (hx : PrimeToTorsion q x) : PrimeToTorsion q (f x) := by obtain ⟨n, hn, hqn, hnx⟩ := hx exact ⟨n, hn, hqn, by rw [← map_nsmul, hnx, map_zero]⟩ end PrimeToTorsion def smulInvariants {G : Type*} [Group G] (I : Subgroup G) (M : Type*) [AddCommGroup M] [DistribMulAction G M] : AddSubgroup M where carrier := {x | ∀ σ ∈ I, σ • x = x} zero_mem' := fun σ _ => smul_zero σ add_mem' := fun {x y} hx hy σ hσ => by rw [smul_add, hx σ hσ, hy σ hσ] neg_mem' := fun {x} hx σ hσ => by rw [smul_neg, hx σ hσ] theorem mem_smulInvariants {G : Type*} [Group G] {I : Subgroup G} {M : Type*} [AddCommGroup M] [DistribMulAction G M] {x : M} : x ∈ smulInvariants I M ↔ ∀ σ ∈ I, σ • x = x := Iff.rfl end Generic section Inertia variable (A : ValuationSubring Qbar) (M : ℕ) def inertiaInvariants : AddSubgroup (JZero M) := smulInvariants (A.inertiaSubgroupIn ℚ) (JZero M) variable {A M} theorem mem_inertiaInvariants {x : JZero M} : x ∈ inertiaInvariants A M ↔ ∀ σ ∈ A.inertiaSubgroupIn ℚ, σ • x = x := Iff.rfl end Inertia section Semistable variable (A : ValuationSubring Qbar) (N q : ℕ) (hq : q.Prime) [NeZero N] noncomputable local instance instDecidableEqResidueFieldSemistable : DecidableEq (ResidueField A) := Classical.decEq _ set_option synthInstance.maxHeartbeats 80000 in noncomputable local instance instAlgebraResidueFieldModularFunctionFieldCSemistable : Algebra (ResidueField A) (modularFunctionFieldC (ResidueField A) N) := inferInstance variable [Module HeckeAlg (JZero (N * q))] [Module HeckeAlg (JZero N)] [Module HeckeAlg (Pic0 (ResidueField A) (modularFunctionFieldC (ResidueField A) N))] set_option synthInstance.maxHeartbeats 400000 in set_option maxHeartbeats 4000000 in structure JZeroSemistableSpecialization where nodes : Finset (Place (ResidueField A) (modularFunctionFieldC (ResidueField A) N) × Place (ResidueField A) (modularFunctionFieldC (ResidueField A) N)) nodes_rational : ∀ s ∈ nodes, Function.Surjective (algebraMap (ResidueField A) s.1.ResidueField) ∧ Function.Surjective (algebraMap (ResidueField A) s.2.ResidueField) frob : SemilinearAut (ResidueField A) (modularFunctionFieldC (ResidueField A) N) frob_nodeStable : SemilinearAut.IsNodeStable nodes frob baseAut_frob : ∀ a : ResidueField A, SemilinearAut.baseAut frob a = a ^ q nodePerm_nodePerm : ∀ s : ↥nodes, SemilinearAut.nodePerm nodes frob frob_nodeStable (SemilinearAut.nodePerm nodes frob frob_nodeStable s) = s width : ↥nodes → ℕ comp : ↥(inertiaInvariants A (N * q)) →+ componentGroup width comp_heckeGen : ∀ ℓ : Nat.Primes, ¬ (ℓ : ℕ) ∣ N * q → ∀ (x : ↥(inertiaInvariants A (N * q))) (hx : heckeGen ℓ • (x : JZero (N * q)) ∈ inertiaInvariants A (N * q)), comp ⟨heckeGen ℓ • (x : JZero (N * q)), hx⟩ = (((ℓ : ℕ) : ℤ) + 1) • comp x comp_hecke_of_comp_eq_zero : ∀ (T : HeckeAlg) (x : ↥(inertiaInvariants A (N * q))) (hx : T • (x : JZero (N * q)) ∈ inertiaInvariants A (N * q)), comp x = 0 → comp ⟨T • (x : JZero (N * q)), hx⟩ = 0 comp_frob_of_comp_eq_zero : ∀ φ : Qbar ≃ₐ[ℚ] Qbar, A.IsFrobeniusAt φ q → ∀ (x : ↥(inertiaInvariants A (N * q))) (hx : φ • (x : JZero (N * q)) ∈ inertiaInvariants A (N * q)), comp x = 0 → comp ⟨φ • (x : JZero (N * q)), hx⟩ = 0 sp : ↥(inertiaInvariants A (N * q)) →+ GluedPic0 (ResidueField A) (modularFunctionFieldC (ResidueField A) N) nodes toPic0Pair_sp_heckeGen : ∀ ℓ : Nat.Primes, ¬ (ℓ : ℕ) ∣ N * q → ∀ (x : ↥(inertiaInvariants A (N * q))) (hx : heckeGen ℓ • (x : JZero (N * q)) ∈ inertiaInvariants A (N * q)), comp x = 0 → GluedPic0.toPic0Pair nodes (sp ⟨heckeGen ℓ • (x : JZero (N * q)), hx⟩) = heckeGen ℓ • GluedPic0.toPic0Pair nodes (sp x) toPic0Pair_sp_eq_zero : ∀ (T : HeckeAlg) (x : ↥(inertiaInvariants A (N * q))) (hx : T • (x : JZero (N * q)) ∈ inertiaInvariants A (N * q)), comp x = 0 → GluedPic0.toPic0Pair nodes (sp x) = 0 → GluedPic0.toPic0Pair nodes (sp ⟨T • (x : JZero (N * q)), hx⟩) = 0 sp_frob : ∀ φ : Qbar ≃ₐ[ℚ] Qbar, A.IsFrobeniusAt φ q → ∀ (x : ↥(inertiaInvariants A (N * q))) (hx : φ • (x : JZero (N * q)) ∈ inertiaInvariants A (N * q)), comp x = 0 → sp ⟨φ • (x : JZero (N * q)), hx⟩ = GluedPic0.glueMap nodes frob frob_nodeStable (sp x) sp_heckeGen_self : ∀ (x : ↥(inertiaInvariants A (N * q))) (hx : heckeGen ⟨q, hq⟩ • (x : JZero (N * q)) ∈ inertiaInvariants A (N * q)), comp x = 0 → ∀ w : ↥nodes → Additive (ResidueField A)ˣ, sp x = GluedPic0.nodeUnit nodes w → sp ⟨heckeGen ⟨q, hq⟩ • (x : JZero (N * q)), hx⟩ = GluedPic0.nodeUnit nodes (fun t => w ((SemilinearAut.nodePerm nodes frob frob_nodeStable).symm t)) sp_injective : ∀ x : ↥(inertiaInvariants A (N * q)), PrimeToTorsion q (x : JZero (N * q)) → comp x = 0 → sp x = 0 → x = 0 exists_prime_torsion : ∀ 𝔪 : Ideal HeckeAlg, 𝔪.IsMaximal → IsUnit ((q : ℕ) : HeckeAlg ⧸ 𝔪) → ∀ x ∈ heckeTorsion (JZero (N * q)) 𝔪, ∃ p : ℕ, p.Prime ∧ p ≠ q ∧ p • x = 0 spN : JZero N →+ Pic0 (ResidueField A) (modularFunctionFieldC (ResidueField A) N) spN_hecke : ∀ (T : HeckeAlg) (y : JZero N), spN (T • y) = T • spN y spN_injective : ∀ y : JZero N, PrimeToTorsion q y → spN y = 0 → y = 0 spN_surjective : ∀ c : Pic0 (ResidueField A) (modularFunctionFieldC (ResidueField A) N), PrimeToTorsion q c → ∃ y : JZero N, PrimeToTorsion q y ∧ spN y = c end Semistable end ModularCurve end
Statements phrased using this module (128)
- Toric dichotomy data from a semistable specialisation at q
ModularCurve.existsToricDichotomyData_of_jZeroSemistableSpecialization237 below · depth 9 - Existence of a semistable specialisation datum for J₀(Nq)
ModularCurve.nonempty_jZeroSemistableSpecialization3,551 below · depth 9 - Widths, component map and glued specialisation for J₀(Nq) at q
ModularCurve.exists_width_comp_sp3,537 below · depth 10 - Decomposition-group stability of the kernel of the component map
ModularCurve.PlaceSpecialization.componentMap_decomposition_smul_eq_zero_of_eq_zero88 below · depth 11 - Frobenius stability of the kernel of the component map
ModularCurve.PlaceSpecialization.componentMap_frobenius_smul_eq_zero_of_eq_zero4 below · depth 11 - Hecke stability of the kernel of the component map at q
ModularCurve.PlaceSpecialization.componentMap_heckeAlg_smul_eq_zero_of_eq_zero_of_isModel965 below · depth 11 - T_ℓ acts as ℓ+1 through the component map
ModularCurve.PlaceSpecialization.componentMap_heckeGen_smul_eq_add_one_smul_of_isModel2,484 below · depth 11 - Injectivity of `spPic0` on prime-to-q torsion
ModularCurve.PlaceSpecialization.eq_zero_of_primeToTorsion_of_spPic0_eq_zero995 below · depth 11 - Hecke-equivariant component map and toric monodromy detection
ModularCurve.PlaceSpecialization.exists_heckeModule_componentGroup_toricMonodromyPart_mem_of_isModel2,736 below · depth 11 - Hecke-equivariance of the Pic⁰ specialisation map
ModularCurve.PlaceSpecialization.exists_heckeModule_pic0_spPic0_heckeAlg_smul999 below · depth 11 - Prime-to-q torsion classes lift along `spPic0`
ModularCurve.PlaceSpecialization.exists_primeToTorsion_spPic0_eq_of_primeToTorsion1,772 below · depth 11 - Lifting m-torsion from the component group to inertia invariants
ModularCurve.PlaceSpecialization.exists_torsion_preimage_componentMap_of_isModel1,311 below · depth 11 - Lifting m-torsion through the glued specialization at q
ModularCurve.PlaceSpecialization.exists_torsion_preimage_gluedSpecialization_of_isModel1,137 below · depth 11 - Widths, component map and glued specialisation over a place above q
ModularCurve.PlaceSpecialization.exists_widths_componentMap_gluedSpecialization_placeWidthChar_of_isModel1,892 below · depth 11 - Injectivity on prime-to-q torsion of component and glued specialization maps
ModularCurve.PlaceSpecialization.gluedSpecialization_componentMap_injective_primeToTorsion_of_isModel1,053 below · depth 11 - Frobenius law for the glued specialization
ModularCurve.PlaceSpecialization.gluedSpecialization_frobenius_smul_eq_glueMap4 below · depth 11 - Hecke action at q on node units of the glued specialisation
ModularCurve.PlaceSpecialization.gluedSpecialization_nodeUnit_heckeGen_eq_nodePerm_symm_comp526 below · depth 11 - Inertia differences on prime-to-q torsion are toric
ModularCurve.PlaceSpecialization.inertia_smul_sub_self_componentMap_eq_zero_toPic0Pair_eq_zero_of_isModel1,962 below · depth 11 - Decomposition-group equivariance of the glued specialization's Pic⁰-pair
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_decomposition_smul_eq_spPic0_smul158 below · depth 11 - Decomposition-group stability of the vanishing Pic⁰-pair
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_decomposition_smul_eq_zero_of_eq_zero88 below · depth 11 - Hecke stability of the toric kernel of the glued specialization
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_heckeAlg_smul_eq_zero_of_eq_zero_of_isModel1,199 below · depth 11 - Hecke equivariance of the projected glued specialization at q
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_heckeGen_equivariant_of_isModel957 below · depth 11 - Hecke law for the glued specialization on Pic⁰ pairs
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_heckeGen_smul_eq_heckePic0Fibre_of_isModel1,173 below · depth 11 - Comparison of the H=top and Igusa integral models
ModularCurve.exists_iso_xHDRLevel_top_drLevel_epsInf_pointEquivPlace191 below · depth 11 - Néron object of J₀(N₀p) at p with its bridges
ModularCurve.exists_jZeroNeronObjectAtP_and_bridge4,509 below · depth 11 - Prime-to-q monodromy lies in the toric locus
ModularCurve.exists_jZeroSemistableSpecialization_monodromy_mem_toricLocus3,551 below · depth 11 - Toric 𝔪-torsion of J₀(Nq) lies in monodromy part
ModularCurve.exists_jZeroSemistableSpecialization_toricLocus_heckeTorsion_le_toricMonodromyPart3,551 below · depth 11 - Existence of a model prolongation tuple at a place above q
ModularCurve.exists_placeSpecialization_prolongationTuple_isModel_regularityLaw_nodeValueLaw_orderLawFixed1,659 below · depth 11 - Finite and toric parts transport from Jₜop(N₀p) to J₀(N₀p)
ModularCurve.map_finPts_jHNeronObjectAtP_top_eq_and_map_toricPts_eq_of_pic0Congr_of_bridge136 below · depth 11 - Semistable specialisation datum for J₀(Nq) with Néron clauses
ModularCurve.nonempty_jZeroSemistableSpecialization_neronClauses3,550 below · depth 11 - Néron object of J₀(N₀p) at p from a level model
ModularCurve.DRModelPackageLevel.exists_jZeroNeronObjectAtP_and_bridge_representsRelSubPic_abqFibre_of_levelModel4,507 below · depth 12 - Glued classes killed by `toPic0Pair` lift to toric monodromy
ModularCurve.PlaceSpecialization.exists_mem_toricMonodromyPart_sp_eq_of_toPic0Pair_eq_zero_of_isModel2,694 below · depth 12 - Widths, component map, glued specialisation and Hecke matrices
ModularCurve.PlaceSpecialization.exists_widths_componentMap_gluedSpecialization_placeWidthChar_correspondence_heckeComponentAction_agree_of_isModel2,483 below · depth 12 - Hecke propagation of glued vanishing away from q
ModularCurve.PlaceSpecialization.toPic0Pair_gluedSpecialization_heckeGen_dvd_smul_eq_zero_of_eq_zero_of_isModel1,171 below · depth 12 - Pull-back along φ⁻¹ intertwines the two Abel–Jacobi dictionaries
ModularCurve.jZeroNeronObjectAtP_pts_pic0Congr_eq_pts_comp_pullbackHom_of_modelIso_levelData66 below · depth 12 - Strict points reduce to reduceFst and reduceSnd
ModularCurve.DRModelPackageLevel.compat_reduceFst_reduceSnd_of_sp_eq_spPlace1,848 below · depth 13 - Special-fibre torus, abelian quotient and pins at level N₀p
ModularCurve.DRModelPackageLevel.exists_torusFibre_abqFibre_degeneracy_specialFibre_pins_of_levelModel1,857 below · depth 13 - Extension to an A-point of relative Pic⁰ versus good classes
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_iff_isGoodClass3,053 below · depth 13 - Inertia displacements σ x-x extend over the place
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_smul_sub2,607 below · depth 13 - Prime-to-p inertia differences lie in the toric part
ModularCurve.JZeroNeronObjectAtP.smul_sub_self_mem_toricPts_of_isGluedSpecialization2,620 below · depth 13 - Inertial differences realise prescribed node units at one node pair
ModularCurve.PlaceSpecialization.exists_inertia_smul_sub_self_sp_eq_nodeUnit_of_isModel2,693 below · depth 13 - Hecke transport of node units on the glued fibre at q
ModularCurve.PlaceSpecialization.exists_matrix_eq_correspondence_gluedSpecialization_nodeUnit_heckeGen_of_ne_of_isModel1,780 below · depth 13 - U_q preserves good divisors and transports their gluing data
ModularCurve.PlaceSpecialization.isGoodDiv_heckeDivBar_self_and_glueData_mem_admissible281 below · depth 13 - Semistable specialisation of J₀(Mq') with supersingular nodes
ModularCurve.exists_jZeroSemistableSpecialization_ssPlaces_monodromy3,551 below · depth 13 - A semistable witness package for J₀(Nq) at q∤ N
ModularCurve.exists_placeSpecialization_prolongationTuple_width_comp_sp_gluedSpecialization_placeWidthChar_regularityLaw_nodeValueLaw3,321 below · depth 13 - Unique A-section of the model through a given place
ModularCurve.DRModelPackageLevel.existsUnique_section_comp_eq_pointEquivPlace_symm0 below · depth 14 - Closure under addition of points extending to a place
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_add0 below · depth 14 - Inertia displacement at a non-crossing point extends to A
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_mk_smul_single_sub_single_of_not_mem_range_comp_inter1,146 below · depth 14 - Negation preserves extendability of Picard points to a place
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_neg0 below · depth 14 - Good classes extend to A-points of relative Pic⁰
ModularCurve.DRModelPackageLevel.extendsToPlace_pts_of_isGoodClass1,152 below · depth 14 - Extension over A implies good class for P
ModularCurve.DRModelPackageLevel.isGoodClass_of_extendsToPlace_pts3,008 below · depth 14 - Crossing special point: non-strict place, supersingular first reduction
ModularCurve.DRModelPackageLevel.not_isStrict_and_reduceFst_mem_of_range_subset_range_comp_inter1,910 below · depth 14 - Strict places reduce to reduceFst, reduceSnd on the Deligne–Rapoport model
ModularCurve.DRModelPackageLevel.placeOfPoint_eq_reduce_of_isModel_of_orderLawFixed1,896 below · depth 14 - Abelian coordinates of the reduction equal the glued specialisation pair
ModularCurve.DRModelPackageLevel.ptsSp_symm_abq_reduction_eq_toPic0Pair_of_isGluedSpecialization1,470 below · depth 14 - Inertia fixes the reduction of the section attached to a place
ModularCurve.DRModelPackageLevel.residue_comp_section_smul_eq_of_mem_inertia1 below · depth 14 - Norm along φ_κ acts as Frobenius pushforward on Pic⁰
ModularCurve.JZeroNeronObjectAtP.LevelModel.symm_fibreMap_frobeniusNormHom_eq_frobeniusPushforwardModL_symm1,181 below · depth 14 - Genus-zero transfer of good-class and glued-specialization data
ModularCurve.PlaceSpecialization.exists_isGoodClass_iff_isGluedSpecialization_of_not_genusFF_pos1,681 below · depth 14 - T_ℓ (ℓ≠ q) acts on node units by a correspondence matrix
ModularCurve.PlaceSpecialization.exists_matrix_eq_correspondence_gluedSpecialization_nodeUnit_heckeGen_of_ne_of_isModel_of_prolongation_of_regularityLaw_nodeValueLaw986 below · depth 14 - Regular prolongation at level N reducing j and j_N
ModularCurve.PlaceSpecialization.exists_regularProlongation_sp_jq_jqN330 below · depth 14 - Semistable specialization datum for J₀(Nq) with Néron clauses
ModularCurve.nonempty_jZeroSemistableSpecialization_neronClauses_nodes3,550 below · depth 14 - Reduction killed by both restriction maps when glued Pic⁰-pair vanishes
ModularCurve.DRModelPackageLevel.abq_reduction_eq_one_of_toPic0Pair_glueData_eq_zero_residueField1,404 below · depth 15 - Bidegree-zero section twists give A-points of relative Pic⁰
ModularCurve.DRModelPackageLevel.exists_schemeHomOver_poincare_pullbackAlong_iso_rigidify_sectionTwist_of_sum_eq_zero1,134 below · depth 15 - Strict places reduce onto one Deligne–Rapoport component, off the other
ModularCurve.DRModelPackageLevel.exists_swap_forall_isStrict_range_subset_range_comp3 below · depth 15 - Geometric generic points lie in the smooth locus
ModularCurve.DRModelPackageLevel.mem_smoothLocus_of_mem_range_fst_geomGeneric0 below · depth 15 - Abelian-quotient reduction of a good class matches the glued specialisation
ModularCurve.DRModelPackageLevel.ptsSp_symm_abq_reduction_pair_eq_toPic0Pair_of_isGluedSpecialization1,211 below · depth 15 - Frobenius conjugation and fibre points of the Igusa model
ModularCurve.JZeroNeronObjectAtP.LevelModel.fibrePt_eq_fibrePt_comp_frobenius_of_isFrobeniusAt86 below · depth 15 - Special fibre of an A-point equals reduction mod λ
ModularCurve.JZeroNeronObjectAtP.LevelModel.ptsSp_symm_schemeHomOverComp_resPt_eq_reductionModL741 below · depth 15 - Cross-power law for node depths under the ℓ-degeneracy maps
ModularCurve.PlaceSpecialization.exists_reduceFst_eq_and_yDepth_restrictAlong_heckeAlphaBar_pow_width_eq_of_ne_of_not_dvd1,950 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 - Inertia-invariant classes of J₀(M) lift to invariant divisors
ModularCurve.exists_inertiaStable_degZero_pic0Mk_eq178 below · depth 15 - ℤ-sections of G have finite index in J₀(p)(ℚ)
ModularCurve.finiteIndex_closure_range_sections_addSubgroupOf_fixedPoints_of_compMap4 below · depth 15 - Cartier anchors for toric monodromy, with witnesses identified
CerednikDrinfeld.exists_cartierAnchors_degeneracyDuality_jZero_ssPlaces_correspondence_arithFrobC_restrictAlong_placeWidthChar3,361 below · depth 16 - Sections of the resolved X₀(N₀p) model with depth-prescribed components
ModularCurve.DRModelPackageLevel.exists_sections_multidegree_eq_depth_of_exists_schemeHomOver_of_branch186 below · depth 16 - Bidegree-zero section twists are algebraically trivial on geometric fibres
ModularCurve.DRModelPackageLevel.isAlgEquivZero_fibreAt_sectionTwist_of_closedPoint_mem_range1,129 below · depth 16 - Degree-zero section twists vanish away from the closed point
ModularCurve.DRModelPackageLevel.isAlgEquivZero_fibreAt_sectionTwist_of_closedPoint_notMem_range1,043 below · depth 16 - Invertibility of section twists at smooth A-points
ModularCurve.DRModelPackageLevel.isInvertible_sectionTwist16 below · depth 16 - The two abq coordinates of a reduced Abel–Jacobi point
ModularCurve.DRModelPackageLevel.nonempty_poincare_pullbackAlong_abq_reduction_iso_pointTwist1,142 below · depth 16 - Vanishing divisor class trivialises a point twist on the special fibre
ModularCurve.DRModelPackageLevel.nonempty_pointTwist_comp0_iso_unit_of_pic0Mk_eq_zero629 below · depth 16 - Rigidified section twist restricted to the zeroth special-fibre component
ModularCurve.DRModelPackageLevel.nonempty_pullbackCurve_comp0_sectionTwist_iso854 below · depth 16 - Point twists of trivial divisor class are rigidly trivial
ModularCurve.DRModelPackageLevel.nonempty_rigidify_pointTwist_comp1_iso_unit_of_pic0Mk_eq_zero629 below · depth 16 - Restriction of the rigidified section twist to the second component
ModularCurve.DRModelPackageLevel.nonempty_rigidify_pullbackCurve_comp1_sectionTwist_iso854 below · depth 16 - Level transport along 1· p=p for places and J₀
ModularCurve.JZero.exists_addEquiv_placeEquiv_oneMul0 below · depth 16 - Degree-zero twists by A-sections come from D₀
ModularCurve.JZeroNeronObjectAtP.LevelModel.exists_schemeHomOver_poincare_pullbackAlong_iso_rigidify_sectionTwist_of_sum_eq_zero281 below · depth 16 - Reduction of a point classifying a rigidified section twist
ModularCurve.JZeroNeronObjectAtP.LevelModel.nonempty_poincare_baseChange_pullbackAlong_iso_pointTwist_of_iso_rigidify_sectionTwist29 below · depth 16 - Rigidified section twists restrict to the geometric generic fibre
ModularCurve.JZeroNeronObjectAtP.LevelModel.nonempty_poincare_pullbackAlong_iso_pointTwist_of_iso_rigidify_sectionTwist29 below · depth 16 - Poincaré pullback at a degree-zero class is the point twist
ModularCurve.JZeroNeronObjectAtP.LevelModel.nonempty_poincare_pullbackAlong_pts_pic0Mk_iso_pointTwist15 below · depth 16 - Cross-power law for node depths along the level-ℓ Hecke roof
ModularCurve.PlaceSpecialization.exists_reduceFst_eq_and_yDepth_restrictAlong_heckeAlphaBar_pow_placeWidthChar_eq_of_ne_of_not_dvd1,949 below · depth 16 - First reduction at q commutes with T_ℓ, ℓ ≠ q
ModularCurve.PlaceSpecialization.mapDomain_reduceFst_heckeDivBar_eq_heckeDivFibre_mapDomain_reduceFst_of_ne278 below · depth 16 - Place specialisation commutes with both degeneracy maps
ModularCurve.PlaceSpecialization.restrictAlong_heckeAlphaC_sp_and_restrictAlong_heckeBetaC_sp_eq_sp_restrictAlong_of_isModel933 below · depth 16 - Node depth along the degeneracy tower is a ramification power
ModularCurve.PlaceSpecialization.yDepth_restrictAlong_towerInclBar_eq_yDepth_pow_ramificationIndexAlong_heckeAlphaC1,296 below · depth 16 - Depth along the ℓ-substitution leg is a ramification power
ModularCurve.PlaceSpecialization.yDepth_restrictAlong_towerSubstBar_eq_yDepth_pow_ramificationIndexAlong_heckeBetaC985 below · depth 16 - Valuation ring of the inertia field inside A
ModularCurve.inertiaField_comap_incl_and_surjective_and_isAlgClosed_residueField10 below · depth 16 - Two-level joint semistable specialisation with pinned Hecke transport
CerednikDrinfeld.exists_twoLevelSemistableSpecialization_jointConstruction_ssPlaces_heckeTransport_canonical_levelPrimeIntertwine_correspondence_arithFrobC_restrictAlong_placeWidthChar3,351 below · depth 17 - Joint two-level semistable specialisation with degeneracy and Hecke transport
CerednikDrinfeld.exists_twoLevelSemistableSpecialization_jointConstruction_ssPlaces_heckeTransport_correspondence_restrictAlong_degeneracyComp_placeWidthChar3,338 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 - Bidegree-zero section twist: algebraic triviality on the special fibre
ModularCurve.DRModelPackageLevel.isAlgEquivZero_baseChange_rigidify_sectionTwist_residueField1,126 below · depth 17 - Degree-zero section twists on geometric fibres are algebraically equivalent to zero
ModularCurve.DRModelPackageLevel.isAlgEquivZero_fibreAt_sectionTwist_algebraicClosure1,040 below · depth 17 - Poincaré pullback of an O-point as a twist of sections
ModularCurve.DRModelPackageLevel.nonempty_pullback_toDR_poincare_pullbackAlong_iso_foldr_sectionTwist180 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 - Generic fibre of a bundle descended through the resolution
ModularCurve.DRResolvedModelPackage.nonempty_pullback_comp_toDR_iso_sectionTwist_of_iso_divisorial0 below · depth 17 - First-sheet divisor law at ordinary affine φ²-fixed places
ModularCurve.PlaceSpecialization.ProlongationTuple.mapDomain_reduceFst_filter_sheetOne_eq_ord_residueFst_residueField1,889 below · depth 17 - Second-sheet divisor law at ordinary affine φ²-fixed places
ModularCurve.PlaceSpecialization.ProlongationTuple.mapDomain_reduceSnd_filter_sheetTwo_eq_ord_residueSnd_residueField1,890 below · depth 17 - Specialisation commutes with degeneracy at fixed affine places
ModularCurve.PlaceSpecialization.sp_restrictAlong_eq_restrictAlong_sp_of_isModel_of_fixed_of_isAffineGeomPlace940 below · depth 17 - Node depth along the ℓ-degeneracy leg is a ramified power
ModularCurve.PlaceSpecialization.yDepth_restrictAlong_towerInclBar_eq_yDepth_pow_ramificationIndexAlong_heckeAlphaC_of_prime1,308 below · depth 17 - Node depth along the substitution degeneracy leg at ℓ≠ q
ModularCurve.PlaceSpecialization.yDepth_restrictAlong_towerSubstBar_eq_yDepth_pow_ramificationIndexAlong_heckeBetaC_of_prime985 below · depth 17 - Toric and finite parts of the torsion of J₀(Nq) at q
ModularCurve.exists_toricPart_finPart_torsion_jZero_of_not_dvd3,558 below · depth 17 - Specialisation surjects onto the toric kernel at supersingular nodes
ModularCurve.toric_sp_surjective_of_jZeroSemistableSpecialization_ssPlaces3,333 below · depth 17 - Joint two-level semistable specialisation with widths and arithmetic Frobenius
CerednikDrinfeld.exists_twoLevelSemistableSpecialization_jointConstruction_ssPlaces_heckeTransport_correspondence_restrictAlong_degeneracyComp_placeWidthChar_frobArithFrobC3,338 below · depth 18 - Common unit with simple pole over an ordinary Frobenius-fixed place
ModularCurve.PlaceSpecialization.ProlongationTuple.exists_commonUnit_pole_of_reduceFst_fixed_ordinary_residueField1,852 below · depth 18 - Two-level degeneracy glue for glued specialisations at q'
ModularCurve.PlaceSpecialization.gluedSpecialization_twoLevel_degeneracyGlue_of_isModel_placeWidthChar_restrictAlong1,917 below · depth 18 - One witness package for the semistable specialisation of J₀(Nq)
ModularCurve.exists_placeSpecialization_prolongationTuple_width_comp_sp_gluedSpecialization_placeWidthChar3,321 below · depth 18 - Frobenius and Uₚ on the toric part of J₀(N₀p)[pⁿ]
ModularCurve.jZeroNeronObjectAtP_smul_mem_toricPts_and_heckeGen_smul_eq_of_isFrobeniusAt_of_bridge1,998 below · depth 18 - Good representatives whose support avoids a finite set of places
ModularCurve.PlaceSpecialization.exists_isGoodDiv_mem_admissible_mk_eq_reduce_notMem_nodePairsOfPlaces1,719 below · depth 19 - Degeneracy pushforward of good divisors and glue data
ModularCurve.PlaceSpecialization.isGoodDiv_pushforwardAlong_and_glueData_eq_of_isModel944 below · depth 19 - Two integral degeneracy embeddings of modular function fields
ModularCurve.exists_degeneracyPair_residueField132 below · depth 19 - Semistable specialisation with supersingular nodes, toric monodromy and Hecke transport
ModularCurve.exists_jZeroSemistableSpecialization_ssPlaces_monodromy_closure_surjective_heckeTransport_v23,331 below · depth 19 - Frobenius and Uₚ on prime-to-p toric torsion
ModularCurve.jZeroNeronObjectAtP_smul_mem_toricPts_and_heckeGen_smul_eq_and_smul_heckeGen_eq_of_isFrobeniusAt_of_ne1,993 below · depth 19 - Prime-to-q inertia-invariant classes with equal glued specialisation coincide
ModularCurve.PlaceSpecialization.eq_of_primeToTorsion_of_componentMap_eq_zero_of_gluedSpecialization_eq1,054 below · depth 20 - Moving good classes off finite place sets: genus-zero case
ModularCurve.PlaceSpecialization.exists_isGoodDiv_mem_admissible_mk_eq_reduce_notMem_nodePairsOfPlaces_of_not_genusFF_pos1,713 below · depth 20 - Specialization commutes with degeneracy restriction off Frobenius-fixed places
ModularCurve.PlaceSpecialization.sp_restrictAlong_eq_restrictAlong_sp_of_isModel940 below · depth 20 - Semistable specialisation datum for J₀(Nq) with Néron clauses
ModularCurve.nonempty_jZeroSemistableSpecialization_neronClauses_nodes_heckeTransport_inertiaNodeUnit3,330 below · depth 20 - Hecke transport of node units on the glued fibre at q
ModularCurve.PlaceSpecialization.exists_matrix_gluedSpecialization_nodeUnit_heckeGen_of_ne_of_isModel1,780 below · depth 21 - Separating supersingular places by reductions of cusp-regular integral functions
ModularCurve.FullLevel.exists_cuspRegular_separating755 below · depth 22 - Genus-zero transport of glued specialisation data along a node-stable automorphism
ModularCurve.PlaceSpecialization.exists_isNodeStable_isGoodClass_iff_isGluedSpecialization_glueMap_of_not_genusFF_pos1,681 below · depth 22 - Integral node matrix for T_ℓ, ℓ≠ q, on glued specialisations
ModularCurve.PlaceSpecialization.exists_matrix_gluedSpecialization_nodeUnit_heckeGen_of_ne_of_isModel_of_prolongation_of_regularityLaw_nodeValueLaw986 below · depth 22 - Completeness of reduction on Riemann–Roch spaces, full level
ModularCurve.FullLevel.exists_mem_integers_riemannRochSpace_residue_eq_of_mem_riemannRochSpace_placeMap750 below · depth 23 - Node-unit Poincaré bundle puts a special-fibre class in the toric part
ModularCurve.JHNeronObjectAtP.ptsSp_symm_schemeHomOverComp_mem_range_nodeUnit_of_isNodeUnitModule_poincare_pullbackAlong1,672 below · depth 26