Definitions/Def_PowerSeries_FormalHeckeOperators.lean
Formal Hecke operators on power series
Over a commutative ring R this module defines three R-linear endomorphisms of the power series ring R[\![X]\!], modelling the action of Hecke operators on q-expansions coefficient by coefficient. For a natural number \ell, PowerSeries.heckeU is the map sending f to the series whose n-th coefficient is the (\ell n)-th coefficient of f; thus U_\ell(\sum a_n X^n) = \sum a_{\ell n} X^n. PowerSeries.heckeV sends f to the series whose n-th coefficient is the (n/\ell)-th coefficient of f when \ell \mid n and 0 otherwise; thus V_\ell(\sum a_n X^n) = \sum a_n X^{\ell n}. Both are bundled as R-linear maps, additivity and R-homogeneity being immediate from the coefficientwise description. Finally, for \ell and a weight k, PowerSeries.heckeT is defined as the R-linear combination U_\ell + \ell^{k-1} V_\ell, where \ell^{k-1} means the (k-1)-st power of the image of \ell in R and k-1 is truncated natural subtraction (so the scalar is 1 when k = 0 or k = 1).
The accompanying coefficient lemmas coeff_heckeU, coeff_heckeV and coeff_heckeT record these descriptions as simp-normal identities, the last reading a_n(T_\ell^{(k)} f) = a_{\ell n}(f) + \ell^{k-1}\cdot c_n, where c_n = a_{n/\ell}(f) if \ell \mid n and c_n = 0 otherwise. The lemma heckeU_heckeV states that for \ell \neq 0 one has U_\ell(V_\ell f) = f for every f, i.e. V_\ell is a right inverse of U_\ell. No assumption that \ell is prime, nor any relation to modular forms, is imposed: these are purely formal operations on coefficient sequences.
Relation to Mathlib
Mathlib has no Hecke operators on formal power series; these are the project's own definitions, built on Mathlib's PowerSeries and its coeff/mk interface.
Where it is used
These operators give the q-expansion-level form of the Hecke action, so that statements about modular forms and their eigenvalues — normalised eigenform criteria, congruences between coefficients, and the Hecke action used in the level- and weight-lowering arguments — can be phrased and manipulated entirely in terms of coefficient sequences.
References
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154
- F. Diamond and J. Shurman, A First Course in Modular Forms, Graduate Texts in Mathematics 228, Springer, 2005, Chapter 5
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 44 lines
- 7 declarations
- used in the statements of 17 theorems and imported by 36 proofs
- imports 0 definition modules
Source file: Definitions/Def_PowerSeries_FormalHeckeOperators.lean
Imports
- only Mathlib
Imported by
Declarations
- def
PowerSeries.heckeU - lemma
PowerSeries.coeff_heckeU - def
PowerSeries.heckeV - lemma
PowerSeries.coeff_heckeV - lemma
PowerSeries.heckeU_heckeV - def
PowerSeries.heckeT - lemma
PowerSeries.coeff_heckeT
Source
import Mathlib set_option autoImplicit false noncomputable section namespace PowerSeries variable {R : Type*} [CommRing R] def heckeU (ℓ : ℕ) : R⟦X⟧ →ₗ[R] R⟦X⟧ where toFun f := mk fun n => coeff (ℓ * n) f map_add' f g := by ext n; simp map_smul' c f := by ext n; simp @[simp] lemma coeff_heckeU (ℓ n : ℕ) (f : R⟦X⟧) : coeff n (heckeU ℓ f) = coeff (ℓ * n) f := by simp [heckeU] def heckeV (ℓ : ℕ) : R⟦X⟧ →ₗ[R] R⟦X⟧ where toFun f := mk fun n => if ℓ ∣ n then coeff (n / ℓ) f else 0 map_add' f g := by ext n; by_cases h : ℓ ∣ n <;> simp [h] map_smul' c f := by ext n; by_cases h : ℓ ∣ n <;> simp [h] @[simp] lemma coeff_heckeV (ℓ n : ℕ) (f : R⟦X⟧) : coeff n (heckeV ℓ f) = if ℓ ∣ n then coeff (n / ℓ) f else 0 := by simp [heckeV] lemma heckeU_heckeV (ℓ : ℕ) (hℓ : ℓ ≠ 0) (f : R⟦X⟧) : heckeU ℓ (heckeV ℓ f) = f := by ext n simp [Nat.mul_div_cancel_left n (Nat.pos_of_ne_zero hℓ), Dvd.intro n rfl] def heckeT (ℓ k : ℕ) : R⟦X⟧ →ₗ[R] R⟦X⟧ := heckeU ℓ + (ℓ : R) ^ (k - 1) • heckeV ℓ lemma coeff_heckeT (ℓ k n : ℕ) (f : R⟦X⟧) : coeff n (heckeT ℓ k f) = coeff (ℓ * n) f + (ℓ : R) ^ (k - 1) * if ℓ ∣ n then coeff (n / ℓ) f else 0 := by simp [heckeT] end PowerSeries end
Statements phrased using this module (17)
- Weight-two eigenform congruent to a mod-3 Hecke eigensystem
FLT.AbstractIntegralStructure.exists_weight_two_eigenform_congruent_of_heckeT_congr74 below · depth 8 - Mod-3 Hecke congruence for the weight-one bridge product
FLT.OccurrenceStatement.three_dvd_coeff_heckeT_two_sub_smul_of_not_dvd0 below · depth 8 - Maximality of the occurrence ideal (3, T_ℓ-a_ℓ)
CuspForm.exists_isMaximal_three_mem_heckeT_sub_mem1 below · depth 9 - Mod-3 lattice module realising the weight-two bridge product
CuspForm.exists_reductionModule_of_isLatticeRealized9 below · depth 9 - q-expansion of Tₚ on weight-2 cusp forms
CuspForm.qExpansion_heckeTLin2 below · depth 10 - q-expansion of Tₚ f is Uₚ + p^{k-1}Vₚ applied to that of f
ModularFormClass.qExpansion_heckeT_eq_heckeT1 below · depth 11 - q-expansion of Uₚf equals formal Uₚ of the q-expansion
ModularFormClass.qExpansion_heckeU_eq_heckeU1 below · depth 12 - Frobenius twists satisfy the weight-k Hecke congruence mod p
PowerSeries.coeff_heckeT_pow_sub_mem_span2 below · depth 12 - Characters of the Hecke algebra give mod p cuspidal eigensystems
CuspForm.heckeAlgebra.exists_mem_modPCusp_isModPEigen_of_ringHom669 below · depth 14 - Mod p Hecke eigensystems come from characters of T
CuspForm.heckeAlgebra.exists_ringHom_apply_eq_of_isModPEigen_of_heckeU_eq_smul11 below · depth 14 - Agreement of the two normalisations of T_ℓ on power series
ModPForms.heckeT_apply_eq_heckePS0 below · depth 15 - Reduction of ℓ E₂(ℓτ)-E₂(τ) lies in mod-p weight-2 forms
ModPForms.natCast_smul_heckeV_qP_sub_qP_mem_modPMod4 below · depth 16 - Kernel of Uₚ on mod-p weight-2 forms of level Np
ModPForms.finrank_ker_heckeU_modPCusp_mul_two_le_finrank_modPCusp_two616 below · depth 17 - U₃ sends mod-3 cusp forms of level 3N to weight 4
ModPForms.heckeU_mem_modPCusp_four_of_mem_modPCusp_mul_three_of_exists_prime_dvd_mod_three_eq_two991 below · depth 17 - U_ℓ preserves mod-p cusp forms when ℓ ∣ M
ModPForms.heckeU_mem_modPCusp_of_dvd1 below · depth 17 - V_ℓ maps mod-p forms of level N to level Nℓ
ModPForms.heckeV_mem_modPMod_mul4 below · depth 18 - Transposed U_q and Atkin–Lehner pins on two-cusp integral forms
CuspForm.exists_not_dvd_and_coe_eq_smul_sum_slash_transpose_and_heckeU_eq_of_mem_twoCuspIntegralSet613 below · depth 34