Definitions/Def_ModularCurve_ToricDescentData.lean
Toric descent data and degeneracy pushforwards at level
The first half works in a generic setting: a group G, a module J over the project's Hecke algebra HeckeAlg (with generators heckeGen ℓ, one for each rational prime) carrying a compatible G-action, a second HeckeAlg-module J_0, and two additive maps \delta_0,\delta_1 : J \to J_0 indexed by Fin 2. IsAbelianPartDataQGuarded q S I 𝒯 δ is a structure on a HeckeAlg-submodule \mathcal T \subseteq J with three fields: \delta_i kills \mathcal T for i=0,1; for every prime \ell \notin S one has \delta_i(T_\ell x) = T_\ell \delta_i(x) for all x; and, for every maximal ideal \mathfrak m \subset HeckeAlg which is not eventually Eisenstein (i.e. there is no finite set S' with T_\ell - (\ell+1) \in \mathfrak m for all \ell \notin S') and in whose residue ring the class of q is a unit, every element of the \mathfrak m-torsion heckeTorsion J 𝔪 that is fixed by all \sigma \in I and killed by both \delta_i already lies in \mathcal T. This is the project's unguarded IsAbelianPartData with the extra unit guard on q in the third clause, whence the forgetful map IsAbelianPartData.qGuarded. ToricFrobeniusHecke q φ 𝒯 says \varphi\cdot x = (q\,T_q)\cdot x for x \in \mathcal T. Three existential bundles package a submodule \mathcal T with ToricFrobeniusSq q φ 𝒯 (i.e. \varphi^2 x = q^2 x on \mathcal T) together with the unguarded data, the guarded data, or the guarded data plus the Frobenius–Hecke clause; each comes with choice-based extractors .toric and accessors, and the implications unguarded \Rightarrow guarded and full \Rightarrow guarded.
The second half fixes the two degeneracy maps at level Nq. DegeneracyPushforwardInputs N q asserts the conjunction, phrased as an existential over the data, of: integrality of the two algebra maps heckeAlphaBar (the inclusion of the base-changed full modular function field of level N into that of level Nq) and heckeBetaBar (the substitution q-expansion map), module-finiteness along each, and the pushforward norm formula along each. degeneracyPushforwardPair N q : Fin 2 → (JZero (N*q) →+ JZero N) is a total term, defined by a case split: on those inputs it is the pair of divisor-class pushforwards Pic0.pushforwardAlongHom along heckeAlphaBar and heckeBetaBar, and 0 otherwise; the accompanying lemmas identify it at any given witnesses and record the junk value.
Relation to Mathlib
Mathlib has no Hecke algebra acting on modular Jacobians and no notion of toric or abelian part of a degenerate fibre; these are the project's own. The divisor-theoretic input (places, divisors, \mathrm{Pic}^0 of a function field presented as a subfield of a Laurent series field, and pushforward along an integral algebra map) is likewise built in the project on top of Mathlib's valuation subrings and Dedekind-domain machinery.
Where it is used
These predicates are the vocabulary in which the geometric input to Mazur's principle at the auxiliary prime q is stated: Frobenius acting as q T_q (and so with square q^2) on the toric part of J_0(Nq) in characteristic q, and the identification of non-Eisenstein inertia-invariant torsion killed by both degeneracy pushforwards \alpha_*,\beta_*\colon J_0(Nq) \to J_0(N) as toric. They feed the level-lowering step for the mod p representation attached to a Frey curve.
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
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 176 lines
- 27 declarations
- used in the statements of 47 theorems and imported by 51 proofs
- imports 4 definition modules
Source file: Definitions/Def_ModularCurve_ToricDescentData.lean
Imports
Declarations
- structure
ModularCurve.IsAbelianPartDataQGuarded - field
ModularCurve.IsAbelianPartDataQGuarded.toric_le_ker - field
ModularCurve.IsAbelianPartDataQGuarded.goodPrime_equivariant - field
ModularCurve.IsAbelianPartDataQGuarded.component_eisenstein - field
ModularCurve.IsAbelianPartDataQGuarded.IsUnit - theorem
ModularCurve.IsAbelianPartData.qGuarded - def
ModularCurve.ExistsToricData - def
ModularCurve.ExistsToricData.toric - theorem
ModularCurve.ExistsToricData.toricFrobeniusSq - theorem
ModularCurve.ExistsToricData.isAbelianPartData - def
ModularCurve.ExistsToricDataQGuarded - theorem
ModularCurve.ExistsToricData.qGuarded - def
ModularCurve.ExistsToricDataQGuarded.toric - theorem
ModularCurve.ExistsToricDataQGuarded.toricFrobeniusSq - theorem
ModularCurve.ExistsToricDataQGuarded.isAbelianPartDataQGuarded - def
ModularCurve.ToricFrobeniusHecke - def
ModularCurve.ExistsToricDataFullQGuarded - def
ModularCurve.ExistsToricDataFullQGuarded.toric - theorem
ModularCurve.ExistsToricDataFullQGuarded.toricFrobeniusSq - theorem
ModularCurve.ExistsToricDataFullQGuarded.isAbelianPartDataQGuarded - theorem
ModularCurve.ExistsToricDataFullQGuarded.toricFrobeniusHecke - theorem
ModularCurve.ExistsToricDataFullQGuarded.toExistsToricDataQGuarded - def
ModularCurve.DegeneracyPushforwardInputs - def
ModularCurve.degeneracyPushforwardPair - theorem
ModularCurve.degeneracyPushforwardInputs_intro - theorem
ModularCurve.degeneracyPushforwardPair_eq - theorem
ModularCurve.degeneracyPushforwardPair_of_not
Source
import Mathlib import Definitions.Def_ModularCurve_MazurPrincipleCore import Definitions.Def_ModularCurve_DeligneRapoport import Definitions.Def_ModularCurve_HeckeOperator import Definitions.Def_Isogeny_ConditionalCurrency set_option autoImplicit false noncomputable section namespace ModularCurve open AlgebraicCurve section Generic variable {G : Type*} [Group G] {J : Type*} [AddCommGroup J] [Module HeckeAlg J] [DistribMulAction G J] {J₀ : Type*} [AddCommGroup J₀] [Module HeckeAlg J₀] structure IsAbelianPartDataQGuarded (q : ℕ) (S : Finset Nat.Primes) (I : Subgroup G) (𝒯 : Submodule HeckeAlg J) (δ : Fin 2 → J →+ J₀) : Prop where toric_le_ker : ∀ i : Fin 2, ∀ x ∈ 𝒯, δ i x = 0 goodPrime_equivariant : ∀ i : Fin 2, ∀ ℓ : Nat.Primes, ℓ ∉ S → ∀ x : J, δ i (heckeGen ℓ • x) = heckeGen ℓ • δ i x component_eisenstein : ∀ 𝔪 : Ideal HeckeAlg, 𝔪.IsMaximal → ¬ IsEventuallyEisenstein 𝔪 → IsUnit ((q : ℕ) : HeckeAlg ⧸ 𝔪) → ∀ x ∈ heckeTorsion J 𝔪, (∀ σ ∈ I, σ • x = x) → (∀ i : Fin 2, δ i x = 0) → x ∈ 𝒯 theorem IsAbelianPartData.qGuarded {q : ℕ} {S : Finset Nat.Primes} {I : Subgroup G} {𝒯 : Submodule HeckeAlg J} {δ : Fin 2 → J →+ J₀} (h : IsAbelianPartData S I 𝒯 δ) : IsAbelianPartDataQGuarded q S I 𝒯 δ where toric_le_ker := h.toric_le_ker goodPrime_equivariant := h.goodPrime_equivariant component_eisenstein := fun 𝔪 hmax heis _ => h.component_eisenstein 𝔪 hmax heis def ExistsToricData (q : ℕ) (S : Finset Nat.Primes) (I : Subgroup G) (φ : G) (δ : Fin 2 → J →+ J₀) : Prop := ∃ 𝒯 : Submodule HeckeAlg J, ToricFrobeniusSq q φ 𝒯 ∧ IsAbelianPartData S I 𝒯 δ namespace ExistsToricData variable {q : ℕ} {S : Finset Nat.Primes} {I : Subgroup G} {φ : G} {δ : Fin 2 → J →+ J₀} def toric (h : ExistsToricData q S I φ δ) : Submodule HeckeAlg J := h.choose theorem toricFrobeniusSq (h : ExistsToricData q S I φ δ) : ToricFrobeniusSq q φ h.toric := h.choose_spec.1 theorem isAbelianPartData (h : ExistsToricData q S I φ δ) : IsAbelianPartData S I h.toric δ := h.choose_spec.2 end ExistsToricData def ExistsToricDataQGuarded (q : ℕ) (S : Finset Nat.Primes) (I : Subgroup G) (φ : G) (δ : Fin 2 → J →+ J₀) : Prop := ∃ 𝒯 : Submodule HeckeAlg J, ToricFrobeniusSq q φ 𝒯 ∧ IsAbelianPartDataQGuarded q S I 𝒯 δ theorem ExistsToricData.qGuarded {q : ℕ} {S : Finset Nat.Primes} {I : Subgroup G} {φ : G} {δ : Fin 2 → J →+ J₀} (h : ExistsToricData q S I φ δ) : ExistsToricDataQGuarded q S I φ δ := by obtain ⟨𝒯, hfrob, hab⟩ := h exact ⟨𝒯, hfrob, hab.qGuarded⟩ namespace ExistsToricDataQGuarded variable {q : ℕ} {S : Finset Nat.Primes} {I : Subgroup G} {φ : G} {δ : Fin 2 → J →+ J₀} def toric (h : ExistsToricDataQGuarded q S I φ δ) : Submodule HeckeAlg J := h.choose theorem toricFrobeniusSq (h : ExistsToricDataQGuarded q S I φ δ) : ToricFrobeniusSq q φ h.toric := h.choose_spec.1 theorem isAbelianPartDataQGuarded (h : ExistsToricDataQGuarded q S I φ δ) : IsAbelianPartDataQGuarded q S I h.toric δ := h.choose_spec.2 end ExistsToricDataQGuarded def ToricFrobeniusHecke (q : Nat.Primes) (φ : G) (𝒯 : Submodule HeckeAlg J) : Prop := ∀ x ∈ 𝒯, φ • x = (((q : ℕ) : HeckeAlg) * heckeGen q) • x def ExistsToricDataFullQGuarded (q : Nat.Primes) (S : Finset Nat.Primes) (I : Subgroup G) (φ : G) (δ : Fin 2 → J →+ J₀) : Prop := ∃ 𝒯 : Submodule HeckeAlg J, ToricFrobeniusSq (q : ℕ) φ 𝒯 ∧ IsAbelianPartDataQGuarded (q : ℕ) S I 𝒯 δ ∧ ToricFrobeniusHecke q φ 𝒯 namespace ExistsToricDataFullQGuarded variable {q : Nat.Primes} {S : Finset Nat.Primes} {I : Subgroup G} {φ : G} {δ : Fin 2 → J →+ J₀} def toric (h : ExistsToricDataFullQGuarded q S I φ δ) : Submodule HeckeAlg J := h.choose theorem toricFrobeniusSq (h : ExistsToricDataFullQGuarded q S I φ δ) : ToricFrobeniusSq (q : ℕ) φ h.toric := h.choose_spec.1 theorem isAbelianPartDataQGuarded (h : ExistsToricDataFullQGuarded q S I φ δ) : IsAbelianPartDataQGuarded (q : ℕ) S I h.toric δ := h.choose_spec.2.1 theorem toricFrobeniusHecke (h : ExistsToricDataFullQGuarded q S I φ δ) : ToricFrobeniusHecke q φ h.toric := h.choose_spec.2.2 theorem toExistsToricDataQGuarded (h : ExistsToricDataFullQGuarded q S I φ δ) : ExistsToricDataQGuarded (q : ℕ) S I φ δ := ⟨h.toric, h.toricFrobeniusSq, h.isAbelianPartDataQGuarded⟩ end ExistsToricDataFullQGuarded end Generic section Degeneracy variable (N q : ℕ) [NeZero N] [NeZero q] def DegeneracyPushforwardInputs : Prop := ∃ (_ : HeckeAlphaBarIntegral (AlgebraicClosure ℚ) N q) (_ : HeckeBetaBarIntegral (AlgebraicClosure ℚ) N q) (hfinα : FiniteAlong (AlgebraicClosure ℚ) (heckeAlphaBar (AlgebraicClosure ℚ) N q)) (hfinβ : FiniteAlong (AlgebraicClosure ℚ) (heckeBetaBar (AlgebraicClosure ℚ) N q)), NormFormulaAlong (AlgebraicClosure ℚ) (heckeAlphaBar (AlgebraicClosure ℚ) N q) hfinα ∧ NormFormulaAlong (AlgebraicClosure ℚ) (heckeBetaBar (AlgebraicClosure ℚ) N q) hfinβ open Classical in def degeneracyPushforwardPair : Fin 2 → (JZero (N * q) →+ JZero N) := if h : DegeneracyPushforwardInputs N q then ![Pic0.pushforwardAlongHom (heckeAlphaBar (AlgebraicClosure ℚ) N q) h.1 h.2.2.1 h.2.2.2.2.1, Pic0.pushforwardAlongHom (heckeBetaBar (AlgebraicClosure ℚ) N q) h.2.1 h.2.2.2.1 h.2.2.2.2.2] else 0 variable {N q} theorem degeneracyPushforwardInputs_intro (hα : HeckeAlphaBarIntegral (AlgebraicClosure ℚ) N q) (hβ : HeckeBetaBarIntegral (AlgebraicClosure ℚ) N q) (hfinα : FiniteAlong (AlgebraicClosure ℚ) (heckeAlphaBar (AlgebraicClosure ℚ) N q)) (hNα : NormFormulaAlong (AlgebraicClosure ℚ) (heckeAlphaBar (AlgebraicClosure ℚ) N q) hfinα) (hfinβ : FiniteAlong (AlgebraicClosure ℚ) (heckeBetaBar (AlgebraicClosure ℚ) N q)) (hNβ : NormFormulaAlong (AlgebraicClosure ℚ) (heckeBetaBar (AlgebraicClosure ℚ) N q) hfinβ) : DegeneracyPushforwardInputs N q := ⟨hα, hβ, hfinα, hfinβ, hNα, hNβ⟩ theorem degeneracyPushforwardPair_eq (hα : HeckeAlphaBarIntegral (AlgebraicClosure ℚ) N q) (hβ : HeckeBetaBarIntegral (AlgebraicClosure ℚ) N q) (hfinα : FiniteAlong (AlgebraicClosure ℚ) (heckeAlphaBar (AlgebraicClosure ℚ) N q)) (hNα : NormFormulaAlong (AlgebraicClosure ℚ) (heckeAlphaBar (AlgebraicClosure ℚ) N q) hfinα) (hfinβ : FiniteAlong (AlgebraicClosure ℚ) (heckeBetaBar (AlgebraicClosure ℚ) N q)) (hNβ : NormFormulaAlong (AlgebraicClosure ℚ) (heckeBetaBar (AlgebraicClosure ℚ) N q) hfinβ) : degeneracyPushforwardPair N q = ![Pic0.pushforwardAlongHom (heckeAlphaBar (AlgebraicClosure ℚ) N q) hα hfinα hNα, Pic0.pushforwardAlongHom (heckeBetaBar (AlgebraicClosure ℚ) N q) hβ hfinβ hNβ] := by rw [degeneracyPushforwardPair, dif_pos (degeneracyPushforwardInputs_intro hα hβ hfinα hNα hfinβ hNβ)] theorem degeneracyPushforwardPair_of_not (h : ¬ DegeneracyPushforwardInputs N q) : degeneracyPushforwardPair N q = 0 := by rw [degeneracyPushforwardPair, dif_neg h] end Degeneracy end ModularCurve end
Statements phrased using this module (47)
- Degeneracy pushforward inputs at a prime level q
ModularCurve.degeneracyPushforwardInputs90 below · depth 9 - Toric torsion inequality at a q'-new eigenform, q' not≡ 1
ModularCurve.natCard_toricTorsion_le_of_not_exists_hasLowerLevelTorsion_of_attachedOddBlr_sqf_five_of_six_mul_dvd_of_neZero12,128 below · depth 10 - Frobenius acts as q T_q on the monodromy toric part of J₀(Nq)
ModularCurve.toricFrobeniusHecke_toricMonodromyPart_jZero5,206 below · depth 10 - Interchange inequality for toric parts of the 𝔪-torsion
ModularCurve.natCard_toricTorsion_le_of_not_exists_hasLowerLevelTorsion_of_isMaximal_of_attachedOddBlr_sqf_five_of_six_mul_dvd_of_neZero12,127 below · depth 11 - Toric points lie in the kernel of both degeneracy push-forwards
ModularCurve.JZeroNeronObjectAtP.toricPts_le_ker_degeneracyPushforwardPair304 below · depth 12 - Interchange inequality for toric monodromy at q and q'
ModularCurve.exists_submodule_finrank_span_toricMonodromyPart_le_of_not_exists_hasLowerLevelTorsion_of_attachedOddBlr_sqf_five_of_six_mul_dvd_of_neZero12,125 below · depth 12 - Norm morphisms realise the degeneracy pushforwards on ℚ̄-points
ModularCurve.DRModelPackageLevel.pts_degeneracyPushforwardPair_eq_comp_degeneracyHom298 below · depth 13 - Toricity of p-new finite points up to a bounded multiple
ModularCurve.JZeroNeronObjectAtP.exists_nsmul_mem_toricPts_of_mem_finPts1,736 below · depth 13 - Degeneracy pushforward inputs at prime index q
ModularCurve.degeneracyPushforwardInputs_of_prime90 below · depth 13 - Degeneracy relation β_*∘ Uₚ = p α_* on J₀
ModularCurve.degeneracyPushforwardPair_one_heckeOperatorBar_self203 below · depth 13 - Degeneracy relation α_*Uₚ=Tₚα_*-β_* at a prime p∤ N₀
ModularCurve.degeneracyPushforwardPair_zero_heckeOperatorBar_self228 below · depth 13 - 𝔪-torsion is entirely toric at level Nq'q
ModularCurve.finrank_span_toricMonodromyPart_eq_finrank_of_not_exists_hasLowerLevelTorsion3,556 below · depth 13 - Toric part comparison at q versus q' when p ∣ q-1
ModularCurve.finrank_span_toricMonodromyPart_le_finrank_span_of_dvd_sub_one_of_not_exists_hasLowerLevelTorsion_sqf_five_of_six_mul_dvd_of_neZero10,542 below · depth 13 - Toric part of the 𝔪-torsion has rank at most n
ModularCurve.finrank_span_toricMonodromyPart_le_of_not_dvd_sub_one_of_attachedBlr5,236 below · depth 13 - Degeneracy norm morphism versus Abel–Jacobi on ℚ̄-points
ModularCurve.DRModelPackageLevel.mul_degeneracyHom_ajbar_abelJacobi_eq85 below · depth 14 - Second degeneracy norm map versus Abel–Jacobi on ℚ̄-points
ModularCurve.DRModelPackageLevel.mul_degeneracyHom_one_ajbar_abelJacobi_eq85 below · depth 14 - Degeneracy map on ℚ̄-points restricts places along ᾱ
ModularCurve.DRModelPackageLevel.pointEquivPlace_eq_restrictAlong_heckeAlphaBar_of_comp_pi96 below · depth 14 - Second degeneracy morphism: places restrict along `heckeBetaBar`
ModularCurve.DRModelPackageLevel.pointEquivPlace_eq_restrictAlong_heckeBetaBar_of_comp_piw131 below · depth 14 - Counting A-integral m-torsion in the joint degeneracy kernel
ModularCurve.JZeroNeronObjectAtP.finite_and_card_le_of_kernel_coset_representatives1,013 below · depth 14 - Finiteness of the fixed points of frobSp²
ModularCurve.JZeroNeronObjectAtP.finite_fixedPoints_frobSp_comp_self971 below · depth 14 - Lower bound m^t for the toric m-torsion subgroup
ModularCurve.JZeroNeronObjectAtP.pow_toricRank_le_card_toricPts1,632 below · depth 14 - The q-old character lattice dies modulo 𝔪
ModularCurve.SW_local_old_smul_top_eq_top_of_not_hasLowerLevelTorsion_aux20 below · depth 14 - Ribet's exchange inequality: dim X^{old}+dim Y_{q'}≤dim Y_q
ModularCurve.finrank_quotient_old_add_ribbon_le_finrank_quotient_ribbon_of_twoPlaceTorsionDatum_of_le_invariants3,576 below · depth 14 - Rank inequality between old-plus-ribbon and ribbon parts at two places
ModularCurve.finrank_quotient_old_add_ribbon_le_finrank_quotient_ribbon_of_twoPlaceTorsionDatum_of_le_invariants_of_two_mul_dvd_of_neZero3,576 below · depth 14 - Toric 𝔪-torsion bounded by old plus ribbon dimensions
ModularCurve.finrank_span_toricMonodromyPart_le_finrank_quotient_old_add_ribbon_of_ssLevelDatum3,563 below · depth 14 - Toric monodromy bound by old and ribbon parts
ModularCurve.finrank_span_toricMonodromyPart_le_finrank_quotient_old_add_ribbon_of_ssLevelDatum_of_two_mul_dvd_of_neZero3,563 below · depth 14 - Degeneracy morphism on generic points is Spec of α
ModularCurve.DRModelPackageLevel.fromSpecStalk_genericPoint_comp_eq_spec_map_heckeAlphaBar2 below · depth 15 - Second degeneracy map on generic points is Specβ
ModularCurve.DRModelPackageLevel.fromSpecStalk_genericPoint_comp_eq_spec_map_heckeBetaBar77 below · depth 15 - Poincaré bundle at geometric Abel–Jacobi points equals 𝒪(̄ y-∞)
ModularCurve.DRModelPackageLevel.nonempty_poincare_pullbackAlong_iso_ofPoint_tensor_ofPoint_idealModule_of_eq_comp_ajbar15 below · depth 15 - Atkin–Lehner involution acts as w_* on ℚ̄-points
ModularCurve.DRModelPackageLevel.pts_atkinLehner_smul_eq_comp_atkinLehnerHom173 below · depth 15 - Second degeneracy pullback agrees with β^* on ℚ̄-points
ModularCurve.DRModelPackageLevel.pts_degeneracyPullbackPair_one_eq_comp_degeneracyPullbackHom1,238 below · depth 15 - Places restrict along chart-pinned morphisms of Igusa schemes
ModularCurve.IgusaScheme.pointEquivPlace_eq_restrictAlong_of_chart_pin4 below · depth 15 - At-p Néron ordinary datum for J₀(N₀p) with p-new toric part
ModularCurve.exists_jZeroNeronAtPDataOrdV22_pNew5,560 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 - Atkin–Lehner endomorphism on Abel–Jacobi points of Pic⁰
ModularCurve.DRModelPackageLevel.mul_atkinLehnerHom_ajbar_ajbar_eq_of_comp_w23 below · depth 16 - Atkin–Lehner involution restricts places along the geometric automorphism
ModularCurve.DRModelPackageLevel.pointEquivPlace_eq_restrictAlong_geomAut_of_comp_w4 below · depth 16 - Second degeneracy pullback of [x]-[s₀] equals β^∗circaj₀
ModularCurve.DRModelPackageLevel.pts_degeneracyPullbackPair_one_mk_eq_abelJacobi_comp_degeneracyPullbackHom1,237 below · depth 16 - Assembling the at-p Néron datum from a Néron object
ModularCurve.JZeroNeronObjectAtP.exists_jZeroNeronAtPDataOrdV22_toric_eq_fin_eq_of_forall_smul_sub_mem5,559 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 - Conorm divisors map to aj₀ followed by β^∗
ModularCurve.DRModelPackageLevel.pts_mk_pullbackAlong_heckeBetaBar_single_sub_eq_abelJacobi_comp_degeneracyPullbackHom1,236 below · depth 17 - Assembly of the at-p Néron datum from a Néron object
ModularCurve.JZeroNeronObjectAtP.exists_jZeroNeronAtPDataOrdV22_of_children2,106 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 - Poincaré pullback at an effective divisor class as ideal-power modules
ModularCurve.DRModelPackageLevel.nonempty_poincare_pullbackAlong_pts_mk_iso_invModule_prod_pow_tensor_module_pow24 below · depth 18 - From Néron object and extension to a v2.2 at-p datum
ModularCurve.JZeroNeronObjectAtP.exists_jZeroNeronAtPDataOrdV22_of_children_of_neronExtension2,057 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 - Degeneracy push-forwards commute with T_ℓ for ℓ∤ p
ModularCurve.degeneracyPushforwardPair_heckeOperatorBar_of_not_dvd211 below · depth 18