Definitions/Def_ModularCurve_JZeroNeronPrimaryTorsionSheaf.lean
Eisenstein-primary -torsion fppf sheaf data for
Fix primes p and q. The Eisenstein maximal ideal \mathfrak P=\mathrm{eisensteinMaximalIdeal}\,p\,q, the preimage under the Eisenstein character \mathrm{eisensteinEval}\,p:\mathbb T\to\mathbb Z of (q), is recorded as a prime ideal of the Hecke algebra. Two subgroups of JZero p, taken with the Hecke-module structure heckeModuleBar p, are introduced: eisensteinPrimaryTorsionBar p q m, the intersection of the kernel of multiplication by q^m with the supremum over k of the \mathfrak P^k-torsion submodules, and toricEisensteinPrimaryPart p q A hA m, its intersection with jZeroToricTorsion p A (q^m). A lemma records that the \mathfrak P^m-torsion submodule lies in the former, since q^m\in\mathfrak P^m. Finally eisensteinQuotientRationalLocalized p q is the localisation at \mathbb T\setminus\mathfrak P of the \mathbb T-span of the rational classes eisensteinQuotientRational in the Eisenstein quotient.
The structure JZeroNeronPrimaryTorsionCore p q A hA, for a valuation subring A of \overline{\mathbb Q} over p, packages: abelian sheaves \mathcal J_m on the small fppf site of \operatorname{Spec}\mathbb Z; commutative \mathbb Z-Hopf algebras H_m, flat and of finite type, whose localisations at primes \ell\neq p are finite; additive identifications, natural in U, of \mathcal J_m(U) with the convolution group of \mathbb Z-algebra maps H_m\to\Gamma(U,\mathcal O); bijections of the convolution groups of \overline{\mathbb Q}- and A-points of H_m with eisensteinPrimaryTorsionBar and toricEisensteinPrimaryPart, additive, Galois-equivariant and mutually compatible; maps \mathcal J_m\to\mathcal J_{m+1}\to Q_m forming short exact sequences; and a JKummerRow q m over the localised module above whose H^1_{Jtors} term is identified with H^1 of \mathcal J_m on the fppf site. JZeroNeronPrimaryTorsionFFModels adds finite flat Hopf-algebra models over the localisations \mathbb Z_{(\ell)}, \ell\neq p, with the same point identifications, together with their reductions modulo q when q\neq p. JZeroNeronPrimaryTorsionInvPins pins the orders of H^0, H^1, the index of the toric part and the number of \overline{\mathbb F_q}-points as explicit powers of q given by AdmissibleInvariants q. The three are bundled as JZeroNeronPrimaryTorsionSheaf, and HasJZeroNeronPrimaryTorsionSheaf p q asserts such data exist for every A over p.
Relation to Mathlib
The small fppf site, sheaves of abelian groups on it and their cohomology are taken from Mathlib (via Sheaf.H), as are Submodule.torsionBySet, LocalizedModule, HopfAlgebra and ShortComplex.ShortExact; the Eisenstein maximal ideal, the primary-torsion subgroups and all of the Néron torsion-sheaf structures are the project's own.
Where it is used
These structures axiomatise the \mathfrak P-primary part of the q^m-torsion of the Néron model of J_0(p) together with its finite flat models and the associated Kummer row, the data on which Mazur's Eisenstein-ideal analysis of rational points of X_0(p) rests. The resulting control of torsion feeds the statement MazurStepThree about rational p-torsion on integral Weierstrass curves, which is used for the Frey curve attached to a putative solution of Fermat's equation.
References
- B. Mazur, Modular curves and the Eisenstein ideal, Publications Mathématiques de l'IHÉS 47 (1977), 33–186
- J. S. Milne, Arithmetic Duality Theorems, Academic Press, 1986
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 169 lines
- 48 declarations
- used in the statements of 40 theorems and imported by 41 proofs
- imports 8 definition modules
Source file: Definitions/Def_ModularCurve_JZeroNeronPrimaryTorsionSheaf.lean
Imports
Declarations
- instance
ModularCurve.eisensteinMaximalIdeal.isPrime - abbrev
ModularCurve.eisensteinPrimaryTorsionBar - abbrev
ModularCurve.toricEisensteinPrimaryPart - abbrev
ModularCurve.eisensteinQuotientRationalLocalized - theorem
ModularCurve.torsionBySet_eisensteinMaximalIdeal_pow_le_eisensteinPrimaryTorsionBar - structure
ModularCurve.JZeroNeronPrimaryTorsionCore - field
ModularCurve.JZeroNeronPrimaryTorsionCore.A - field
ModularCurve.JZeroNeronPrimaryTorsionCore.H - field
ModularCurve.JZeroNeronPrimaryTorsionCore.ff_finite - field
ModularCurve.JZeroNeronPrimaryTorsionCore.sectionsEquiv - field
ModularCurve.JZeroNeronPrimaryTorsionCore.sectionsNat - field
ModularCurve.JZeroNeronPrimaryTorsionCore.genericPoints - field
ModularCurve.JZeroNeronPrimaryTorsionCore.genericConv - field
ModularCurve.JZeroNeronPrimaryTorsionCore.genericGalois - field
ModularCurve.JZeroNeronPrimaryTorsionCore.Q - field
ModularCurve.JZeroNeronPrimaryTorsionCore.incl - field
ModularCurve.JZeroNeronPrimaryTorsionCore.proj - field
ModularCurve.JZeroNeronPrimaryTorsionCore.incl_proj - field
ModularCurve.JZeroNeronPrimaryTorsionCore.ses_shortExact - field
ModularCurve.JZeroNeronPrimaryTorsionCore.pFibrePoints - field
ModularCurve.JZeroNeronPrimaryTorsionCore.pFibreConv - field
ModularCurve.JZeroNeronPrimaryTorsionCore.pFibreGenericCompat - field
ModularCurve.JZeroNeronPrimaryTorsionCore.kummerRow - field
ModularCurve.JZeroNeronPrimaryTorsionCore.kummerRow_H1Jtors - field
ModularCurve.JZeroNeronPrimaryTorsionCore.letI - structure
ModularCurve.JZeroNeronPrimaryTorsionFFModels - field
ModularCurve.JZeroNeronPrimaryTorsionFFModels.A - field
ModularCurve.JZeroNeronPrimaryTorsionFFModels.C - field
ModularCurve.JZeroNeronPrimaryTorsionFFModels.Hff - field
ModularCurve.JZeroNeronPrimaryTorsionFFModels.ffPoints - field
ModularCurve.JZeroNeronPrimaryTorsionFFModels.ffConv - field
ModularCurve.JZeroNeronPrimaryTorsionFFModels.ffGalois - field
ModularCurve.JZeroNeronPrimaryTorsionFFModels.HffBarQ - field
ModularCurve.JZeroNeronPrimaryTorsionFFModels.ffBarQ_red - field
ModularCurve.JZeroNeronPrimaryTorsionFFModels.ffBarQ_red_surjective - field
ModularCurve.JZeroNeronPrimaryTorsionFFModels.ffBarQ_red_ker - structure
ModularCurve.JZeroNeronPrimaryTorsionInvPins - field
ModularCurve.JZeroNeronPrimaryTorsionInvPins.A - field
ModularCurve.JZeroNeronPrimaryTorsionInvPins.C - field
ModularCurve.JZeroNeronPrimaryTorsionInvPins.inv - field
ModularCurve.JZeroNeronPrimaryTorsionInvPins.h0_pin - field
ModularCurve.JZeroNeronPrimaryTorsionInvPins.h1_pin - structure
ModularCurve.JZeroNeronPrimaryTorsionSheaf - field
ModularCurve.JZeroNeronPrimaryTorsionSheaf.A - field
ModularCurve.JZeroNeronPrimaryTorsionSheaf.core - field
ModularCurve.JZeroNeronPrimaryTorsionSheaf.ffModels - field
ModularCurve.JZeroNeronPrimaryTorsionSheaf.invPins - def
ModularCurve.HasJZeroNeronPrimaryTorsionSheaf
Source
import Mathlib import Definitions.Def_ModularCurve_JZeroNeronDataPrime import Definitions.Def_ModularCurve_EisensteinIdeal import Definitions.Def_ModularCurve_FppfKummerInterface import Definitions.Def_ModularCurve_MazurStepThreeInputs import Definitions.Def_AlgebraicGeometry_FppfSiteCohomology import Definitions.Def_AlgebraicGeometry_FppfCohomologyLES import Definitions.Def_AlgebraicGeometry_FppfKummerProp17 import Definitions.Def_ModularCurve_JZeroToricTorsion set_option autoImplicit false noncomputable section namespace ModularCurve open CategoryTheory AlgebraicGeometry AlgebraicGeometry.Scheme ValuationSubring Opposite instance eisensteinMaximalIdeal.isPrime (N q : ℕ) [Fact q.Prime] : (eisensteinMaximalIdeal N q).IsPrime := by have hq : Prime (q : ℤ) := Nat.prime_iff_prime_int.mp Fact.out haveI : (Ideal.span {(q : ℤ)}).IsPrime := (Ideal.span_singleton_prime hq.ne_zero).mpr hq exact Ideal.IsPrime.comap _ abbrev eisensteinPrimaryTorsionBar (p q m : ℕ) [NeZero p] : AddSubgroup (JZero p) := letI := heckeModuleBar p (AddMonoidHom.ker ((q ^ m : ℤ) • AddMonoidHom.id (JZero p))) ⊓ ⨆ k : ℕ, (Submodule.torsionBySet HeckeAlg (JZero p) (↑((eisensteinMaximalIdeal p q) ^ k) : Set HeckeAlg)).toAddSubgroup abbrev toricEisensteinPrimaryPart (p q : ℕ) [Fact p.Prime] (A : ValuationSubring (AlgebraicClosure ℚ)) (_hA : A.LiesOverPrime p) (m : ℕ) : AddSubgroup (JZero p) := jZeroToricTorsion p A (q ^ m) ⊓ eisensteinPrimaryTorsionBar p q m abbrev eisensteinQuotientRationalLocalized (p q : ℕ) [NeZero p] [Fact q.Prime] : Type := letI := heckeModuleBar p LocalizedModule (eisensteinMaximalIdeal p q).primeCompl ↥(Submodule.span HeckeAlg (eisensteinQuotientRational p (heckeModuleBar p))) theorem torsionBySet_eisensteinMaximalIdeal_pow_le_eisensteinPrimaryTorsionBar (p q m : ℕ) [NeZero p] : letI := heckeModuleBar p (Submodule.torsionBySet HeckeAlg (JZero p) (↑((eisensteinMaximalIdeal p q) ^ m) : Set HeckeAlg)).toAddSubgroup ≤ eisensteinPrimaryTorsionBar p q m := by letI := heckeModuleBar p intro x hx refine ⟨?_, ?_⟩ · have hq : ((q : HeckeAlg) ^ m) ∈ (eisensteinMaximalIdeal p q) ^ m := by apply Ideal.pow_mem_pow simp [eisensteinMaximalIdeal, Ideal.mem_comap] have hx' : ((q : HeckeAlg) ^ m) • x = 0 := (Submodule.mem_torsionBySet_iff _ _).mp hx ⟨_, hq⟩ change ((q : ℤ) ^ m) • x = 0 rw [← Int.cast_smul_eq_zsmul HeckeAlg] simpa [Int.cast_pow, Int.cast_natCast] using hx' · exact AddSubgroup.mem_iSup_of_mem m hx structure JZeroNeronPrimaryTorsionCore (p q : ℕ) [Fact p.Prime] [Fact q.Prime] (A : ValuationSubring (AlgebraicClosure ℚ)) (hA : A.LiesOverPrime p) where 𝒥 : ℕ → Sheaf (smallFppfTopology specInt) Ab.{1} H : ℕ → Type [instCommRing_H : ∀ m, CommRing (H m)] [instHopfAlgebra_H : ∀ m, HopfAlgebra ℤ (H m)] [instFiniteType_H : ∀ m, Algebra.FiniteType ℤ (H m)] [instFlat_H : ∀ m, Module.Flat ℤ (H m)] ff_finite : ∀ (m ℓ : ℕ), ℓ.Prime → ℓ ≠ p → Module.Finite (GaloisRep.ratLocalizedAt ℓ) (TensorProduct ℤ (GaloisRep.ratLocalizedAt ℓ) (H m)) sectionsEquiv : ∀ (m : ℕ) (U : specInt.Fppf), (𝒥 m).1.obj (op U) ≃+ Additive (WithConv (H m →ₐ[ℤ] Γ(U.left, ⊤))) sectionsNat : ∀ (m : ℕ) {U V : specInt.Fppf} (f : U ⟶ V) (s : (𝒥 m).1.obj (op V)), ∀ h : H m, (Additive.toMul (sectionsEquiv m U ((𝒥 m).1.map f.op s))) h = (Scheme.Γ.map f.left.op) ((Additive.toMul (sectionsEquiv m V s)) h) genericPoints : ∀ m, WithConv (H m →ₐ[ℤ] AlgebraicClosure ℚ) ≃ ↥(eisensteinPrimaryTorsionBar p q m) genericConv : ∀ m, ∀ f g : WithConv (H m →ₐ[ℤ] AlgebraicClosure ℚ), genericPoints m (f * g) = genericPoints m f + genericPoints m g genericGalois : ∀ m, ∀ σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ, ∀ f g : WithConv (H m →ₐ[ℤ] AlgebraicClosure ℚ), (∀ h : H m, g h = σ (f h)) → ((genericPoints m g : ↥(eisensteinPrimaryTorsionBar p q m)) : JZero p) = σ • ((genericPoints m f : ↥(eisensteinPrimaryTorsionBar p q m)) : JZero p) Q : ℕ → Sheaf (smallFppfTopology specInt) Ab.{1} incl : ∀ m, 𝒥 m ⟶ 𝒥 (m + 1) proj : ∀ m, 𝒥 (m + 1) ⟶ Q m incl_proj : ∀ m, incl m ≫ proj m = 0 ses_shortExact : ∀ m, (ShortComplex.mk (incl m) (proj m) (incl_proj m)).ShortExact pFibrePoints : ∀ m, WithConv (H m →ₐ[ℤ] ↥A) ≃ ↥(toricEisensteinPrimaryPart p q A hA m) pFibreConv : ∀ m, ∀ f g : WithConv (H m →ₐ[ℤ] ↥A), pFibrePoints m (f * g) = pFibrePoints m f + pFibrePoints m g pFibreGenericCompat : ∀ m, ∀ φ : WithConv (H m →ₐ[ℤ] ↥A), ∀ ψ : WithConv (H m →ₐ[ℤ] AlgebraicClosure ℚ), (∀ h : H m, ψ h = A.subtype (φ h)) → ((pFibrePoints m φ : ↥(toricEisensteinPrimaryPart p q A hA m)) : JZero p) = ((genericPoints m ψ : ↥(eisensteinPrimaryTorsionBar p q m)) : JZero p) kummerRow : ∀ m, JKummerRow q m (eisensteinQuotientRationalLocalized p q) kummerRow_H1Jtors : ∀ m, letI := (kummerRow m).instH1Jtors; (kummerRow m).H1Jtors ≃+ fppfCohomology specInt (𝒥 m) 1 attribute [instance] JZeroNeronPrimaryTorsionCore.instCommRing_H JZeroNeronPrimaryTorsionCore.instHopfAlgebra_H JZeroNeronPrimaryTorsionCore.instFiniteType_H JZeroNeronPrimaryTorsionCore.instFlat_H structure JZeroNeronPrimaryTorsionFFModels (p q : ℕ) [Fact p.Prime] [Fact q.Prime] (A : ValuationSubring (AlgebraicClosure ℚ)) (hA : A.LiesOverPrime p) (C : JZeroNeronPrimaryTorsionCore p q A hA) where Hff : ∀ (_m : ℕ) (ℓ : ℕ), ℓ.Prime → ℓ ≠ p → Type [instCommRing_Hff : ∀ m ℓ hℓ hℓp, CommRing (Hff m ℓ hℓ hℓp)] [instHopfAlgebra_Hff : ∀ m ℓ hℓ hℓp, HopfAlgebra (GaloisRep.ratLocalizedAt ℓ) (Hff m ℓ hℓ hℓp)] [instFinite_Hff : ∀ m ℓ hℓ hℓp, Module.Finite (GaloisRep.ratLocalizedAt ℓ) (Hff m ℓ hℓ hℓp)] [instFlat_Hff : ∀ m ℓ hℓ hℓp, Module.Flat (GaloisRep.ratLocalizedAt ℓ) (Hff m ℓ hℓ hℓp)] [instCocomm_Hff : ∀ m ℓ hℓ hℓp, Coalgebra.IsCocomm (GaloisRep.ratLocalizedAt ℓ) (Hff m ℓ hℓ hℓp)] ffPoints : ∀ m ℓ hℓ hℓp, WithConv (Hff m ℓ hℓ hℓp →ₐ[GaloisRep.ratLocalizedAt ℓ] AlgebraicClosure ℚ) ≃ ↥(eisensteinPrimaryTorsionBar p q m) ffConv : ∀ m ℓ hℓ hℓp, ∀ f g, ffPoints m ℓ hℓ hℓp (f * g) = ffPoints m ℓ hℓ hℓp f + ffPoints m ℓ hℓ hℓp g ffGalois : ∀ m ℓ hℓ hℓp, ∀ σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ, ∀ f g : WithConv (Hff m ℓ hℓ hℓp →ₐ[GaloisRep.ratLocalizedAt ℓ] AlgebraicClosure ℚ), (∀ h, g h = σ (f h)) → ((ffPoints m ℓ hℓ hℓp g : ↥(eisensteinPrimaryTorsionBar p q m)) : JZero p) = σ • ((ffPoints m ℓ hℓ hℓp f : ↥(eisensteinPrimaryTorsionBar p q m)) : JZero p) HffBarQ : ∀ (_m : ℕ), q ≠ p → Type [instCommRing_HffBarQ : ∀ m hqp, CommRing (HffBarQ m hqp)] [instHopfAlgebra_HffBarQ : ∀ m hqp, HopfAlgebra (ZMod q) (HffBarQ m hqp)] [instFinite_HffBarQ : ∀ m hqp, Module.Finite (ZMod q) (HffBarQ m hqp)] [instCocomm_HffBarQ : ∀ m hqp, Coalgebra.IsCocomm (ZMod q) (HffBarQ m hqp)] ffBarQ_red : ∀ m hqp, Hff m q Fact.out hqp →+* HffBarQ m hqp ffBarQ_red_surjective : ∀ m hqp, Function.Surjective (ffBarQ_red m hqp) ffBarQ_red_ker : ∀ m hqp, RingHom.ker (ffBarQ_red m hqp) = Ideal.span {((q : ℤ) : Hff m q Fact.out hqp)} attribute [instance] JZeroNeronPrimaryTorsionFFModels.instCommRing_Hff JZeroNeronPrimaryTorsionFFModels.instHopfAlgebra_Hff JZeroNeronPrimaryTorsionFFModels.instFinite_Hff JZeroNeronPrimaryTorsionFFModels.instFlat_Hff JZeroNeronPrimaryTorsionFFModels.instCocomm_Hff JZeroNeronPrimaryTorsionFFModels.instCommRing_HffBarQ JZeroNeronPrimaryTorsionFFModels.instHopfAlgebra_HffBarQ JZeroNeronPrimaryTorsionFFModels.instFinite_HffBarQ JZeroNeronPrimaryTorsionFFModels.instCocomm_HffBarQ structure JZeroNeronPrimaryTorsionInvPins (p q : ℕ) [Fact p.Prime] [Fact q.Prime] (A : ValuationSubring (AlgebraicClosure ℚ)) (hA : A.LiesOverPrime p) (C : JZeroNeronPrimaryTorsionCore p q A hA) (F : JZeroNeronPrimaryTorsionFFModels p q A hA C) where inv : ℕ → AdmissibleInvariants q h0_pin : ∀ m, Nat.card (fppfCohomology specInt (C.𝒥 m) 0) = q ^ (inv m).h0 h1_pin : ∀ m, Nat.card (fppfCohomology specInt (C.𝒥 m) 1) = q ^ (inv m).h1 δ_pin : ∀ m, Nat.card ↥(eisensteinPrimaryTorsionBar p q m) = q ^ (inv m).δ * Nat.card ↥(toricEisensteinPrimaryPart p q A hA m) α_pin : ∀ m, ∀ hqp : q ≠ p, Nat.card (WithConv (F.HffBarQ m hqp →ₐ[ZMod q] AlgebraicClosure (ZMod q))) = q ^ (inv m).α structure JZeroNeronPrimaryTorsionSheaf (p q : ℕ) [Fact p.Prime] [Fact q.Prime] (A : ValuationSubring (AlgebraicClosure ℚ)) (hA : A.LiesOverPrime p) where core : JZeroNeronPrimaryTorsionCore p q A hA ffModels : JZeroNeronPrimaryTorsionFFModels p q A hA core invPins : JZeroNeronPrimaryTorsionInvPins p q A hA core ffModels def HasJZeroNeronPrimaryTorsionSheaf (p q : ℕ) [Fact p.Prime] [Fact q.Prime] : Prop := ∀ (A : ValuationSubring (AlgebraicClosure ℚ)) (hA : A.LiesOverPrime p), Nonempty (JZeroNeronPrimaryTorsionSheaf p q A hA) section Falseprobe end Falseprobe end ModularCurve end
Statements phrased using this module (40)
- Stabilisation of the chain P^m M on Eisenstein-quotient rational points
ModularCurve.eisensteinQuotientRationalLocalized_eisensteinPrimary_stabilizes16 below · depth 9 - Uniform q^m-index bound on the localised Eisenstein quotient
ModularCurve.eisensteinQuotientRationalLocalized_qPowQuotient_le_h1Jtors16 below · depth 9 - Localised Kummer package at an Eisenstein prime of J₀(p)
ModularCurve.exists_jKummerRow_admissibleChain_bounded_heckeModuleBar_v55,117 below · depth 9 - Localised Kummer package at 2 with bounded admissible chains
ModularCurve.exists_jKummerRow_admissibleChain_bounded_heckeModuleBar_two_v54,950 below · depth 10 - Mazur admissibility of the Eisenstein-primary q^m-torsion of J₀(p)
ModularCurve.exists_openAction_admissibleChain_eisensteinPrimaryTorsionBar1,063 below · depth 10 - Existence of the P-primary Néron torsion sheaf when q ∣ n
ModularCurve.hasJZeroNeronPrimaryTorsionSheaf_of_dvd4,070 below · depth 10 - Mazur's dévissage inequality h¹+α≤ h⁰+δ at every level
ModularCurve.jZeroNeronTorsionSheaf_device_v51,468 below · depth 10 - Common linear growth of δ(m) and trivial-step counts
ModularCurve.jZeroNeronTorsionSheaf_growth_v53,287 below · depth 10 - Boundedness of h⁰(m) for the primary Néron torsion sheaf
ModularCurve.jZeroNeronTorsionSheaf_h0_bounded_v52,186 below · depth 10 - Geometric fibre count for the 2-primary Eisenstein torsion sheaf
ModularCurve.hasJZeroNeronTorsionSheaf_two_fibreCount_of_dvd_eisensteinNumerator_v54,074 below · depth 11 - Pinned α bounded by trivial steps of an admissible chain
ModularCurve.jZeroNeronTorsionSheaf_alpha_le_filtAlpha_v51,990 below · depth 11 - Linear growth of the toric defect at 2
ModularCurve.jZeroNeronTorsionSheaf_growth_two_v53,213 below · depth 11 - Linear growth of δ_m and α_m for the J₀(p) torsion sheaf
ModularCurve.jZeroNeronTorsionSheaf_inv_linearGrowth_v53,057 below · depth 11 - Existence of the Néron primary-torsion core for J₀(p)
ModularCurve.nonempty_jZeroNeronPrimaryTorsionCore_of_dvd3,635 below · depth 11 - Finite flat Hopf models over mathbb Z_{(ℓ)} exist
ModularCurve.nonempty_jZeroNeronPrimaryTorsionFFModels11 below · depth 11 - Existence of admissible invariants for a Néron core
ModularCurve.nonempty_jZeroNeronPrimaryTorsionInvPins1,488 below · depth 11 - Points of H_m over 𝔽̄₂ number a power of two
ModularCurve.JZeroNeronPrimaryTorsionCore.exists_natCard_algHom_H_algebraicClosure_zmod_two_eq_pow0 below · depth 12 - Fppf H¹ of a Néron core sheaf has q-power order
ModularCurve.JZeroNeronPrimaryTorsionCore.exists_natCard_fppfCohomology_one_eq_pow1,484 below · depth 12 - Global sections of mathcal J_m have q-power order
ModularCurve.JZeroNeronPrimaryTorsionCore.exists_natCard_fppfCohomology_zero_eq_pow715 below · depth 12 - Mod-q fibre of the finite flat model has q-power point count
ModularCurve.JZeroNeronPrimaryTorsionFFModels.exists_natCard_withConv_hffBarQ_algHom_eq_pow2 below · depth 12 - P-primary q^m-torsion as I^m-torsion, I=(q)+Pᶜ
ModularCurve.exists_eisensteinPrimaryTorsionBar_eq_torsionBySet_span_sup_pow714 below · depth 12 - Localised Kummer rows from integral Kummer data
ModularCurve.exists_jKummerRow_addEquiv_fppfCohomology_of_localizedKummerData_of_dvd0 below · depth 12 - Multiplicative-type subgroup inside the I^m-torsion of J₀(p)
ModularCurve.exists_multiplicativeTypeNat_torsionBySet_pow_inertiaSubgroupIn1,977 below · depth 12 - Order of the Eisenstein-primary q^m-torsion is a q-power
ModularCurve.exists_natCard_eisensteinPrimaryTorsionBar_eq_pow714 below · depth 12 - Mazur-type bound on T^L/((q^m)+(P^L)^M) for large M
ModularCurve.exists_natCard_heckeLatticeAlgebra_quotient_span_pow_sup_pow_le_natCard_eisensteinPrimaryTorsionBar_quotient_mul_pow2,327 below · depth 12 - Two-adic Eisenstein torsion sheaf pinned to reduction mod 2
ModularCurve.hasJZeroNeronTorsionSheaf_two_residue_iff_reductionModL_of_dvd_eisensteinNumerator_v54,071 below · depth 12 - Eisenstein-primary q^m-torsion quotient has order q^α
ModularCurve.natCard_eisensteinPrimaryTorsionBar_quotient_eq_pow_alpha_of_multiplicativeTypeNat29 below · depth 12 - Two-sided linear growth of toric I^m-torsion on J₀(p)
ModularCurve.natCard_jZeroToricTorsion_inf_torsionBySet_pow_linearGrowth762 below · depth 12 - I^m-torsion of J₀(p) at most the square of its toric part
ModularCurve.natCard_torsionBySet_pow_le_sq_natCard_jZeroToricTorsion_inf_mul1,816 below · depth 12 - Toric and mod-2 reduction bound for I^m-torsion of J₀(p)
ModularCurve.natCard_torsionBySet_pow_two_le_natCard_jZeroToricTorsion_inf_mul_natCard_map_reductionModL_mul_pow3,208 below · depth 12 - Hopf-algebra tower of Eisenstein-primary q-torsion on J₀(p)
ModularCurve.JZeroNeronIdentityComponent.exists_hopfAlgebra_tower_pointsSheaf_levelMap_of_idempotent9 below · depth 13 - Eisenstein part of G[q^m] as Hecke-stable retract
ModularCurve.JZeroNeronIdentityComponent.exists_retract_kernel_zsmul_pointsSheaf_of_eisensteinProjector16 below · depth 13 - Mod-2 residue dictionary for the Eisenstein torsion core
ModularCurve.JZeroNeronIdentityComponentGood.exists_jZeroNeronPrimaryTorsionCore_two_residue_iff_reductionModL824 below · depth 13 - Multiplication by q^m annihilates the sheaves mathcal J_m
ModularCurve.JZeroNeronPrimaryTorsionCore.pow_nsmul_sections_eq_zero7 below · depth 13 - Bound for I^m-torsion in the kernel of reduction above 2
ModularCurve.exists_natCard_torsionBySet_pow_inf_ker_reductionModL_le_natCard_heckeLatticeAlgebra_quotient_two_mul_pow2,553 below · depth 13 - Finiteness of H¹_{fppf}(Specℤ,mathcal J_m) for primary-torsion cores
ModularCurve.finite_fppfCohomology_one_jZeroNeronPrimaryTorsionCore1,481 below · depth 13 - Eisenstein q-primary Néron torsion core with point embedding
ModularCurve.JZeroNeronIdentityComponent.exists_jZeroNeronPrimaryTorsionCore_forall_exists_points_embedding822 below · depth 14 - A Hecke element outside the Eisenstein ideal acting as t_m
ModularCurve.JZeroNeronIdentityComponent.exists_notMem_forall_zsmul_eq_zero_imp_app_eq7 below · depth 14 - Eisenstein-primary projectors on q^m-torsion, compatible in m
ModularCurve.exists_heckeAlg_tower_smul_smul_eq_and_smul_eq_iff_mem_eisensteinPrimaryTorsionBar2 below · depth 14 - Finiteness of H¹_{fppf}(Specℤ,mathcal J_m) for odd q
ModularCurve.finite_fppfCohomology_one_jZeroNeronPrimaryTorsionCore_of_ne_two1,464 below · depth 14