Definitions/Def_CohCarrier_HeckeData.lean
Abstract commuting Hecke operators and localisation at an eigensystem
Fix a commutative ring \mathcal{O}, an \mathcal{O}-module V and a field k that is an \mathcal{O}-algebra. A term of CohCarrier.HeckeData consists of four data: a type Gen of generator indices; a family op : Gen β Module.End πͺ V of \mathcal{O}-linear endomorphisms of V; a proof field comm asserting that any two of these endomorphisms commute; and a function ΞΈbar : Gen β k, to be thought of as the system of residual eigenvalues attached to the generators. Nothing else is assumed: no relations among the generators and no compatibility between op and ΞΈbar.
From such data the module builds the following. FreeAlg is the polynomial algebra \mathcal{O}[X_g : g \in \mathrm{Gen}] in one variable per generator; thetaTilde is the \mathcal{O}-algebra map \mathcal{O}[X_g] \to k evaluating X_g at ΞΈbar g, and mTheta is its kernel, an ideal of FreeAlg registered as prime. opSubalgebra is the \mathcal{O}-subalgebra of \mathrm{End}_{\mathcal{O}}(V) generated by the range of op; since the generators commute pairwise (op_comm_of_mem), this subalgebra is commutative, and opAlgHom : FreeAlg ββ[πͺ] Module.End πͺ V is the evaluation map factoring through it, characterised by X_g \mapsto op g (opAlgHom_X). Restriction of scalars along opAlgHom gives moduleFreeAlg, a FreeAlg-module structure on V, used as a file-local instance; algebraMap_freeAlg_smul records that the action of \mathcal{O} obtained through FreeAlg is the original one, whence the scalar tower instance V_isScalarTower for \mathcal{O} \to FreeAlg \to V. Finally ML is the localisation of V at the multiplicative complement of mTheta, a module over the localisation of FreeAlg at that prime as well as over FreeAlg and over \mathcal{O}; toML is the canonical FreeAlg-linear map V \to ML, and toMLβ its restriction of scalars to \mathcal{O}.
Relation to Mathlib
Mathlib has no notion of abstract Hecke data; this structure and the constructions around it are the project's own packaging, built on Mathlib's MvPolynomial, Algebra.adjoin, Module.compHom and LocalizedModule.
Where it is used
This is the shape in which Hecke modules are presented for localisation at a residual eigensystem: a commuting family of operators, a prime of the free polynomial algebra cut out by the residual eigenvalues, and the localised module with its canonical map from V. It is instantiated on the cohomological carriers occurring in the modularity-lifting argument, where the localised modules are the ones fed into the patching construction.
References
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1β154, Β§3
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 93 lines
- 21 declarations
- used in the statements of 9 theorems and imported by 14 proofs
- imports 0 definition modules
Source file: Definitions/Def_CohCarrier_HeckeData.lean
Imports
- only Mathlib
Imported by
Declarations
- structure
CohCarrier.HeckeData - field
CohCarrier.HeckeData.k - field
CohCarrier.HeckeData.Gen - field
CohCarrier.HeckeData.op - field
CohCarrier.HeckeData.comm - abbrev
CohCarrier.HeckeData.FreeAlg - def
CohCarrier.HeckeData.thetaTilde - def
CohCarrier.HeckeData.mTheta - instance
CohCarrier.HeckeData.mTheta_isPrime - def
CohCarrier.HeckeData.opSubalgebra - theorem
CohCarrier.HeckeData.op_comm_of_mem - instance
CohCarrier.HeckeData.opSubalgebra_isMulCommutative - def
CohCarrier.HeckeData.opAlgHom - theorem
CohCarrier.HeckeData.opAlgHom_X - def
CohCarrier.HeckeData.moduleFreeAlg - abbrev
CohCarrier.HeckeData.ML - def
CohCarrier.HeckeData.toML - theorem
CohCarrier.HeckeData.algebraMap_freeAlg_smul - instance
CohCarrier.HeckeData.V_isScalarTower - def
CohCarrier.HeckeData.toMLβ - theorem
CohCarrier.HeckeData.toMLβ_apply
Source
import Mathlib.Algebra.Module.LocalizedModule.Basic β import Mathlib.Algebra.MvPolynomial.CommRing β import Mathlib.RingTheory.Ideal.Maps β import Mathlib.Algebra.Algebra.Subalgebra.Lattice β set_option autoImplicit false noncomputable section namespace CohCarrier universe u v w structure HeckeData (πͺ : Type u) [CommRing πͺ] (V : Type v) [AddCommGroup V] [Module πͺ V] (k : Type w) [Field k] [Algebra πͺ k] where Gen : Type op : Gen β Module.End πͺ V comm : β g h : Gen, op g * op h = op h * op g ΞΈbar : Gen β k namespace HeckeData variable {πͺ : Type u} [CommRing πͺ] {V : Type v} [AddCommGroup V] [Module πͺ V] {k : Type w} [Field k] [Algebra πͺ k] (D : HeckeData πͺ V k) abbrev FreeAlg : Type u := MvPolynomial D.Gen πͺ noncomputable def thetaTilde : D.FreeAlg ββ[πͺ] k := MvPolynomial.aeval D.ΞΈbar def mTheta : Ideal D.FreeAlg := RingHom.ker D.thetaTilde.toRingHom instance mTheta_isPrime : D.mTheta.IsPrime := RingHom.ker_isPrime _ noncomputable def opSubalgebra : Subalgebra πͺ (Module.End πͺ V) := Algebra.adjoin πͺ (Set.range D.op) theorem op_comm_of_mem : β a β Set.range D.op, β b β Set.range D.op, a * b = b * a := by rintro _ β¨g, rflβ© _ β¨h, rflβ© exact D.comm g h instance opSubalgebra_isMulCommutative : IsMulCommutative β₯D.opSubalgebra := Algebra.isMulCommutative_adjoin πͺ D.op_comm_of_mem open scoped IsMulCommutative noncomputable def opAlgHom : D.FreeAlg ββ[πͺ] Module.End πͺ V := (D.opSubalgebra.val).comp (MvPolynomial.aeval fun g => (β¨D.op g, Algebra.subset_adjoin (Set.mem_range_self g)β© : β₯D.opSubalgebra)) @[simp] theorem opAlgHom_X (g : D.Gen) : D.opAlgHom (MvPolynomial.X g) = D.op g := by simp [opAlgHom] @[reducible] noncomputable def moduleFreeAlg : Module D.FreeAlg V := Module.compHom V D.opAlgHom.toRingHom attribute [local instance] moduleFreeAlg noncomputable abbrev ML : Type (max u v) := LocalizedModule D.mTheta.primeCompl V example : AddCommGroup D.ML := inferInstance example : Module (Localization D.mTheta.primeCompl) D.ML := inferInstance example : Module D.FreeAlg D.ML := inferInstance noncomputable def toML : V ββ[D.FreeAlg] D.ML := LocalizedModule.mkLinearMap D.mTheta.primeCompl V theorem algebraMap_freeAlg_smul (r : πͺ) (v : V) : (algebraMap πͺ D.FreeAlg r) β’ v = r β’ v := by show D.opAlgHom (algebraMap πͺ D.FreeAlg r) v = r β’ v rw [AlgHom.commutes] rfl instance V_isScalarTower : IsScalarTower πͺ D.FreeAlg V := β¨fun r a v => by rw [Algebra.smul_def, mul_smul, algebraMap_freeAlg_smul]β© example : Module πͺ D.ML := inferInstance example : IsScalarTower πͺ (Localization D.mTheta.primeCompl) D.ML := inferInstance example : IsScalarTower πͺ D.FreeAlg D.ML := inferInstance noncomputable def toMLβ : V ββ[πͺ] D.ML := D.toML.restrictScalars πͺ @[simp] theorem toMLβ_apply (v : V) : D.toMLβ v = D.toML v := rfl end HeckeData end CohCarrier end
Statements phrased using this module (9)
- Finiteness and freeness of the localised Hecke module
CohCarrier.HeckeData.finite_ML_and_free_ML7 below Β· depth 14 - Finiteness of the Hecke operator algebra and corner alternative
CohCarrier.HeckeData.finite_opSubalgebra_and_subsingleton_ML_or_exists_corner5 below Β· depth 14 - Idempotent splitting of the Hecke algebra of a Hecke datum
CohCarrier.HeckeData.nonempty_idempotentSplitting_opSubalgebra2 below Β· depth 15 - Enlarging a commuting family preserves a corner of V
CohCarrier.HeckeData.exists_corner_of_genMap_of_forall_isMaximal4 below Β· depth 16 - Abstract Ξ±-stabilisation from degeneracy and AtkinβLehner identities
CohCarrier.HeckeData.exists_linearEquiv_ML_of_degeneracy_atkinLehner_identities10 below Β· depth 16 - Adjoining a residually redundant Hecke operator preserves the localisation
CohCarrier.HeckeData.exists_linearEquiv_ML_of_toML_op_sub_opAlgHom_pow_mem8 below Β· depth 16 - Hensel splitting of a companion module at a simple root
CohCarrier.HeckeData.exists_linearEquiv_ML_prod_of_companion9 below Β· depth 17 - Residual nilpotence tested on simultaneous eigenvectors over K
CohCarrier.HeckeData.exists_toML_sub_opAlgHom_pow_mem_of_forall_baseChange_eigenvector0 below Β· depth 17 - Residual eigenvalues cut out the corner in F β_πͺ H
CohCarrier.HeckeData.iInf_maxGenEigenspace_baseChange_le_range_and_inf_eq_bot_and_eq_iSup_of_cornerRing_point0 below Β· depth 19