Definitions/Def_ModularCurve_JZeroNeronAtPData.lean
Néron data at q with ranks and level-lowering detection
Fix N\ge 1, a prime q with q\nmid N, a valuation subring A of \overline{\mathbb Q} with q a non-unit of A (the predicate ValuationSubring.LiesOverPrime), and recall the structure JZeroNeronData, which equips J = JZero (N*q) with three m-indexed chains of subgroups \mathrm{toric}(m)\le \mathrm{fin}(m)\le \mathrm{finPart}(m)\le J[m], a finite Hecke-module \Phi of components, and the Galois- and Hecke-compatibilities recorded there. The structure JZeroNeronAtPData extends that datum by two natural numbers toricRank t and abelianRank a together with two cardinality assertions, carried as fields: for every m>0, \#\,\mathrm{toric}(m) = m^{t} and \#\,\mathrm{fin}(m) = m^{t+2a}. The remaining field is a support-transport clause at q-torsion: assuming HeckeInputsAll and HeckeOperatorsCommuteBar at both levels Nq and N, for every maximal ideal \mathfrak m of the Hecke polynomial ring \mathbb T = \mathbb Z[T_\ell : \ell \text{ prime}] with the image of q in \mathfrak m, and every x \in \mathrm{fin}(q) which is annihilated by \mathfrak m for the module structure heckeModuleBar (N*q) and does not lie in \mathrm{toric}(q), one has HasLowerLevelTorsion (primesOf (N*q)) 𝔪 (JZero N), i.e. there exists a nonzero y \in J_0(N) killed by every integer lying in \mathfrak m and by every T_\ell - b \in \mathfrak m with \ell \nmid Nq. Thus the conclusion is the nonvanishing of an \mathfrak m-type eigenspace at level N, not a map of modules. The predicate HasJZeroNeronAtPData N q hqN asserts that such a datum exists for every choice of A lying over q. The auxiliary primesOf M is the prime divisors of M viewed as a finite set of Nat.Primes, and mem_primesOf identifies membership with divisibility of M for M \neq 0.
Relation to Mathlib
Mathlib has no Néron model, toric part or component group for Jacobians of modular curves; these are the project's own structures. primesOf is Mathlib's Nat.primeFactors transported to the subtype Nat.Primes.
Where it is used
These data package what is needed at the prime q of exact level q in Mazur's principle: the ranks pin down the q-power toric and finite filtration steps, and the detection clause converts a non-toric \mathfrak m-torsion point of the finite part at level Nq into an \mathfrak m-eigenvector at level N, which is the level-lowering step for the Frey curve.
References
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154, §4
- K. A. Ribet, On modular representations of \mathrm{Gal}(\overline{\mathbb{Q}}/\mathbb{Q}) arising from modular forms, Inventiones Mathematicae 100 (1990), 431–476
- S. Bosch, W. Lütkebohmert and M. Raynaud, Néron Models, Ergebnisse der Mathematik und ihrer Grenzgebiete 21, Springer, 1990
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 45 lines
- 12 declarations
- used in the statements of 40 theorems and imported by 44 proofs
- imports 2 definition modules
Source file: Definitions/Def_ModularCurve_JZeroNeronAtPData.lean
Imported by
Declarations
- def
ModularCurve.primesOf - theorem
ModularCurve.mem_primesOf - structure
ModularCurve.JZeroNeronAtPData - field
ModularCurve.JZeroNeronAtPData.A - field
ModularCurve.JZeroNeronAtPData.toricRank - field
ModularCurve.JZeroNeronAtPData.abelianRank - field
ModularCurve.JZeroNeronAtPData.card_toric - field
ModularCurve.JZeroNeronAtPData.card_fin - field
ModularCurve.JZeroNeronAtPData.fin_heckeTorsion_detects_lowerLevel - field
ModularCurve.JZeroNeronAtPData.HeckeInputsAll - field
ModularCurve.JZeroNeronAtPData.letI - def
ModularCurve.HasJZeroNeronAtPData
Source
import Mathlib import Definitions.Def_ModularCurve_JZeroNeronData import Definitions.Def_ModularCurve_MazurPrincipleCore set_option autoImplicit false noncomputable section namespace ModularCurve def primesOf (M : ℕ) : Finset Nat.Primes := (M.primeFactors).subtype Nat.Prime theorem mem_primesOf {M : ℕ} [NeZero M] (ℓ : Nat.Primes) : ℓ ∈ primesOf M ↔ (ℓ : ℕ) ∣ M := by have h1 := Finset.mem_subtype (s := M.primeFactors) (a := ℓ) refine h1.trans ?_ rw [Nat.mem_primeFactors] exact ⟨fun h => h.2.1, fun h => ⟨ℓ.2, h, NeZero.ne _⟩⟩ structure JZeroNeronAtPData (N q : ℕ) [NeZero N] [Fact q.Prime] (hqN : ¬ q ∣ N) (A : ValuationSubring (AlgebraicClosure ℚ)) (hA : A.LiesOverPrime q) extends JZeroNeronData N q hqN A hA where toricRank : ℕ abelianRank : ℕ card_toric : ∀ m : ℕ, 0 < m → Nat.card ↥(toric m) = m ^ toricRank card_fin : ∀ m : ℕ, 0 < m → Nat.card ↥(fin m) = m ^ (toricRank + 2 * abelianRank) fin_heckeTorsion_detects_lowerLevel : HeckeInputsAll (N * q) → HeckeOperatorsCommuteBar (N * q) → HeckeInputsAll N → HeckeOperatorsCommuteBar N → ∀ 𝔪 : Ideal HeckeAlg, 𝔪.IsMaximal → ((q : ℕ) : HeckeAlg) ∈ 𝔪 → ∀ x ∈ fin q, (letI := heckeModuleBar (N * q); x ∈ heckeTorsion (JZero (N * q)) 𝔪) → x ∉ toric q → (letI := heckeModuleBar N; HasLowerLevelTorsion (primesOf (N * q)) 𝔪 (JZero N)) def HasJZeroNeronAtPData (N q : ℕ) [NeZero N] [Fact q.Prime] (hqN : ¬ q ∣ N) : Prop := ∀ (A : ValuationSubring (AlgebraicClosure ℚ)) (hA : A.LiesOverPrime q), Nonempty (JZeroNeronAtPData N q hqN A hA) end ModularCurve end
Statements phrased using this module (40)
- Finite flat rank-two module at q forces lower-level 𝔪-torsion
ModularCurve.hasLowerLevelTorsion_of_finiteFlat_rankTwo_heckeTorsion5,566 below · depth 12 - Finite-flat level lowering at q ≥ 5
ModularCurve.hasLowerLevelTorsion_of_finiteFlat_rankTwo_heckeTorsion_of_five_le5,567 below · depth 12 - Order of the toric m-torsion subgroup: m^{toricRank}
ModularCurve.JZeroNeronObjectAtP.natCard_toricPts1,633 below · depth 15 - Special m-kernel of the J₀(N₀) datum has order m^{2g}
ModularCurve.JZeroNeronObjectAtP.LevelData.isFinite_schemeKerStr_special_and_finrank_eq_pow_two_mul_genusFF1,598 below · depth 16 - Prime-to-p abelian quotient family for the level-N₀p Néron object
ModularCurve.JZeroNeronObjectAtP.exists_abq_family_of_coprime2,209 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 - Non-toric 𝔪-torsion at p forces lower-level torsion
ModularCurve.JZeroNeronObjectAtP.hasLowerLevelTorsion_of_mem_finPts_of_not_mem_toricPts2,138 below · depth 17 - Non-toric 𝔪-torsion at p descends to level N₀
ModularCurve.JZeroNeronObjectAtP.heckeTorsion_ne_bot_of_mem_finPts_of_not_mem_toricPts2,161 below · depth 17 - Cardinality of the A-extendable m-torsion: m^{t+4g₀}
ModularCurve.JZeroNeronObjectAtP.natCard_finPts1,619 below · depth 17 - Frobenius acts as p Tₚ on toric torsion
ModularCurve.JZeroNeronObjectAtP.smul_eq_hecke_of_isFrobeniusAt_of_mem_toricPts_of_forall_smul_sub_mem_toricPts5,239 below · depth 17 - Frobenius squared acts by p² on prime-to-p toric torsion
ModularCurve.JZeroNeronObjectAtP.smul_smul_eq_of_isFrobeniusAt_of_mem_toricPts_of_forall_smul_sub_mem_toricPts3,616 below · depth 17 - Prime-to-p toric points lie in the monodromy toric part
ModularCurve.JZeroNeronObjectAtP.toricPts_le_toricMonodromyPart_of_forall_smul_sub_mem_toricPts1,702 below · depth 17 - Kernel of an abelian-quotient family equals the toric points
ModularCurve.JZeroNeronObjectAtP.abq_eq_zero_iff_mem_toricPts_of_forall_reductionModL_eq989 below · depth 18 - Hecke equivariance of an abelian-quotient family at p
ModularCurve.JZeroNeronObjectAtP.abq_heckeGen_smul_of_forall_reductionModL_eq1,225 below · depth 18 - Decomposition group equivariance of the abelian quotient family
ModularCurve.JZeroNeronObjectAtP.abq_smul_of_mem_decompositionSubgroup_of_forall_reductionModL_eq980 below · depth 18 - A prime-to-p abelian-quotient family on the Néron object
ModularCurve.JZeroNeronObjectAtP.exists_abq_family_forall_reductionModL_eq1,823 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 - Divisibility of the toric point subgroups
ModularCurve.JZeroNeronObjectAtP.exists_mem_toricPts_mul_nsmul_eq0 below · depth 18 - Lower-level 𝔪-torsion from a non-zero abelian-quotient coordinate
ModularCurve.JZeroNeronObjectAtP.hasLowerLevelTorsion_of_ptsSp_symm_fibreMap_abqFibre_ne_zero1,897 below · depth 18 - Transport of 𝔪-torsion from level N₀p to level N₀
ModularCurve.JZeroNeronObjectAtP.heckeTorsion_ne_bot_of_ptsSp_symm_fibreMap_abqFibre_ne_zero1,920 below · depth 18 - Order of the special m-kernel: m^{t+4g₀}
ModularCurve.JZeroNeronObjectAtP.isFinite_schemeKerStr_special_and_finrank_eq1,611 below · depth 18 - Finite-part m-torsion counted by A-sections of the m-kernel
ModularCurve.JZeroNeronObjectAtP.natCard_finPts_eq_natCard_sections_schemeKer1 below · depth 18 - Inertia-invariant n-torsion bounded by finite part times component group
ModularCurve.JZeroNeronObjectAtP.natCard_jZeroTorsion_inf_inertiaInvariants_le1,627 below · depth 18 - Inertia displacement count for ℓ^k-torsion of J₀(N₀p)
ModularCurve.JZeroNeronObjectAtP.natCard_jZeroTorsion_le_mul_of_prime_pow6 below · depth 18 - Non-toric finite p-points have non-zero abelian-quotient coordinates
ModularCurve.JZeroNeronObjectAtP.ptsSp_symm_fibreMap_abqFibre_ne_zero_of_mem_finPts_of_not_mem_toricPts1,741 below · depth 18 - Range of the abelian-quotient maps is the m-torsion
ModularCurve.JZeroNeronObjectAtP.range_abq_eq_torsionBy_of_forall_reductionModL_eq1,761 below · depth 18 - Kernel of [m] on the Néron object over a place A
ModularCurve.JZeroNeronObjectAtP.schemeKerStr_baseChange_props1,616 below · depth 18 - Inertia fixes the prime-to-p toric points
ModularCurve.JZeroNeronObjectAtP.smul_eq_self_of_mem_inertiaSubgroupIn_of_mem_toricPts3 below · depth 18 - Toric ab-torsion lies in toric a- plus b-torsion
ModularCurve.JZeroNeronObjectAtP.toricPts_mul_le_sup_of_coprime0 below · depth 18 - Lower-level torsion from a non-vanishing degeneracy push-forward
ModularCurve.hasLowerLevelTorsion_of_mem_heckeTorsion_of_degeneracyPushforwardPair_ne_zero212 below · depth 18 - Level-N₀ 𝔪-torsion from a p-old point when Uₚnotin𝔪
ModularCurve.heckeTorsion_ne_bot_of_mem_heckeTorsion_of_degeneracyPushforwardPair_ne_zero_of_not_mem252 below · depth 18 - Reduction mod p intertwines Hecke action on the special fibre
ModularCurve.JZeroNeronObjectAtP.LevelData.reductionModL_smul_eq_ptsSp_symm_schemeHomOverComp742 below · depth 19 - Degeneracy morphisms intertwine Hecke endomorphisms over the base
ModularCurve.JZeroNeronObjectAtP.comp_degeneracyHom_eq_degeneracyHom_comp5 below · depth 19 - Prime-to-p division modulo points extending to the place
ModularCurve.JZeroNeronObjectAtP.exists_mem_inertiaInvariants_nsmul_eq_zero_sub_extendsToPlace21 below · depth 19 - Extendable prime-to-p torsion on J₀(N₀p) is inertia-invariant
ModularCurve.JZeroNeronObjectAtP.finPts_le_inertiaInvariantTorsion5 below · depth 19 - Order of the special m-kernel: m^t times a square
ModularCurve.JZeroNeronObjectAtP.isFinite_schemeKerStr_special_and_finrank_eq_mul_sq13 below · depth 19 - Toric 𝔪-torsion bound at p∈𝔪
ModularCurve.JZeroNeronObjectAtP.natCard_toricPts_inf_heckeTorsion_le1,205 below · depth 19 - Uₚ on the two special-fibre coordinates at p
ModularCurve.JZeroNeronObjectAtP.ptsSp_symm_fibreMap_abqFibre_comp_eq_of_degeneracyHom_heckeGen_self1,015 below · depth 19 - Frobenius commutes with the transported Hecke operator on the reduction
ModularCurve.JZeroNeronObjectAtP.ptsSp_symm_schemeHomOverComp_frobSp960 below · depth 19 - Rigidity: morphisms out of G are determined on ℚ̄-points
ModularCurve.JZeroNeronObjectAtP.schemeHomOver_ext_of_forall_pts_comp_eq5 below · depth 19