Definitions/Def_CuspForm_HeckeLocal.lean
The local Hecke coefficient ring
Fix a level N\ge 1, a set S of excluded primes, a complete discrete valuation ring \mathcal{O} and a ring homomorphism \theta from the weight-2 Hecke algebra heckeAlgebra N 2 S (the \mathbb{Z}-subalgebra of \operatorname{End}_{\mathbb{C}} of cusp forms on \Gamma_0(N) generated by the operators T_\ell for \ell prime, \ell\nmid N, \ell\notin S, and U_q for q\mid N prime, q\notin S) to the residue field of \mathcal{O}. An element of this Hecke algebra preserves intLattice N 2, the \mathbb{Z}-span of the cusp forms all of whose q-expansion coefficients are rational integers, and latticeRestrict is its restriction to that lattice; latticeActionHom assembles these restrictions into a ring homomorphism into \operatorname{End}_{\mathbb{Z}} of the lattice, and heckeLatticeAlgebra is its image, a \mathbb{Z}-subalgebra shown to be commutative and finite and free over \mathbb{Z} (the lattice itself being finitely generated and torsion-free). The induced map latticeRestrictHom onto it is surjective, and injective — hence bijective — as soon as HasIntegralStructure N 2 holds, i.e. the \mathbb{C}-span of the integral lattice is everything.
On the base algebra heckeBaseAlgebra N S 𝒪 =\mathcal{O}\otimes_{\mathbb{Z}} heckeLatticeAlgebra, latticeBaseChange is the base change of latticeRestrictHom, surjective in general and injective under an integral structure. The homomorphism residualCharacter, sending a\otimes t to the residue of a times \theta(t), is surjective, so its kernel heckeCharKernel is a maximal ideal of \mathcal{O}\otimes_{\mathbb{Z}} heckeAlgebra; heckeLocalIdeal is its image in the base algebra, maximal whenever the kernel of latticeBaseChange is contained in heckeCharKernel. The carrier heckeLocal N S 𝒪 θ is the localisation of the base algebra at heckeLocalSubmonoid, the image of the complement of heckeCharKernel; under the above containment this submonoid is exactly the complement of heckeLocalIdeal, so the localisation is the local ring at that maximal ideal. The map heckeLocal.π is the resulting homomorphism from the Hecke algebra. Registered instances make heckeLocal an \mathcal{O}-algebra which is Noetherian and finite and free over \mathcal{O} unconditionally (argued through a dichotomy: either 0 lies in the submonoid and the localisation is the zero ring, or one is at a maximal ideal and uses the splitting of a module-finite algebra over a complete local ring into its local factors at maximal ideals), and, assuming HasIntegralStructure N 2, a complete local ring with \mathcal{O}\to heckeLocal a local homomorphism.
Relation to Mathlib
The localisation apparatus (Localization, IsLocalization.AtPrime, freeness and finiteness transfer) is Mathlib's; the Hecke algebra of \Gamma_0(N) in weight 2, the lattice of cusp forms with integral q-expansion and the local Hecke ring built here are the project's own notions.
Where it is used
The ring heckeLocal is the coefficient ring on the Hecke side of the R=\mathbb{T} comparison: its registered instances (complete local Noetherian, finite and free over \mathcal{O}, with local structure map) are precisely the typeclass assumptions required of the ring T in HeckeGaloisRepDatum, the datum carrying the Galois representation attached to the residual eigensystem \theta together with the Eichler–Shimura characteristic polynomial conditions at good primes.
References
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154, §3
- F. Diamond and J. Shurman, A First Course in Modular Forms, Graduate Texts in Mathematics 228, Springer, 2005
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 441 lines
- 67 declarations
- used in the statements of 165 theorems and imported by 175 proofs
- imports 2 definition modules, and the statements of 4 theorems
Source file: Definitions/Def_CuspForm_HeckeLocal.lean
Imports
Theorems imported by this definition module
Declarations
- def
CuspForm.latticeRestrict - def
CuspForm.latticeActionHom - def
CuspForm.heckeLatticeAlgebra - theorem
CuspForm.intLattice.moduleFinite - theorem
CuspForm.isAddTorsionFree_cuspForm - theorem
CuspForm.intLattice.moduleFree - theorem
CuspForm.intLattice.isAddTorsionFree_end - instance
CuspForm.heckeLatticeAlgebra.instModuleFinite - theorem
CuspForm.heckeLatticeAlgebra.isAddTorsionFree - instance
CuspForm.heckeLatticeAlgebra.instModuleFree - def
CuspForm.latticeRestrictHom - instance
CuspForm.heckeLatticeAlgebra.instCommRing - theorem
CuspForm.latticeRestrict_injective - theorem
CuspForm.latticeActionHom_injective - theorem
CuspForm.latticeRestrictHom_surjective - theorem
CuspForm.latticeRestrictHom_bijective - def
CuspForm.residualCharacter - def
CuspForm.heckeCharKernel - instance
CuspForm.heckeCharKernel.instIsPrime - def
CuspForm.heckeBaseAlgebra - instance
CuspForm.heckeBaseAlgebra.instCommRing - instance
CuspForm.heckeBaseAlgebra.instAlgebra - def
CuspForm.latticeBaseChange - def
CuspForm.heckeLocalSubmonoid - def
CuspForm.heckeLocal - instance
CuspForm.heckeLocal.instCommRing - instance
CuspForm.heckeLocal.instAlgebra - instance
CuspForm.heckeLocal.instAlgebraBase - instance
CuspForm.heckeLocal.instIsScalarTower - instance
CuspForm.heckeLocal.instIsLocalization - def
CuspForm.heckeLocal.π - theorem
CuspForm.residualCharacter_tmul - theorem
CuspForm.residualCharacter_algebraMap - theorem
CuspForm.residualCharacter_surjective - instance
CuspForm.heckeCharKernel.instIsMaximal - theorem
CuspForm.mem_heckeCharKernel_iff - theorem
CuspForm.algebraMap_mem_heckeCharKernel_iff - theorem
CuspForm.latticeBaseChange_tmul - theorem
CuspForm.latticeBaseChange_algebraMap - theorem
CuspForm.latticeBaseChange_surjective - theorem
CuspForm.latticeBaseChange_injective - def
CuspForm.heckeLocalIdeal - theorem
CuspForm.comap_heckeLocalIdeal - theorem
CuspForm.heckeLocalIdeal_isMaximal - theorem
CuspForm.mem_heckeLocalSubmonoid_iff - theorem
CuspForm.ker_latticeBaseChange_le_heckeCharKernel - instance
CuspForm.heckeLocalIdeal.instIsMaximal - theorem
CuspForm.heckeLocalSubmonoid_eq_primeCompl - instance
CuspForm.heckeLocal.instIsLocalizationAtPrime - theorem
CuspForm.heckeLocal.isLocalRing - theorem
CuspForm.heckeLocal.isLocalHom_algebraMap - lemma
CuspForm.trio_isTorsionFree_finsupp - lemma
CuspForm.trio_isTorsionFree_of_free - lemma
CuspForm.trio_surjective_atPrime - lemma
CuspForm.trio_isTorsionFree_atPrime - lemma
CuspForm.trio_free_atPrime - lemma
CuspForm.trio_moduleFinite_base - lemma
CuspForm.trio_moduleFree_base - lemma
CuspForm.trio_isNoetherianRing_base - lemma
CuspForm.trio_subsingleton_or_ker_le - lemma
CuspForm.trio_isLocalization_atPrime - instance
CuspForm.heckeLocal.instIsNoetherianRing - instance
CuspForm.heckeLocal.instModuleFinite - instance
CuspForm.heckeLocal.instModuleFree - instance
CuspForm.heckeLocal.instIsLocalRing - instance
CuspForm.heckeLocal.instIsAdicComplete - instance
CuspForm.heckeLocal.instIsLocalHom
Source
import Definitions.Def_CuspForm_HeckeGaloisRepDatum import Definitions.Def_CuspForm_IntegralStructure import Theorems.Thm_CuspForm_mem_intLattice_of_mem_heckeAlgebra import Theorems.Thm_CuspForm_intLattice_fg import Theorems.Thm_IsLocalRing_isAdicComplete_of_module_finite import Theorems.Thm_Algebra_finite_maximalSpectrum_and_bijective_localization_of_module_finite set_option autoImplicit false noncomputable section open scoped TensorProduct namespace CuspForm variable (N : ℕ) [NeZero N] (S : Set ℕ) def latticeRestrict {t : Module.End ℂ (CuspForm (CongruenceSubgroup.Gamma0 N) 2)} (ht : t ∈ heckeAlgebra N 2 S) : Module.End ℤ ↥(intLattice N 2) := LinearMap.restrict (t.restrictScalars ℤ) (fun _f hf => mem_intLattice_of_mem_heckeAlgebra one_le_two ht hf) def latticeActionHom : ↥(heckeAlgebra N 2 S) →+* Module.End ℤ ↥(intLattice N 2) where toFun t := latticeRestrict N S t.2 map_one' := LinearMap.ext fun _ => Subtype.ext rfl map_mul' _ _ := LinearMap.ext fun _ => Subtype.ext rfl map_zero' := LinearMap.ext fun _ => Subtype.ext rfl map_add' _ _ := LinearMap.ext fun _ => Subtype.ext rfl def heckeLatticeAlgebra : Subalgebra ℤ (Module.End ℤ ↥(intLattice N 2)) := ((latticeActionHom N S).toIntAlgHom).range theorem intLattice.moduleFinite : Module.Finite ℤ ↥(intLattice N 2) := Module.Finite.iff_fg.mpr (intLattice_fg N 2) omit [NeZero N] in theorem isAddTorsionFree_cuspForm : IsAddTorsionFree (CuspForm (CongruenceSubgroup.Gamma0 N) 2) := .of_isTorsionFree ℂ _ theorem intLattice.moduleFree : Module.Free ℤ ↥(intLattice N 2) := by haveI := intLattice.moduleFinite N haveI := isAddTorsionFree_cuspForm N exact Module.free_of_finite_type_torsion_free' omit [NeZero N] in theorem intLattice.isAddTorsionFree_end : IsAddTorsionFree (Module.End ℤ ↥(intLattice N 2)) where nsmul_right_injective n hn a b hab := by haveI := isAddTorsionFree_cuspForm N refine LinearMap.ext fun f => Subtype.ext ?_ have h : n • ((a f : ↥(intLattice N 2)) : CuspForm (CongruenceSubgroup.Gamma0 N) 2) = n • ((b f : ↥(intLattice N 2)) : CuspForm (CongruenceSubgroup.Gamma0 N) 2) := by simpa using congrArg (fun g : Module.End ℤ ↥(intLattice N 2) => ((g f : ↥(intLattice N 2)) : CuspForm (CongruenceSubgroup.Gamma0 N) 2)) hab exact nsmul_right_injective hn h instance heckeLatticeAlgebra.instModuleFinite : Module.Finite ℤ ↥(heckeLatticeAlgebra N S) := by haveI := intLattice.moduleFinite N haveI := intLattice.moduleFree N exact Module.Finite.of_injective (heckeLatticeAlgebra N S).val.toLinearMap Subtype.val_injective theorem heckeLatticeAlgebra.isAddTorsionFree : IsAddTorsionFree ↥(heckeLatticeAlgebra N S) where nsmul_right_injective n hn a b hab := by haveI := intLattice.isAddTorsionFree_end N apply Subtype.ext have h : n • (a : Module.End ℤ ↥(intLattice N 2)) = n • (b : Module.End ℤ ↥(intLattice N 2)) := congrArg Subtype.val hab exact nsmul_right_injective hn h instance heckeLatticeAlgebra.instModuleFree : Module.Free ℤ ↥(heckeLatticeAlgebra N S) := by haveI := heckeLatticeAlgebra.isAddTorsionFree N S exact Module.free_of_finite_type_torsion_free' def latticeRestrictHom : ↥(heckeAlgebra N 2 S) →ₐ[ℤ] ↥(heckeLatticeAlgebra N S) := ((latticeActionHom N S).toIntAlgHom).rangeRestrict instance heckeLatticeAlgebra.instCommRing : CommRing ↥(heckeLatticeAlgebra N S) := { (inferInstance : Ring ↥(heckeLatticeAlgebra N S)) with mul_comm := by rintro ⟨_, s, rfl⟩ ⟨_, t, rfl⟩ exact Subtype.ext ((map_mul _ s t).symm.trans ((congrArg _ (mul_comm s t)).trans (map_mul _ t s))) } theorem latticeRestrict_injective (hint : HasIntegralStructure N 2) (t : ↥(heckeAlgebra N 2 S)) (h : latticeRestrict N S t.2 = 0) : t = 0 := by refine Subtype.ext (LinearMap.ext_on hint fun f hf => ?_) exact congrArg Subtype.val (LinearMap.congr_fun h ⟨f, hf⟩) set_option synthInstance.maxHeartbeats 400000 in theorem latticeActionHom_injective (hint : HasIntegralStructure N 2) : Function.Injective (latticeActionHom N S) := (injective_iff_map_eq_zero _).mpr fun t ht => latticeRestrict_injective N S hint t ht theorem latticeRestrictHom_surjective : Function.Surjective (latticeRestrictHom N S) := AlgHom.rangeRestrict_surjective _ theorem latticeRestrictHom_bijective (hint : HasIntegralStructure N 2) : Function.Bijective (latticeRestrictHom N S) := ⟨fun _ _ h => latticeActionHom_injective N S hint (congrArg Subtype.val h), latticeRestrictHom_surjective N S⟩ variable (𝒪 : Type) [CommRing 𝒪] [IsDomain 𝒪] [IsDiscreteValuationRing 𝒪] [IsAdicComplete (IsLocalRing.maximalIdeal 𝒪) 𝒪] variable (θ : heckeAlgebra N 2 S →+* IsLocalRing.ResidueField 𝒪) def residualCharacter : (𝒪 ⊗[ℤ] ↥(heckeAlgebra N 2 S)) →ₐ[ℤ] IsLocalRing.ResidueField 𝒪 := Algebra.TensorProduct.productMap (algebraMap 𝒪 (IsLocalRing.ResidueField 𝒪)).toIntAlgHom θ.toIntAlgHom def heckeCharKernel : Ideal (𝒪 ⊗[ℤ] ↥(heckeAlgebra N 2 S)) := RingHom.ker (residualCharacter N S 𝒪 θ) instance heckeCharKernel.instIsPrime : (heckeCharKernel N S 𝒪 θ).IsPrime := RingHom.ker_isPrime _ def heckeBaseAlgebra : Type := 𝒪 ⊗[ℤ] ↥(heckeLatticeAlgebra N S) instance heckeBaseAlgebra.instCommRing : CommRing (heckeBaseAlgebra N S 𝒪) := inferInstanceAs (CommRing (𝒪 ⊗[ℤ] ↥(heckeLatticeAlgebra N S))) instance heckeBaseAlgebra.instAlgebra : Algebra 𝒪 (heckeBaseAlgebra N S 𝒪) := inferInstanceAs (Algebra 𝒪 (𝒪 ⊗[ℤ] ↥(heckeLatticeAlgebra N S))) def latticeBaseChange : (𝒪 ⊗[ℤ] ↥(heckeAlgebra N 2 S)) →+* heckeBaseAlgebra N S 𝒪 := (Algebra.TensorProduct.map (AlgHom.id ℤ 𝒪) (latticeRestrictHom N S)).toRingHom def heckeLocalSubmonoid : Submonoid (heckeBaseAlgebra N S 𝒪) := (heckeCharKernel N S 𝒪 θ).primeCompl.map (latticeBaseChange N S 𝒪) def heckeLocal : Type := Localization (heckeLocalSubmonoid N S 𝒪 θ) instance heckeLocal.instCommRing : CommRing (heckeLocal N S 𝒪 θ) := inferInstanceAs (CommRing (Localization (heckeLocalSubmonoid N S 𝒪 θ))) instance heckeLocal.instAlgebra : Algebra 𝒪 (heckeLocal N S 𝒪 θ) := inferInstanceAs (Algebra 𝒪 (Localization (heckeLocalSubmonoid N S 𝒪 θ))) instance heckeLocal.instAlgebraBase : Algebra (heckeBaseAlgebra N S 𝒪) (heckeLocal N S 𝒪 θ) := inferInstanceAs (Algebra (heckeBaseAlgebra N S 𝒪) (Localization (heckeLocalSubmonoid N S 𝒪 θ))) instance heckeLocal.instIsScalarTower : IsScalarTower 𝒪 (heckeBaseAlgebra N S 𝒪) (heckeLocal N S 𝒪 θ) := inferInstanceAs (IsScalarTower 𝒪 (heckeBaseAlgebra N S 𝒪) (Localization (heckeLocalSubmonoid N S 𝒪 θ))) instance heckeLocal.instIsLocalization : IsLocalization (heckeLocalSubmonoid N S 𝒪 θ) (heckeLocal N S 𝒪 θ) := inferInstanceAs (IsLocalization (heckeLocalSubmonoid N S 𝒪 θ) (Localization (heckeLocalSubmonoid N S 𝒪 θ))) def heckeLocal.π : ↥(heckeAlgebra N 2 S) →+* heckeLocal N S 𝒪 θ := ((algebraMap (heckeBaseAlgebra N S 𝒪) (heckeLocal N S 𝒪 θ)).comp (latticeBaseChange N S 𝒪)).comp Algebra.TensorProduct.includeRight.toRingHom section Structure set_option synthInstance.maxHeartbeats 400000 set_option maxHeartbeats 1000000 omit [IsAdicComplete (IsLocalRing.maximalIdeal 𝒪) 𝒪] theorem residualCharacter_tmul (a : 𝒪) (t : ↥(heckeAlgebra N 2 S)) : residualCharacter N S 𝒪 θ (a ⊗ₜ t) = IsLocalRing.residue 𝒪 a * θ t := rfl theorem residualCharacter_algebraMap (a : 𝒪) : residualCharacter N S 𝒪 θ (algebraMap 𝒪 _ a) = IsLocalRing.residue 𝒪 a := by rw [Algebra.TensorProduct.algebraMap_apply, Algebra.algebraMap_self, RingHom.id_apply, residualCharacter_tmul, map_one, mul_one] theorem residualCharacter_surjective : Function.Surjective (residualCharacter N S 𝒪 θ) := fun x => by obtain ⟨a, rfl⟩ := IsLocalRing.residue_surjective x exact ⟨algebraMap 𝒪 _ a, residualCharacter_algebraMap N S 𝒪 θ a⟩ instance heckeCharKernel.instIsMaximal : (heckeCharKernel N S 𝒪 θ).IsMaximal := RingHom.ker_isMaximal_of_surjective _ (residualCharacter_surjective N S 𝒪 θ) theorem mem_heckeCharKernel_iff (x : 𝒪 ⊗[ℤ] ↥(heckeAlgebra N 2 S)) : x ∈ heckeCharKernel N S 𝒪 θ ↔ residualCharacter N S 𝒪 θ x = 0 := RingHom.mem_ker theorem algebraMap_mem_heckeCharKernel_iff (a : 𝒪) : algebraMap 𝒪 (𝒪 ⊗[ℤ] ↥(heckeAlgebra N 2 S)) a ∈ heckeCharKernel N S 𝒪 θ ↔ a ∈ IsLocalRing.maximalIdeal 𝒪 := by rw [mem_heckeCharKernel_iff, residualCharacter_algebraMap, IsLocalRing.residue_eq_zero_iff] omit [IsDomain 𝒪] [IsDiscreteValuationRing 𝒪] in theorem latticeBaseChange_tmul (a : 𝒪) (t : ↥(heckeAlgebra N 2 S)) : latticeBaseChange N S 𝒪 (a ⊗ₜ t) = (a ⊗ₜ[ℤ] latticeRestrictHom N S t : 𝒪 ⊗[ℤ] ↥(heckeLatticeAlgebra N S)) := rfl omit [IsDomain 𝒪] [IsDiscreteValuationRing 𝒪] in theorem latticeBaseChange_algebraMap (a : 𝒪) : latticeBaseChange N S 𝒪 (algebraMap 𝒪 _ a) = algebraMap 𝒪 (heckeBaseAlgebra N S 𝒪) a := by rw [Algebra.TensorProduct.algebraMap_apply, Algebra.algebraMap_self, RingHom.id_apply, latticeBaseChange_tmul, map_one] rfl omit [IsDomain 𝒪] [IsDiscreteValuationRing 𝒪] in theorem latticeBaseChange_surjective : Function.Surjective (latticeBaseChange N S 𝒪) := Algebra.TensorProduct.map_surjective _ _ Function.surjective_id (latticeRestrictHom_surjective N S) omit [IsDomain 𝒪] [IsDiscreteValuationRing 𝒪] in theorem latticeBaseChange_injective (hint : HasIntegralStructure N 2) : Function.Injective (latticeBaseChange N S 𝒪) := (Algebra.TensorProduct.congr (AlgEquiv.refl : 𝒪 ≃ₐ[ℤ] 𝒪) (AlgEquiv.ofBijective (latticeRestrictHom N S) (latticeRestrictHom_bijective N S hint))).injective def heckeLocalIdeal : Ideal (heckeBaseAlgebra N S 𝒪) := (heckeCharKernel N S 𝒪 θ).map (latticeBaseChange N S 𝒪) theorem comap_heckeLocalIdeal (hker : RingHom.ker (latticeBaseChange N S 𝒪) ≤ heckeCharKernel N S 𝒪 θ) : (heckeLocalIdeal N S 𝒪 θ).comap (latticeBaseChange N S 𝒪) = heckeCharKernel N S 𝒪 θ := by rw [heckeLocalIdeal, Ideal.comap_map_of_surjective _ (latticeBaseChange_surjective N S 𝒪), sup_eq_left] exact hker theorem heckeLocalIdeal_isMaximal (hker : RingHom.ker (latticeBaseChange N S 𝒪) ≤ heckeCharKernel N S 𝒪 θ) : (heckeLocalIdeal N S 𝒪 θ).IsMaximal := by refine (Ideal.map_eq_top_or_isMaximal_of_surjective _ (latticeBaseChange_surjective N S 𝒪) (heckeCharKernel.instIsMaximal N S 𝒪 θ)).resolve_left fun htop => ?_ apply (heckeCharKernel.instIsMaximal N S 𝒪 θ).ne_top rw [← comap_heckeLocalIdeal N S 𝒪 θ hker, heckeLocalIdeal, htop, Ideal.comap_top] theorem mem_heckeLocalSubmonoid_iff (hker : RingHom.ker (latticeBaseChange N S 𝒪) ≤ heckeCharKernel N S 𝒪 θ) (x : heckeBaseAlgebra N S 𝒪) : x ∈ heckeLocalSubmonoid N S 𝒪 θ ↔ x ∉ heckeLocalIdeal N S 𝒪 θ := by constructor · rintro ⟨a, ha, rfl⟩ hx refine Ideal.mem_primeCompl_iff.mp ha ?_ rw [← comap_heckeLocalIdeal N S 𝒪 θ hker] exact Ideal.mem_comap.mpr hx · intro hx obtain ⟨a, rfl⟩ := latticeBaseChange_surjective N S 𝒪 x exact ⟨a, Ideal.mem_primeCompl_iff.mpr fun ha => hx (Ideal.mem_map_of_mem _ ha), rfl⟩ section Hint variable [Fact (HasIntegralStructure N 2)] theorem ker_latticeBaseChange_le_heckeCharKernel : RingHom.ker (latticeBaseChange N S 𝒪) ≤ heckeCharKernel N S 𝒪 θ := fun x hx => by rw [RingHom.mem_ker] at hx rw [latticeBaseChange_injective N S 𝒪 Fact.out (hx.trans (map_zero _).symm)] exact zero_mem _ instance heckeLocalIdeal.instIsMaximal : (heckeLocalIdeal N S 𝒪 θ).IsMaximal := heckeLocalIdeal_isMaximal N S 𝒪 θ (ker_latticeBaseChange_le_heckeCharKernel N S 𝒪 θ) theorem heckeLocalSubmonoid_eq_primeCompl : heckeLocalSubmonoid N S 𝒪 θ = (heckeLocalIdeal N S 𝒪 θ).primeCompl := Submonoid.ext fun x => (mem_heckeLocalSubmonoid_iff N S 𝒪 θ (ker_latticeBaseChange_le_heckeCharKernel N S 𝒪 θ) x).trans Ideal.mem_primeCompl_iff.symm instance heckeLocal.instIsLocalizationAtPrime : IsLocalization.AtPrime (heckeLocal N S 𝒪 θ) (heckeLocalIdeal N S 𝒪 θ) := by rw [IsLocalization.AtPrime, ← heckeLocalSubmonoid_eq_primeCompl N S 𝒪 θ] exact heckeLocal.instIsLocalization N S 𝒪 θ theorem heckeLocal.isLocalRing : IsLocalRing (heckeLocal N S 𝒪 θ) := IsLocalization.AtPrime.isLocalRing (heckeLocal N S 𝒪 θ) (heckeLocalIdeal N S 𝒪 θ) theorem heckeLocal.isLocalHom_algebraMap : IsLocalHom (algebraMap 𝒪 (heckeLocal N S 𝒪 θ)) := by constructor intro a ha rw [IsScalarTower.algebraMap_apply 𝒪 (heckeBaseAlgebra N S 𝒪) (heckeLocal N S 𝒪 θ), IsLocalization.AtPrime.isUnit_to_map_iff (heckeLocal N S 𝒪 θ) (heckeLocalIdeal N S 𝒪 θ), Ideal.mem_primeCompl_iff, ← latticeBaseChange_algebraMap, ← Ideal.mem_comap, comap_heckeLocalIdeal N S 𝒪 θ (ker_latticeBaseChange_le_heckeCharKernel N S 𝒪 θ), algebraMap_mem_heckeCharKernel_iff] at ha exact IsLocalRing.notMem_maximalIdeal.mp ha end Hint end Structure section TrioEngines set_option synthInstance.maxHeartbeats 400000 set_option maxHeartbeats 1000000 private lemma trio_isTorsionFree_finsupp (R : Type) [CommRing R] (ι : Type) : Module.IsTorsionFree R (ι →₀ R) where isSMulRegular r hr f g hfg := Finsupp.ext fun a => hr.isSMulRegular (M := R) (by have h := congrArg (fun h => h a) hfg simpa [Finsupp.smul_apply] using h) private lemma trio_isTorsionFree_of_free (R : Type) [CommRing R] (B : Type) [AddCommGroup B] [Module R B] [Module.Free R B] : Module.IsTorsionFree R B := by haveI := trio_isTorsionFree_finsupp R (Module.Free.ChooseBasisIndex R B) set b := Module.Free.chooseBasis R B with hb exact Function.Injective.moduleIsTorsionFree (⇑b.repr) b.repr.injective fun r m => map_smul b.repr r m private lemma trio_surjective_atPrime {R : Type} [CommRing R] [IsLocalRing R] [IsNoetherianRing R] [IsAdicComplete (IsLocalRing.maximalIdeal R) R] (B : Type) [CommRing B] [Algebra R B] [Module.Finite R B] (P : MaximalSpectrum B) : Function.Surjective (algebraMap B (Localization.AtPrime P.asIdeal)) := by classical obtain ⟨-, hbij, -, -⟩ := Algebra.finite_maximalSpectrum_and_bijective_localization_of_module_finite (𝒪 := R) B intro z obtain ⟨b, hb⟩ := hbij.2 (Function.update 0 P z) refine ⟨b, ?_⟩ have h := congrFun hb P simp only [Function.update_self] at h exact h private lemma trio_isTorsionFree_atPrime {R : Type} [CommRing R] [IsLocalRing R] [IsNoetherianRing R] [IsAdicComplete (IsLocalRing.maximalIdeal R) R] (B : Type) [CommRing B] [Algebra R B] [Module.Finite R B] [Module.Free R B] (P : MaximalSpectrum B) : Module.IsTorsionFree R (Localization.AtPrime P.asIdeal) := by classical obtain ⟨-, hbij, -, -⟩ := Algebra.finite_maximalSpectrum_and_bijective_localization_of_module_finite (𝒪 := R) B haveI htfB : Module.IsTorsionFree R B := trio_isTorsionFree_of_free R B set Φ : B →ₗ[R] ∀ Q : MaximalSpectrum B, Localization.AtPrime Q.asIdeal := { toFun := fun a Q => algebraMap B (Localization.AtPrime Q.asIdeal) a map_add' := fun a b => funext fun Q => map_add _ a b map_smul' := fun c a => funext fun Q => by simp only [RingHom.id_apply, Pi.smul_apply, Algebra.smul_def, map_mul, ← IsScalarTower.algebraMap_apply] } with hPhidef have hPhibij : Function.Bijective Φ := hbij have hsingle : Function.Injective (Pi.single (M := fun Q : MaximalSpectrum B => Localization.AtPrime Q.asIdeal) P) := by intro x y hxy have h := congrFun hxy P simpa using h set e := LinearEquiv.ofBijective Φ hPhibij with hedef set g : Localization.AtPrime P.asIdeal →ₗ[R] B := e.symm.toLinearMap ∘ₗ LinearMap.single R (fun Q : MaximalSpectrum B => Localization.AtPrime Q.asIdeal) P with hgdef have hginj : Function.Injective g := e.symm.injective.comp hsingle exact Function.Injective.moduleIsTorsionFree (⇑g) hginj fun r m => map_smul g r m private lemma trio_free_atPrime {R : Type} [CommRing R] [IsDomain R] [IsLocalRing R] [IsPrincipalIdealRing R] [IsNoetherianRing R] [IsAdicComplete (IsLocalRing.maximalIdeal R) R] (B : Type) [CommRing B] [Algebra R B] [Module.Finite R B] [Module.Free R B] (P : MaximalSpectrum B) : Module.Free R (Localization.AtPrime P.asIdeal) := by obtain ⟨-, -, hfin, -⟩ := Algebra.finite_maximalSpectrum_and_bijective_localization_of_module_finite (𝒪 := R) B haveI := hfin P haveI := trio_isTorsionFree_atPrime (R := R) B P exact Module.free_of_finite_type_torsion_free' omit [IsDomain 𝒪] [IsDiscreteValuationRing 𝒪] [IsAdicComplete (IsLocalRing.maximalIdeal 𝒪) 𝒪] in private lemma trio_moduleFinite_base : Module.Finite 𝒪 (heckeBaseAlgebra N S 𝒪) := inferInstanceAs (Module.Finite 𝒪 (𝒪 ⊗[ℤ] ↥(heckeLatticeAlgebra N S))) omit [IsDomain 𝒪] [IsDiscreteValuationRing 𝒪] [IsAdicComplete (IsLocalRing.maximalIdeal 𝒪) 𝒪] in private lemma trio_moduleFree_base : Module.Free 𝒪 (heckeBaseAlgebra N S 𝒪) := inferInstanceAs (Module.Free 𝒪 (𝒪 ⊗[ℤ] ↥(heckeLatticeAlgebra N S))) omit [IsAdicComplete (IsLocalRing.maximalIdeal 𝒪) 𝒪] in private lemma trio_isNoetherianRing_base : IsNoetherianRing (heckeBaseAlgebra N S 𝒪) := by haveI := trio_moduleFinite_base N S 𝒪 exact IsNoetherianRing.of_finite 𝒪 (heckeBaseAlgebra N S 𝒪) omit [IsAdicComplete (IsLocalRing.maximalIdeal 𝒪) 𝒪] in private lemma trio_subsingleton_or_ker_le : Subsingleton (heckeLocal N S 𝒪 θ) ∨ RingHom.ker (latticeBaseChange N S 𝒪) ≤ heckeCharKernel N S 𝒪 θ := by by_cases hker : RingHom.ker (latticeBaseChange N S 𝒪) ≤ heckeCharKernel N S 𝒪 θ · exact Or.inr hker · refine Or.inl ?_ obtain ⟨x, hxk, hxm⟩ := SetLike.not_le_iff_exists.mp hker have h0 : (0 : heckeBaseAlgebra N S 𝒪) ∈ heckeLocalSubmonoid N S 𝒪 θ := ⟨x, Ideal.mem_primeCompl_iff.mpr hxm, by rw [RingHom.mem_ker] at hxk exact hxk⟩ exact IsLocalization.subsingleton h0 omit [IsAdicComplete (IsLocalRing.maximalIdeal 𝒪) 𝒪] in private lemma trio_isLocalization_atPrime (hker : RingHom.ker (latticeBaseChange N S 𝒪) ≤ heckeCharKernel N S 𝒪 θ) : haveI := (heckeLocalIdeal_isMaximal N S 𝒪 θ hker).isPrime IsLocalization (heckeLocalIdeal N S 𝒪 θ).primeCompl (heckeLocal N S 𝒪 θ) := by haveI := (heckeLocalIdeal_isMaximal N S 𝒪 θ hker).isPrime have hsub : heckeLocalSubmonoid N S 𝒪 θ = (heckeLocalIdeal N S 𝒪 θ).primeCompl := Submonoid.ext fun x => (mem_heckeLocalSubmonoid_iff N S 𝒪 θ hker x).trans Ideal.mem_primeCompl_iff.symm rw [← hsub] exact heckeLocal.instIsLocalization N S 𝒪 θ end TrioEngines instance heckeLocal.instIsNoetherianRing : IsNoetherianRing (heckeLocal N S 𝒪 θ) := by haveI := trio_isNoetherianRing_base N S 𝒪 exact IsLocalization.isNoetherianRing (heckeLocalSubmonoid N S 𝒪 θ) (heckeLocal N S 𝒪 θ) inferInstance instance heckeLocal.instModuleFinite : Module.Finite 𝒪 (heckeLocal N S 𝒪 θ) := by rcases trio_subsingleton_or_ker_le N S 𝒪 θ with hsub | hker · exact Module.Finite.of_surjective (0 : 𝒪 →ₗ[𝒪] heckeLocal N S 𝒪 θ) fun y => ⟨0, Subsingleton.elim _ _⟩ · haveI := trio_moduleFinite_base N S 𝒪 haveI hPmax : (heckeLocalIdeal N S 𝒪 θ).IsMaximal := heckeLocalIdeal_isMaximal N S 𝒪 θ hker haveI hloc := trio_isLocalization_atPrime N S 𝒪 θ hker obtain ⟨-, -, hfin, -⟩ := Algebra.finite_maximalSpectrum_and_bijective_localization_of_module_finite (𝒪 := 𝒪) (heckeBaseAlgebra N S 𝒪) haveI := hfin ⟨heckeLocalIdeal N S 𝒪 θ, hPmax⟩ have e := IsLocalization.algEquiv (heckeLocalIdeal N S 𝒪 θ).primeCompl (Localization.AtPrime (heckeLocalIdeal N S 𝒪 θ)) (heckeLocal N S 𝒪 θ) exact Module.Finite.equiv (e.toLinearEquiv.restrictScalars 𝒪) instance heckeLocal.instModuleFree : Module.Free 𝒪 (heckeLocal N S 𝒪 θ) := by rcases trio_subsingleton_or_ker_le N S 𝒪 θ with hsub | hker · haveI := hsub exact Module.Free.of_subsingleton 𝒪 (heckeLocal N S 𝒪 θ) · haveI := trio_moduleFinite_base N S 𝒪 haveI := trio_moduleFree_base N S 𝒪 haveI hPmax : (heckeLocalIdeal N S 𝒪 θ).IsMaximal := heckeLocalIdeal_isMaximal N S 𝒪 θ hker haveI hloc := trio_isLocalization_atPrime N S 𝒪 θ hker haveI := trio_free_atPrime (R := 𝒪) (heckeBaseAlgebra N S 𝒪) ⟨heckeLocalIdeal N S 𝒪 θ, hPmax⟩ have e := IsLocalization.algEquiv (heckeLocalIdeal N S 𝒪 θ).primeCompl (Localization.AtPrime (heckeLocalIdeal N S 𝒪 θ)) (heckeLocal N S 𝒪 θ) exact Module.Free.of_equiv (e.toLinearEquiv.restrictScalars 𝒪) instance heckeLocal.instIsLocalRing [Fact (HasIntegralStructure N 2)] : IsLocalRing (heckeLocal N S 𝒪 θ) := heckeLocal.isLocalRing N S 𝒪 θ instance heckeLocal.instIsAdicComplete [Fact (HasIntegralStructure N 2)] : IsAdicComplete (IsLocalRing.maximalIdeal (heckeLocal N S 𝒪 θ)) (heckeLocal N S 𝒪 θ) := by haveI := heckeLocal.isLocalHom_algebraMap N S 𝒪 θ exact IsLocalRing.isAdicComplete_of_module_finite (𝒪 := 𝒪) instance heckeLocal.instIsLocalHom [Fact (HasIntegralStructure N 2)] : IsLocalHom (algebraMap 𝒪 (heckeLocal N S 𝒪 θ)) := heckeLocal.isLocalHom_algebraMap N S 𝒪 θ end CuspForm end
Statements phrased using this module (165)
- Local Hecke algebra generated over 𝒪 by Hecke operators
CuspForm.heckeLocal.adjoin_range_pi3 below · depth 8 - Cotangent-length inequality at the localised Hecke algebra, p=3
CuspForm.heckeLocal.exists_algHom_length_cotangent_le_of_isResiduallyModular_of_level_of_inertia_moves_torsion_of_eq_three_of_not_cube_dvd_of_level_not_cube_dvd22,983 below · depth 8 - Cotangent–congruence length inequality at cube-free levels
CuspForm.heckeLocal.exists_algHom_length_cotangent_le_of_isResiduallyModular_of_level_of_not_sq_dvd_of_not_cube_dvd_of_level_not_cube_dvd22,659 below · depth 8 - Lifts of residual eigensystems give points of T_θ
CuspForm.heckeLocal.exists_point0 below · depth 8 - Residue of the local Hecke algebra structure map equals θ
CuspForm.heckeLocal.residue_pi0 below · depth 8 - Residue field of the local Hecke algebra comes from 𝒪
CuspForm.heckeLocal.residue_surjective0 below · depth 8 - Reducedness of the localised weight-2 Hecke algebra
CuspForm.isReduced_heckeLocal_of_primeFactors_subset8 below · depth 8 - Taylor–Wiles patching data at p=3, cube-free level
CuspForm.heckeLocal.exists_patchingDatum_of_isResiduallyModular_of_level_of_inertia_moves_torsion_of_eq_three_of_not_cube_dvd_of_level_not_cube_dvd22,980 below · depth 9 - Patching data over the localised Hecke algebra, cube-free levels
CuspForm.heckeLocal.exists_patchingDatum_of_isResiduallyModular_of_level_of_not_sq_dvd_of_not_cube_dvd_of_level_not_cube_dvd22,656 below · depth 9 - R=T and complete intersection at cube-free ordinary level
CuspForm.heckeLocal.bijective_and_exists_presentation_of_ordinaryCondition_of_finiteAt_of_not_cube_dvd12,167 below · depth 10 - Points of the local Hecke algebra from congruent eigensystems
CuspForm.heckeLocal.exists_factor_algHom0 below · depth 10 - Integral point on the localised Hecke algebra after enlarging 𝒪
CuspForm.heckeLocal.exists_finite_extension_nonempty_algHom3 below · depth 10 - Hecke–Galois datum over the localised Hecke algebra, with local conditions
CuspForm.heckeLocal.exists_heckeGaloisRepDatum_localConditions5,184 below · depth 10 - Hecke modules on a cube-free level ladder with Taylor–Wiles levels
CuspForm.heckeLocal.exists_heckeModules_levelRaising_and_taylorWiles_of_index_two_irreducible_strictOrdinary_of_not_cube_dvd9,979 below · depth 10 - Surjection of localised Hecke algebras for N ∣ N'
CuspForm.heckeLocal.exists_surjective_algHom_of_dvd7 below · depth 10 - Relaxation map kills the inertia character at q
GaloisRep.DeformationRingData.algHom_inertiaCharacter_eq_one_of_forall_isUnramifiedAt2 below · depth 10 - Kernel of R_Q→ R_{min} generated by diamonds minus one (flat case)
GaloisRep.DeformationRingData.ker_algHom_eq_span_of_relaxed_flat9 below · depth 10 - Flat cotangent bound for level raising at an auxiliary prime
GaloisRep.DeformationRingData.length_cotangent_le_add_of_flatCondition_insert_isUnipotentOnInertiaAt13 below · depth 10 - Cotangent growth on relaxing unipotent inertia at q, flat case
GaloisRep.DeformationRingData.length_cotangent_le_add_of_flatCondition_isUnipotentOnInertiaAt_erase16 below · depth 10 - Surjectivity of a comparison map between universal deformation rings
GaloisRep.DeformationRingData.surjective_of_isEquiv_baseChangeAlong_of_isOfType_quotient10 below · depth 10 - Unipotence on inertia at q is invariant under equivalence
GaloisRepAdic.IsEquiv.isUnipotentOnInertiaAt1 below · depth 10 - Equivalence invariance of the ordinary condition
GaloisRepAdic.IsEquiv.ordinaryCondition1 below · depth 10 - Free corner datum on H¹(Γ₀(N)∩Γ₁(r),𝒪) with Σ-pin
CuspForm.heckeLocal.exists_h1CornerData_fullCorner_sigmaPin_pairing_eq_bfam_and_free8,310 below · depth 11 - Level-raising rung at p with η-factor α²-1
CuspForm.heckeLocal.exists_heckeModule_rung_at_residueChar_unitRoot_of_cornerData_of_fullCorner_of_not_cube_dvd8,352 below · depth 11 - Hecke modules on a cube-free ladder and at Taylor–Wiles levels
CuspForm.heckeLocal.exists_heckeModules_levelRaising_and_taylorWiles_auxLevel_of_isEis_kernel_pair_strictOrdinary_of_not_cube_dvd9,972 below · depth 11 - Finiteness of the residue field of the local Hecke algebra
CuspForm.heckeLocal.finite_residueField0 below · depth 11 - Ordinary unit root at p satisfies α² ≠ 1
CuspForm.heckeLocal.unitRoot_sq_ne_one_of_point2,738 below · depth 11 - Full Σ-corner at level Nr with B-family pairing
CuspForm.heckeLocal.exists_h1CornerData_fullCorner_pairing_eq_bfam_sigmaResidue_guarded5,582 below · depth 12 - Unit-root rung at p over a level-Nr corner package
CuspForm.heckeLocal.exists_h1CornerData_refinement_degeneracy_level_mul_of_cornerData_of_fullCorner_of_trace_sq_ne_of_not_cube_dvd8,319 below · depth 12 - Hecke-module ladder, cube-free levels, auxiliary level r
CuspForm.heckeLocal.exists_heckeModules_levelRaising_auxLevel_and_linearEquiv_ML_of_isEis_kernel_pair_of_not_cube_dvd6,105 below · depth 12 - Newform behind an 𝒪-point, with Tₚ adjoined
CuspForm.heckeLocal.exists_isNewform_chig_iota_of_point_of_not_dvd703 below · depth 12 - Taylor–Wiles modules over 𝒪[Δ_Q] in the flat minimal case
CuspForm.heckeLocal.exists_taylorWilesModule_of_linearEquiv_ML_flat9,719 below · depth 12 - Taylor–Wiles modules, strict ordinary non-flat case
CuspForm.heckeLocal.exists_taylorWilesModule_of_linearEquiv_ML_of_not_isFlatAt_strictOrdinary9,809 below · depth 12 - Freeness of the guarded Σ-corner over its corner ring
CuspForm.heckeLocal.free_cornerModule_of_guardedSigmaCorner_of_absolutelyIrreducible7,462 below · depth 12 - Ordinary Frobenius scalar is a unit root of X²-Tₚ X+p
CuspForm.heckeLocal.sq_sub_apply_corner_mul_add_eq_zero_of_isOrdinaryAt_point_of_isUnit_of_corner_le_parabolic2,465 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 - Upper transfer bound for I^m-torsion of J₀(N)
ModularCurve.exists_natCard_torsionBySet_jZero_le_sq_natCard_torsionBySet_heckeLatticeAlgebra_quotient_mul_pow776 below · depth 12 - Equal kernels: Hecke algebras on S₂(Γ₀(p)) and on J₀(p)
ModularCurve.ker_heckeEvalForms_latticeRestrict_eq_ker_heckeEvalBar845 below · depth 12 - T/I ≅ ℤ/n at prime level (Mazur II.9.7)
ModularCurve.natCard_heckeLatticeAlgebra_quotient_eisensteinIdeal_eq_eisensteinNumerator1,158 below · depth 12 - Freeness of the ordinary Σ-corner at level Mr
CohCarrier.free_ordinary_sigmaCorner_level_mul7,461 below · depth 13 - Occupancy and rank factorisation of the Σ-corner at level Mr
CohCarrier.torsionBySet_ne_bot_and_finrank_sigmaCornerSubmodule_auxLevel_eq_mul3,963 below · depth 13 - Normalising a Hecke–Galois datum by a twist τ of T
CuspForm.HeckeGaloisRepDatum.exists_algHom_comp_eq_and_linearEquiv_semilinear_auxLevel_ML8,300 below · depth 13 - Taylor–Wiles construction: R_Q acting on the localised cohomology module
CuspForm.TWLevel.exists_algHom_deformationRing_moduleEnd_ML_flat6,535 below · depth 13 - R_Q acting on the Taylor–Wiles module, très ramifié case
CuspForm.TWLevel.exists_algHom_deformationRing_moduleEnd_ML_of_not_isFlatAt_strictOrdinary6,931 below · depth 13 - Corner Tₚ at an 𝒪-point equals ι(aₚ(g))
CuspForm.heckeLocal.apply_corner_eq_iota_T_of_point_of_corner_le_parabolic704 below · depth 13 - Corner ring ≅ local Hecke algebra at auxiliary level Mr
CuspForm.heckeLocal.exists_algEquiv_sigmaCornerRing_auxLevel5,494 below · depth 13 - Level lowering to the unit-root corner ring across Nr ∣ Nrp
CuspForm.heckeLocal.exists_algHom_cornerRing_levelLowering_unitRoot_of_degeneracy_level_mul1,564 below · depth 13 - Level Nrp unit-root refinement package at p
CuspForm.heckeLocal.exists_cornerData_unitRoot_refinement_package_level_mul_of_not_cube_dvd8,292 below · depth 13 - Hecke modules along a cube-free level-raising ladder
CuspForm.heckeLocal.exists_heckeModules_levelRaising_and_linearEquiv_baseML_of_isEis_kernel_pair_of_not_cube_dvd5,641 below · depth 13 - Tₚ is a unit in the corner ring at auxiliary level Nr
CuspForm.heckeLocal.exists_isUnit_corner_heckeT_residueChar_of_isOrdinaryAt_of_subfamily_point_of_maximalIdeal5,408 below · depth 13 - Occurrence of the residual eigensystem in a corner at level Nr
CuspForm.heckeLocal.exists_subfamily_idempotentSplitting_point_level_mul_auxPrime3,918 below · depth 13 - The prime-level weight-two lattice Hecke algebra is reduced
CuspForm.isReduced_heckeLatticeAlgebra611 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 - Rank-two bound: Hecke quotients against I^m-torsion of J₀(N)
ModularCurve.exists_sq_natCard_heckeLatticeAlgebra_quotient_le_natCard_torsionBySet_mul_pow779 below · depth 13 - Multiplicative-type submodule and pairing of Eisenstein torsion (q ≠ 2)
ModularCurve.exists_submodule_multiplicativeTypeNat_heckeTorsion_span_sup_pairing_heckeLatticeAlgebra_quotient_of_ne_two2,326 below · depth 13 - Corner modules at Γ_H(Mr) and Γ₀(Mr) coincide
CohCarrier.cornerSubmodule_sigmaCorner_gammaH_eq_map_iDegL_one_of_isUnit_index8 below · depth 14 - r-oldness of the Σ-corner at level Mr
CohCarrier.cornerSubmodule_sigmaCorner_gammaZero_auxLevel_eq_iDegL_sup_iDegL69 below · depth 14 - Change of presentation for corners of the Hecke algebra
CohCarrier.exists_hdata_corner_of_subfamily_corner_top3 below · depth 14 - Occupancy at Γ₀(Mr) from Γ_H(Mr)
CohCarrier.exists_sigmaCorner_gammaZero_of_sigmaCorner_gammaH24 below · depth 14 - Lowering an occupied Hecke corner from level Mr to level M
CohCarrier.exists_sigmaCorner_gammaZero_of_sigmaCorner_gammaZero_auxLevel3,897 below · depth 14 - Ordinary unit-root refinement at level Nrp: witness existence
CohCarrier.exists_subfamily_corner_refinement_level_mul_of_corner_cofull91 below · depth 14 - Multiplicity-two rank bound at the auxiliary prime r
CohCarrier.finrank_cornerSubmodule_sigmaCorner_gammaZero_auxLevel_le_two_mul3,889 below · depth 14 - Freeness of the Σ-corner of H¹(Γ₀(M),𝒪)
CohCarrier.free_sigmaCorner_gammaZero6,150 below · depth 14 - Residue of U_q as Frobenius trace on inertia coinvariants
CohCarrier.hdata_residue_U_eq_trace_frobenius_inertiaCoinvariants_of_not_sq_dvd5,017 below · depth 14 - Saturation of the eigen-ideal submodule in the ordinary corner
CohCarrier.saturated_torsionBySet_ordinary_sigmaCorner_level_mul7,463 below · depth 14 - Galois representation over the Taylor–Wiles Hecke ring acting on M_Q
CuspForm.TWLevel.exists_galoisRepAdic_moduleEnd_ML_flat6,527 below · depth 14 - Galois representation on the Taylor–Wiles Hecke module, strict ordinary case
CuspForm.TWLevel.exists_galoisRepAdic_moduleEnd_ML_of_not_isFlatAt_strictOrdinary6,925 below · depth 14 - Residual Hecke eigensystem on the full Hecke algebra at level N
CuspForm.heckeAlgebra.exists_ringHom_of_subset_of_charpoly_frobenius_eq5,149 below · depth 14 - Anemic and full local Hecke algebras agree at ρ̄
CuspForm.heckeLocal.bijective_of_subset_of_charpoly_frobenius_eq5,379 below · depth 14 - Independence of the local Hecke algebra of the avoided primes
CuspForm.heckeLocal.bijective_of_subset_of_forall_prime_mem_of_charpoly_frobenius_eq1,452 below · depth 14 - Localised Hecke algebra as a cohomological corner ring
CuspForm.heckeLocal.exists_algEquiv_cornerRing_H1_of_not_isEisenstein597 below · depth 14 - Change of avoided set for localised Hecke algebras
CuspForm.heckeLocal.exists_algHom_of_subset2 below · depth 14 - Realisation of Tₚ in the sub-family corner ring
CuspForm.heckeLocal.exists_corner_smul_eq_heckeT_and_apply_eq_trace_of_subfamily_point5,404 below · depth 14 - An element of mathbb T_θ interpolating the U_q-eigenvalues ± 1
CuspForm.heckeLocal.exists_forall_point_apply_eq_qCoeff_of_not_isUnramifiedAt_of_ne_two3,847 below · depth 14 - Surjection of localised Hecke algebras for M ∣ M'
CuspForm.heckeLocal.exists_surjective_algHom_apply_pi_T_eq_of_dvd5 below · depth 14 - Eigen-rank bound across the degeneracy rung at p
CuspForm.heckeLocal.finrank_eigen_unitRoot_corner_le_of_degeneracy_level_mul1,516 below · depth 14 - Freeness over the minimal-level local Hecke algebra at auxiliary level
CuspForm.heckeLocal.free_of_linearEquiv_auxLevel_ML8,299 below · depth 14 - Hecke-equivariant bounded-kernel map on Eisenstein torsion killed by reduction
ModularCurve.exists_addMonoidHom_inf_ker_reductionModL_eisensteinTorsionBar_heckeLatticeAlgebra_quotient_two_pow_natCard_ker_le2,547 below · depth 14 - Hecke-balanced pairing with multiplicative-type left kernel (q odd)
ModularCurve.exists_pairing_heckeTorsion_span_sup_heckeLatticeAlgebra_quotient_of_multiplicativeTypeNat_maximal_of_ne_two2,321 below · depth 14 - Σ-corner at level Mr meets ker j₁∩ker jᵣ trivially
CohCarrier.eq_zero_of_mem_sigmaCorner_gammaZero_auxLevel_of_jDegL_eq_zero3,886 below · depth 15 - Residual Hecke eigensystem realised on a corner of H¹
CohCarrier.exists_algHom_cornerRing_of_ringHom_heckeAlgebra594 below · depth 15 - Ramification away from p forces q to divide the newform level
CuspForm.IsNewform.dvd_level_of_point_of_not_isUnramifiedAt1,329 below · depth 15 - χ(U_q)=± 1 at a prime q ∥ N with ρ̄ ramified
CuspForm.apply_U_eq_intCast_of_point_of_not_isUnramifiedAt1,425 below · depth 15 - T_ℓ at an avoided prime lies in the image of Ψ
CuspForm.heckeLocal.exists_apply_eq_pi_T_of_mem_of_charpoly_frobenius_eq1,360 below · depth 15 - Surjectivity of Ψ onto Tₚ at the residue characteristic
CuspForm.heckeLocal.exists_apply_eq_pi_T_of_not_dvd_of_charpoly_frobenius_eq3,988 below · depth 15 - Uₚ lies in the image of Ψ for p ∥ N
CuspForm.heckeLocal.exists_apply_eq_pi_U_of_dvd_of_isOrdinaryAt_of_charpoly_frobenius_eq5,294 below · depth 15 - Steinberg U_q lies in the image of Ψ
CuspForm.heckeLocal.exists_apply_eq_pi_U_of_not_sq_dvd_of_not_isUnramifiedAt_of_charpoly_frobenius_eq3,958 below · depth 15 - Realising Tₚ in the corner Hecke ring with residual trace
CuspForm.heckeLocal.exists_corner_smul_eq_heckeT_residueChar_gammaZero5,330 below · depth 15 - Minimal-level cohomology is free over the local Hecke algebra
CuspForm.heckeLocal.exists_moduleFree_linearEquiv_auxLevel_baseML8,189 below · depth 15 - Rank comparison of localised Hecke algebras via extension of lifts
CuspForm.heckeLocal.finrank_le_of_forall_point_exists_extension17 below · depth 15 - Rank comparison for local Hecke algebras at level S₀ ⊆ S
CuspForm.heckeLocal.finrank_le_of_subset_of_charpoly_frobenius_eq5,156 below · depth 15 - Points of T_θ are local and reduce to θ
CuspForm.heckeLocal.isLocalHom_and_residue_apply_pi1 below · depth 15 - Vanishing of U_q in the local Hecke algebra when q² ‖ N
CuspForm.heckeLocal.pi_U_eq_zero_of_sq_dvd_of_not_cube_dvd96 below · depth 15 - Surjectivity of the Hecke comparison map for S₁ ⊆ S
CuspForm.heckeLocal.surjective_of_subset_of_charpoly_frobenius_eq1,359 below · depth 15 - Hecke coordinate on multiplicative-type subgroups of J₀(p)[P^m] at 2
ModularCurve.exists_addMonoidHom_heckeLatticeAlgebra_quotient_two_pow_natCard_ker_le_of_multiplicativeTypeNat_le_eisensteinTorsionBar2,544 below · depth 15 - Character detecting inertia eigenvectors in Eisenstein torsion, q odd
ModularCurve.exists_character_generator_heckeTorsion_span_sup_inertiaSubgroupIn_of_ne_two2,072 below · depth 15 - Inertia acts by the cyclotomic character on t· v in the Eisenstein torsion tower
ModularCurve.inertia_smul_smul_eq_nsmul_of_latticeRestrict_heckeEvalForms_mem_span_sup775 below · depth 15 - Inertia eigenvectors force membership in the stable lattice ideal
ModularCurve.latticeRestrict_heckeEvalForms_mem_span_sup_of_inertia_smul_smul_eq_nsmul_of_ne_two2,320 below · depth 15 - No r-new parabolic eigenclass at level Mr
CohCarrier.eq_zero_of_mem_parabolicHoms_gammaZero_auxLevel_of_heckeT_eq_smul_of_jDeg_eq_zero3,874 below · depth 16 - Residual Tₚ is the Frobenius trace on inertia coinvariants
CohCarrier.heckeT_sub_algebraMap_mem_of_isMaximal_of_not_dvd2,654 below · depth 16 - Pointwise recognition of π(U_q) in the localised Hecke algebra
CuspForm.heckeLocal.apply_eq_pi_U_of_forall_point_apply_eq_qCoeff_of_isAbsolutelyIrreducible1,544 below · depth 16 - Uₚ as the unit root in the localised Hecke algebra
CuspForm.heckeLocal.apply_eq_pi_U_of_forall_point_apply_eq_unitRoot_of_isAbsolutelyIrreducible1,542 below · depth 16 - Faithful local Hecke action on the cohomology module
CuspForm.heckeLocal.exists_algHom_moduleEnd_baseML_injective1,479 below · depth 16 - Unit Uₚ-eigenvalue interpolated in the localised anemic Hecke algebra
CuspForm.heckeLocal.exists_forall_point_apply_eq_unitRoot_of_isOrdinaryAt5,201 below · depth 16 - U_q²=1 in the localised Hecke algebra at a Steinberg prime
CuspForm.heckeLocal.pi_U_sq_eq_one_of_not_sq_dvd_of_not_isUnramifiedAt1,512 below · depth 16 - Hecke coordinate on inertia displacements in J₀(p)[P^m]
ModularCurve.exists_addSubgroup_le_eisensteinTorsionBar_inertia_smul_sub_mem_addMonoidHom_heckeLatticeAlgebra_quotient_natCard_ker_le2,543 below · depth 16 - A character on the stable Eisenstein torsion of J₀(p)
ModularCurve.exists_character_free_heckeTorsion_span_sup_inertiaSubgroupIn_of_ne_two2,319 below · depth 16 - A generator for Eisenstein torsion inertia-eigenvectors at odd q
ModularCurve.exists_nsmul_generator_heckeTorsion_span_sup_of_inertia_smul_eisensteinMaximalIdeal_smul_eq_nsmul_of_ne_two2,070 below · depth 16 - Annihilating U_q²-1 near θ' at a ramified prime
CuspForm.heckeAlgebra.exists_apply_ne_zero_and_mul_U_sq_sub_one_eq_zero_of_not_isUnramifiedAt1,511 below · depth 17 - Cube-free saturation forces equal levels and identical Hecke localisations
CuspForm.heckeLocal.exists_algEquiv_apply_pi_T_eq_of_dvd_of_sq_dvd_of_not_cube_dvd0 below · depth 17 - Eichler–Shimura: local anemic Hecke algebra as a corner ring
CuspForm.heckeLocal.exists_algEquiv_cornerRing_baseHeckeData_of_not_isEisenstein597 below · depth 17 - Joint injectivity of points of the localised Hecke algebra T_{θ'}
CuspForm.heckeLocal.exists_points_jointly_injective_of_charpoly_frobenius_eq_of_isAbsolutelyIrreducible1,536 below · depth 17 - A uniform sign for U_q at minimal squarefree level
CuspForm.heckeLocal.exists_sign_forall_point_heckeULin_mul_eq_smul_of_squarefree5,265 below · depth 17 - A Hecke coordinate on inertia-displaced Eisenstein 2-torsion
ModularCurve.exists_addMonoidHom_eisensteinTorsionBar_inf_closure_inertia_smul_sub_heckeLatticeAlgebra_quotient_natCard_ker_le2,542 below · depth 17 - Counting q^k-torsion: #V_M=#R_M·#V_M⁰ for odd q≠ p
ModularCurve.natCard_heckeTorsion_span_sup_eq_natCard_heckeLatticeAlgebra_quotient_mul_natCard_inertia_smul_eq_nsmul_of_ne_two2,314 below · depth 17 - Sign interpolating U_q-eigenvalues in the local Hecke algebra
CuspForm.heckeLocal.exists_forall_point_apply_eq_qCoeff_of_not_isUnramifiedAt3,887 below · depth 18 - Newform behind a geometric point of the local Hecke algebra
CuspForm.heckeLocal.exists_isNewform_chig_full_iota_of_algHom_algebraicClosure640 below · depth 18 - Ordinary local root count one at p ‖ N
CuspForm.heckeLocal.exists_isNewform_sum_rootMultiplicity_residual_eq_one_of_isOrdinaryAt5,285 below · depth 18 - Ordinary unit root at p ‖ N for every geometric point
CuspForm.heckeLocal.exists_ne_zero_forall_algHom_algebraicClosure_isNewform_residual_unitRoot_of_isOrdinaryAt5,283 below · depth 18 - Reducedness of the localised weight-two Hecke algebra at θ'
CuspForm.heckeLocal.isReduced_of_charpoly_frobenius_eq_of_isAbsolutelyIrreducible1,535 below · depth 18 - Local root count one at q ∥ N, q ≠ p
CuspForm.heckeLocal.sum_rootMultiplicity_residual_eq_one_of_dvd_of_not_sq_dvd_of_ne3,931 below · depth 18 - Residual root count two at p when ρ̄ is not ordinary
CuspForm.heckeLocal.sum_rootMultiplicity_residual_eq_two_of_not_isOrdinaryAt5,051 below · depth 18 - Hecke coordinate with bounded kernel on 2^m-torsion of multiplicative type
ModularCurve.exists_addMonoidHom_torsionBy_two_pow_inf_closure_inertia_smul_sub_heckeLatticeAlgebra_quotient_natCard_ker_le_of_multiplicativeTypeNat2,505 below · depth 18 - Reduced Eisenstein torsion dominates the lattice Hecke quotient
ModularCurve.natCard_heckeLatticeAlgebra_quotient_le_natCard_image_reductionModL_heckeTorsion_span_sup2,221 below · depth 18 - Reduced Eisenstein torsion bounded by lattice Hecke quotient
ModularCurve.natCard_image_reductionModL_heckeTorsion_span_sup_le_natCard_heckeLatticeAlgebra_quotient2,102 below · depth 18 - Newform behind a point of the ordinary local Hecke algebra
CuspForm.heckeLocal.exists_moduleFinite_dvr_isNewform_chig_iota_isUnit_of_isOrdinaryAt_of_algHom2,659 below · depth 19 - Non-ordinary residual points: p∤ M and aₚ a non-unit
CuspForm.heckeLocal.not_dvd_level_and_not_isUnit_qCoeff_of_point_of_not_isOrdinaryAt4,966 below · depth 19 - Hecke coordinates mod 2^m on the inertia part of T₂J₀(p)
ModularCurve.exists_addMonoidHom_family_tateModule_inf_pi_closure_inertia_smul_sub_heckeLatticeAlgebra_quotient_natCard_ker_quotient_le2,503 below · depth 19 - Eisenstein torsion of J₀(p) counted as a square
ModularCurve.natCard_heckeTorsion_span_sup_eq_sq_natCard_heckeLatticeAlgebra_quotient1,033 below · depth 19 - Generator and idempotent tower on the Eisenstein inertia Tate module
ModularCurve.exists_nsmul_generator_idempotent_tower_heckeAlg_tateModule_inf_pi_closure_inertia_smul_sub2,502 below · depth 20 - A 2-adic Eisenstein idempotent tower acting on J₀(p)
ModularCurve.exists_heckeAlg_idempotent_tower_smul_eq_self_of_mem_eisensteinTorsionBar871 below · depth 21 - A uniform 2-adic exponent for torsion annihilators on J₀(p)
ModularCurve.exists_latticeRestrict_heckeEvalForms_mem_span_two_pow_of_forall_smul_eq_zero1,263 below · depth 21 - Inertia-fixed Tate vector with independent Hecke orbit
ModularCurve.exists_tateModule_inertia_fixed_linearIndependent_heckeLatticeAlgebra_orbit816 below · depth 22 - Tangent space of the relative Jacobian of X₀(N) at p
ModularCurve.exists_pts_relJacobian_jZero_level_dualNumber_kernel_equiv_addMonoidHom_intLattice_latticeHeckeFamily_integral_of_representsRelSubPic_of_ratCurveModel_of_not_dvd1,563 below · depth 23 - Global 1-forms of the ℤ₍ₚ₎-model versus p-integral cusp forms
ModularCurve.exists_linearEquiv_kaehlerH0_baseChange_intLattice_of_ratCurveModel_of_cuspSection_compat_of_neZero872 below · depth 24 - Hecke adjunction for the integral Serre pairing, sectional charts
ModularCurve.serrePairingInt_deformationClass_heckeGen_eq_of_isCompletionAlong_of_res_eq_heckeDiffBar365 below · depth 24 - Norm–pull-back endomorphism acts by trace on Čech H¹
AlgebraicGeometry.RelPicard.IsDeformationClassMap.exists_cechH1ToH1_germ_eq_traceAlong_of_classifies_normModule_pullback_of_mono129 below · depth 25 - Hecke correspondence on differentials matches the Hecke operator on q-expansions
ModularCurve.coeffMap_diffQExpBar_heckeDiffBar_eq_qExpansion_latticeRestrictHom_heckeProj_heckeGen162 below · depth 25 - Degeneracy roof at the generic fibre: function-field Hecke correspondence
ModularCurve.exists_functionField_degeneracyRoof_kaehlerToFunctionField_eq_correspondence_of_res_eq_heckeDiffBar208 below · depth 25 - Integral weight-two cusp forms as relative differentials on the model
ModularCurve.exists_kaehlerH0_coeffMap_diffQExpBar_eq_qExpansion_of_mem_intLattice_of_ratCurveModel_of_cuspSection_compat_of_neZero456 below · depth 25 - Integrality of q-expansions of global 1-forms on a ℤ₍ₚ₎-model
ModularCurve.exists_powerSeries_diffQExpBar_eq_ofPowerSeries_map_of_kaehlerH0_of_ratCurveModel_of_cuspSection_compat_of_neZero349 below · depth 25 - Tangent action of a norm-pull-back endomorphism over a field
AlgebraicGeometry.RelPicard.IsDeformationClassMap.exists_cechH1ToH1_germ_eq_traceAlong_of_classifies_normModule_pullback_of_field74 below · depth 26 - Moduli description of an endomorphism transported to the base change
AlgebraicGeometry.RelPicard.RepresentsRelSubPic.nonempty_poincare_pullbackAlong_iso_rigidify_normModule_baseChange58 below · depth 26 - p-saturation of global differentials via q-expansions
ModularCurve.exists_eq_smul_of_diffQExpBar_eq_ofPowerSeries_smul_of_kaehlerH0_of_ratCurveModel_of_cuspSection_compat_of_neZero366 below · depth 26 - Degeneracy roof at q over the generic fibre
ModularCurve.exists_functionField_degeneracyRoof_lift_of_ratCurveModel4 below · depth 26 - Generic restriction of a global 1-form factors through the cusp stalk
ModularCurve.exists_kaehlerDifferential_stalk_and_ringHom_res_eq_mapOfRingHom_cuspSection_of_ratCurveModel_compat_of_neZero2 below · depth 26 - p-power multiple of an integral weight-2 cusp form as a differential
ModularCurve.exists_pow_smul_kaehlerH0_coeffMap_diffQExpBar_eq_qExpansion_of_mem_intLattice_of_ratCurveModel_of_cuspSection_compat_of_neZero322 below · depth 26 - Integral q-expansions of germs at the cusp of a ℤ₍ₚ₎-model
ModularCurve.exists_powerSeries_map_eq_ffEquiv_symm_stalkMap_stalkSpecializes_cuspSection_of_ratCurveModel_compat_of_neZero346 below · depth 26 - Residue package for the two legs of the T_q degeneracy roof
ModularCurve.functionField_residuePackage_degeneracyRoof_of_finiteAlong85 below · depth 26 - Generic-fibre degeneracy roof for Hecke action on differentials
ModularCurve.kaehlerToFunctionField_eq_correspondence_degeneracyRoof_of_res_eq_heckeDiffBar161 below · depth 26
… and 15 more statements (search for the module name to find them).