Definitions/Def_Gamma0CoeffCohomologyEigen.lean
First coefficient cohomology, Hecke eigensystems, binary-form substitution action
Fix a commutative ring K, a group G and a representation \rho of G on a K-module V. Recall the submodules of G \to V given by the inhomogeneous cocycles Z^1 = \{z : z(gh) = z(g) + \rho(g)z(h)\} and the coboundaries B^1 = \{g \mapsto \rho(g)v - v\}. Here coeffH1 ρ is the quotient of the type of cocycles by the pullback of B^1 along the inclusion Z^1 \hookrightarrow (G \to V), i.e. Z^1/B^1, carrying the induced additive group and K-module structures; coeffH1Mk ρ is the K-linear class map, which is surjective, and a cocycle class vanishes exactly when the underlying function is a coboundary. For \Gamma \le \mathrm{SL}_2(\mathbb{Z}), coeffH1parToH1 ρ is the K-linear map H^1_{\mathrm{par}} \to H^1 induced by the inclusion of parabolic cocycles into cocycles, and it is compatible with the two class maps.
For a representation \rho of \Gamma_0(N), a K-linear a : V \to V and an endomorphism T of coeffH1 ρ, the predicate IsCoeffHeckeOnH1 N ℓ ρ a T says that for every cocycle z the cochain coeffHeckeFun N ℓ ρ a z (the transfer-style sum over \Gamma_0(N)/\{\gamma : \ell \mid \gamma_{01}\}, twisted by conjugation by \mathrm{diag}(1,\ell) and by a) is again a cocycle and T[z] is its class; this is a property of a given T, not a construction of one. Then IsEigensystemH1 N ρ a S₀ lam asserts the existence of a nonzero class x such that for every prime \ell with \ell \nmid N and \ell \notin S_0 some T satisfying IsCoeffHeckeOnH1 N ℓ ρ (a ℓ) T has Tx = \mathrm{lam}(\ell)\,x.
Finally binaryFormRep K n is the monoid homomorphism from 2\times 2 integral matrices to K-linear endomorphisms of the degree-n binary forms given by the substitution X_j \mapsto \sum_i M_{ij} X_i; restricting it along \mathrm{SL}_2(\mathbb{Z}) recovers binaryFormRepSL, and evaluating at \mathrm{diag}(\ell,1) recovers binaryFormAlphaAdj.
Relation to Mathlib
Mathlib's group cohomology is developed for objects of Rep k G; the H^1 here is built by hand from a Representation K G V as a quotient of submodules of G \to V, and is not identified with the Mathlib construction. The degree-n binary forms are Mathlib's MvPolynomial.homogeneousSubmodule (Fin 2) K n; the substitution action on them is the project's own.
Where it is used
These definitions provide the group-cohomological model of modular symbols for \Gamma_0(N) with coefficients in a representation, together with the notion of a Hecke eigensystem occurring in it, used in the project's handling of Hecke eigenvalues and Eisenstein classes; the binary-form representation supplies the weight-n coefficient module together with the auxiliary map at \ell entering the Hecke operator.
References
- A. Ash and G. Stevens, Modular forms in characteristic \ell and special values of their L-functions, Duke Mathematical Journal 53 (1986), 849–868
- G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Princeton University Press, 1971, §8.1–8.3
- H. Hida, Elementary Theory of L-functions and Eisenstein Series, London Mathematical Society Student Texts 26, Cambridge University Press, 1993, §6.3
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 113 lines
- 14 declarations
- used in the statements of 44 theorems and imported by 50 proofs
- imports 2 definition modules
Source file: Definitions/Def_Gamma0CoeffCohomologyEigen.lean
Imported by
- no other definition module
Declarations
- def
HeckeEis.coeffH1 - instance
HeckeEis.instAddCommGroupCoeffH1 - instance
HeckeEis.instModuleCoeffH1 - def
HeckeEis.coeffH1Mk - theorem
HeckeEis.coeffH1Mk_surjective - theorem
HeckeEis.coeffH1Mk_eq_zero_iff - def
HeckeEis.coeffH1parToH1 - theorem
HeckeEis.coeffH1parToH1_coeffH1parMk - def
HeckeEis.IsCoeffHeckeOnH1 - def
HeckeEis.IsEigensystemH1 - def
HeckeEis.binaryFormRep - theorem
HeckeEis.binaryFormRep_apply_coe - theorem
HeckeEis.binaryFormRepSL_apply_eq_binaryFormRep - theorem
HeckeEis.binaryFormAlphaAdj_eq_binaryFormRep
Source
import Mathlib import Definitions.Def_Gamma0CoeffCohomology import Definitions.Def_HeckeEis_BinaryFormRep set_option autoImplicit false namespace HeckeEis open CongruenceSubgroup open scoped MatrixGroups section H1 variable {G : Type*} [Group G] {K : Type*} [CommRing K] {V : Type*} [AddCommGroup V] [Module K V] def coeffH1 (ρ : Representation K G V) : Type _ := ↥(coeffCocycles ρ) ⧸ (coeffCoboundaries ρ).comap (coeffCocycles ρ).subtype instance instAddCommGroupCoeffH1 (ρ : Representation K G V) : AddCommGroup (coeffH1 ρ) := inferInstanceAs (AddCommGroup (↥(coeffCocycles ρ) ⧸ (coeffCoboundaries ρ).comap (coeffCocycles ρ).subtype)) instance instModuleCoeffH1 (ρ : Representation K G V) : Module K (coeffH1 ρ) := inferInstanceAs (Module K (↥(coeffCocycles ρ) ⧸ (coeffCoboundaries ρ).comap (coeffCocycles ρ).subtype)) def coeffH1Mk (ρ : Representation K G V) : ↥(coeffCocycles ρ) →ₗ[K] coeffH1 ρ := ((coeffCoboundaries ρ).comap (coeffCocycles ρ).subtype).mkQ theorem coeffH1Mk_surjective (ρ : Representation K G V) : Function.Surjective (coeffH1Mk ρ) := Submodule.mkQ_surjective _ theorem coeffH1Mk_eq_zero_iff (ρ : Representation K G V) (z : ↥(coeffCocycles ρ)) : coeffH1Mk ρ z = 0 ↔ (z : G → V) ∈ coeffCoboundaries ρ := (Submodule.Quotient.mk_eq_zero _).trans Submodule.mem_comap end H1 section Parabolic variable {Γ : Subgroup SL(2, ℤ)} {K : Type*} [CommRing K] {V : Type*} [AddCommGroup V] [Module K V] def coeffH1parToH1 (ρ : Representation K Γ V) : coeffH1par ρ →ₗ[K] coeffH1 ρ := ((coeffCoboundaries ρ).comap (coeffParabolicCocycles ρ).subtype).mapQ ((coeffCoboundaries ρ).comap (coeffCocycles ρ).subtype) (Submodule.inclusion (coeffParabolicCocycles_le_coeffCocycles ρ)) fun _ hz => hz theorem coeffH1parToH1_coeffH1parMk (ρ : Representation K Γ V) (z : ↥(coeffParabolicCocycles ρ)) : coeffH1parToH1 ρ (coeffH1parMk ρ z) = coeffH1Mk ρ (Submodule.inclusion (coeffParabolicCocycles_le_coeffCocycles ρ) z) := rfl end Parabolic section Hecke variable (N : ℕ) (ℓ : ℕ) [NeZero ℓ] variable {K : Type*} [CommRing K] {V : Type*} [AddCommGroup V] [Module K V] def IsCoeffHeckeOnH1 (ρ : Representation K (Gamma0 N) V) (a : V →ₗ[K] V) (T : coeffH1 ρ →ₗ[K] coeffH1 ρ) : Prop := ∀ z : ↥(coeffCocycles ρ), ∃ w : ↥(coeffCocycles ρ), (w : Gamma0 N → V) = coeffHeckeFun N ℓ ρ a z ∧ T (coeffH1Mk ρ z) = coeffH1Mk ρ w end Hecke section Eigensystem variable (N : ℕ) {K : Type*} [CommRing K] {V : Type*} [AddCommGroup V] [Module K V] def IsEigensystemH1 (ρ : Representation K (Gamma0 N) V) (a : ℕ → (V →ₗ[K] V)) (S₀ : Set ℕ) (lam : ℕ → K) : Prop := ∃ x : coeffH1 ρ, x ≠ 0 ∧ ∀ (ℓ : ℕ) (hℓ : ℓ.Prime), ¬ ℓ ∣ N → ℓ ∉ S₀ → ∃ T : coeffH1 ρ →ₗ[K] coeffH1 ρ, (haveI : NeZero ℓ := ⟨hℓ.ne_zero⟩; IsCoeffHeckeOnH1 N ℓ ρ (a ℓ) T) ∧ T x = lam ℓ • x end Eigensystem section BinaryFormRep variable (K : Type*) [CommRing K] (n : ℕ) noncomputable def binaryFormRep : Matrix (Fin 2) (Fin 2) ℤ →* (↥(BinaryForm K n) →ₗ[K] ↥(BinaryForm K n)) where toFun M := (binarySubst K M).toLinearMap.restrict fun _ hF => binarySubst_mem K M hF map_one' := by refine LinearMap.ext fun F => Subtype.ext ?_ change binarySubst K (1 : Matrix (Fin 2) (Fin 2) ℤ) F.1 = F.1 rw [binarySubst_one] rfl map_mul' M M' := by refine LinearMap.ext fun F => Subtype.ext ?_ change binarySubst K (M * M') F.1 = binarySubst K M (binarySubst K M' F.1) rw [binarySubst_mul] rfl @[simp] theorem binaryFormRep_apply_coe (M : Matrix (Fin 2) (Fin 2) ℤ) (F : ↥(BinaryForm K n)) : ((binaryFormRep K n M F : ↥(BinaryForm K n)) : MvPolynomial (Fin 2) K) = binarySubst K M F := rfl theorem binaryFormRepSL_apply_eq_binaryFormRep (g : SL(2, ℤ)) : binaryFormRepSL K n g = binaryFormRep K n (g : Matrix (Fin 2) (Fin 2) ℤ) := rfl theorem binaryFormAlphaAdj_eq_binaryFormRep (ℓ : ℕ) : binaryFormAlphaAdj K n ℓ = binaryFormRep K n !![(ℓ : ℤ), 0; 0, 1] := rfl end BinaryFormRep end HeckeEis
Statements phrased using this module (44)
- Steinberg-quotient eigensystem at level Nq, or Eisenstein
CohCarrier.exists_diamondRaw_eq_heckeT_eq_smul_gammaH_bot_mul_or_eisenstein_of_isEigensystemH1_of_steinberg_quotient_of_four_le28 below · depth 15 - Weight reduction to a ≤ p-1 for binary-form eigensystems
HeckeEis.exists_le_sub_one_isEigensystemH1_binaryFormRepSL_of_isEigensystemH18 below · depth 15 - Eisenstein alternative for eigensystems on a Steinberg quotient
HeckeEis.isEigensystemH1_ind_comp_or_eisenstein_of_isEigensystemH1_of_steinberg_quotient8 below · depth 15 - Characteristic 3: eigensystems lift from the Steinberg quotient or are Eisenstein
HeckeEis.isEigensystemH1_ind_comp_or_eisenstein_of_isEigensystemH1_of_steinberg_quotient_of_charP_three37 below · depth 15 - Shapiro transfer of an eigensystem to trivial coefficients at level Nq
HeckeEis.isEigensystemH1_one_mul_of_isEigensystemH1_ind_comp5 below · depth 15 - Mod p eigensystems occur, up to twist, in H¹
ModPForms.exists_isEigensystemH1_binaryFormRepSL_of_isModPEigen42 below · depth 15 - Eichler–Shimura modulo 3 in weight at most 4
ModPForms.exists_mem_modPMod_isModPEigen_of_isEigensystemH1_binaryFormRepSL_three_of_exists_prime_dvd_mod_three_eq_two781 below · depth 15 - Integral parabolic mod-p eigenclass attached to W at level N
WeierstrassCurve.exists_H1_parabolic_not_dvd_heckeT_congr_apOfModel_of_isEigensystemH1_one96 below · depth 15 - Mod p eigensystem of W on H¹ with Steinberg-quotient coefficients
WeierstrassCurve.exists_charP_rep_steinberg_quotient_isEigensystemH1_apOfModel_of_isSemistableModel_of_qCoeff_congr10,659 below · depth 15 - Transfer-Hecke eigencharacters of Γ₀(N) give eigensystems in H¹
CohCarrier.isEigensystemH1_one_of_heckeT_eq_smul2 below · depth 16 - Residual Galois representation attached to an H¹ Hecke eigensystem
GaloisRep.exists_galoisRep_trace_eq_of_isEigensystemH1_binaryFormRepSL_of_ringHom1,370 below · depth 16 - Galois representation attached to an eigensystem in Hom(Γ₀(N),κ)
GaloisRep.exists_galoisRep_trace_eq_of_isEigensystemH1_one_of_ringHom1,349 below · depth 16 - Hecke equivariance of Eichler integrals on H¹(Γ₀(N),Symⁿ)
HeckeEis.coeffH1Mk_cocycle_heckeTLin_modularForm3 below · depth 16 - Transfer of Hecke eigenclasses from H¹(Γ₀(N),V) to Hom(Γ₀(Np),K)
HeckeEis.exists_addMonoidHom_functional_cocycle_smul_heckeOperatorHom_mul_eq2 below · depth 16 - Change of coefficients on H¹(Γ₀(N),Symⁿ) along a ring map
HeckeEis.exists_coeffH1_map_ringHom_binaryFormRepSL0 below · depth 16 - Filtration of binary forms with Symᵃ⊗detᵇ subquotients, a≤ p-1
HeckeEis.exists_filtration_binaryForm_subquotient_le_sub_one2 below · depth 16 - Injective mod p scalar extension of H¹(Γ₀(N),Symⁿ)
HeckeEis.exists_injective_baseChange_coeffH1_binaryFormRepSL1 below · depth 16 - Eigensystems in H¹(Γ₀(N),Symⁿ) arise from weight n+2 forms
HeckeEis.exists_modularForm_heckeTLin_eq_smul_of_isEigensystemH1677 below · depth 16 - From a Γ₀(N) eigensystem to a diamond-fixed eigenclass
HeckeEis.exists_ne_zero_map_conjHom_eq_and_heckeH1_gammaH_bot_eq_smul_of_isEigensystemH11 below · depth 16 - Eichler–Shimura mod p: eigensystems occur in H¹(Γ₀(N),Symⁿ)
HeckeEis.isEigensystemH1_binaryFormRepSL_of_heckeTLin_eq_smul24 below · depth 16 - Lifting Hecke eigensystems in H¹(Γ₀(N),·) along surjections
HeckeEis.isEigensystemH1_of_isEigensystemH1_of_surjective5 below · depth 16 - Lifting a Hecke eigensystem along a surjection of coefficient modules
HeckeEis.isEigensystemH1_of_isEigensystemH1_of_surjective_of_subsingleton_H24 below · depth 16 - Eigensystem lifts along an injection of coefficients, or is Eisenstein
HeckeEis.isEigensystemH1_or_of_isEigensystemH1_of_injective3 below · depth 16 - Injectivity of Eichler–Shimura on Mₙ₊₂(Γ₀(N))
HeckeEis.modularForm_eq_zero_of_coeffH1Mk_cocycle_eq_zero7 below · depth 16 - Parabolic diamond-invariant H¹(Γ₁(N)) class with eigenvalues a_ℓ(W)
WeierstrassCurve.exists_H1_bot_ne_zero_parabolic_diamondRaw_eq_heckeT_eq_smul_of_isEigensystemH1_one84 below · depth 16 - Level lowering at q² with Steinberg-quotient coefficients
WeierstrassCurve.isEigensystemH1_comp_apOfModel_of_isSemistableModel_of_qCoeff_congr_of_steinberg_quotient10,658 below · depth 16 - Divided a-th derivative partial₀ᵃ/X₁ᵃ with detᵃ-equivariance
HeckeEis.exists_dividedDeriv_binaryFormRep_eq_det_pow_smul0 below · depth 17 - Partial Hecke eigensystems on H¹(Γ₀(N),Symⁿ) extend to full ones
HeckeEis.exists_isEigensystemH1_binaryFormRepSL_empty_of_isEigensystemH1_of_ringHom6 below · depth 17 - Ash–Stevens reduction to weight two, level dividing Np²
HeckeEis.exists_isEigensystemH1_one_dvd_mul_sq_of_isEigensystemH1_binaryFormRepSL17 below · depth 17 - Boundary Hecke eigensystems arise from modular forms
HeckeEis.exists_modularForm_heckeTLin_eq_smul_of_notMem_range_coeffH1parToH143 below · depth 17 - Residual H¹ eigensystem at level N from a cuspidal type
HeckeEis.isEigensystemH1_of_H1_gammaH_dual_of_isCuspidalOfType_of_qCoeff_congr47 below · depth 17 - Steinberg-quotient eigensystems pass between fields of characteristic p
HeckeEis.isEigensystemH1_steinberg_quotient_of_isEigensystemH1_steinberg_quotient_of_charP8 below · depth 17 - Semilinear change of coefficients on Γ₀(N)-coefficient cohomology
HeckeEis.exists_addMonoidHom_coeffH1_of_equivariant_addMonoidHom0 below · depth 18 - Integral basis of coefficient cohomology with integral Hecke matrices
HeckeEis.exists_basis_coeffH1_eq_and_mem_span_and_exists_matrix_of_basis_eq0 below · depth 18 - Newform eigensystem in H¹ with dual cuspidal-type coefficients
HeckeEis.exists_coeffH1_dual_ne_zero_isCoeffHeckeOnH1_eq_qCoeff_smul_of_isCuspidalOfType42 below · depth 18 - Hecke-equivariant embedding of coefficient H¹ into Γ_{H_1}(Nq²)-cohomology
HeckeEis.exists_coeffH1_restrict_injective_range_iff_equivariant_heckeT_of_charZero5 below · depth 18 - Ash–Stevens weight reduction to weight two with nebentypus
HeckeEis.exists_isEigensystemH1_gamma0NebenRep_of_isEigensystemH1_binaryFormRepSL_of_dvd5 below · depth 18 - Twisting a mod-p nebentypus eigensystem to trivial nebentypus
HeckeEis.exists_isEigensystemH1_one_of_isEigensystemH1_gamma0NebenRep13 below · depth 18 - Cocycles for Γ₀(N): Eichler–Shimura plus parabolic
HeckeEis.exists_modularForm_coeffCocycles_sub_cocycle_mem_coeffParabolicCocycles19 below · depth 18 - Level raising at q for H¹ eigensystems when q+1 ≠ 0
HeckeEis.isEigensystemH1_binaryFormRepSL_mul_of_isEigensystemH15 below · depth 18 - Base change of an H¹ Hecke eigensystem along a field embedding
HeckeEis.isEigensystemH1_of_isEigensystemH1_of_isBaseChange2 below · depth 18 - Hecke eigensystem in H¹ descends to the residue field
HeckeEis.isEigensystemH1_residueField_of_isEigensystemH1_of_isDiscreteValuationRing4 below · depth 18 - Mod-3 twist of a weight-two eigensystem, level divided by 3M
HeckeEis.exists_isEigensystemH1_one_natCast_mul_of_isEigensystemH1_one_of_three_dvd8 below · depth 19 - Eisenstein eigensystem ℓ↦ℓ+1 in H¹(Γ₀(M),κ)
HeckeEis.isEigensystemH1_one_natCast_add_one6 below · depth 19