Definitions/Def_HeckeEis_EichlerIntegral.lean
Eichler integrals and the Eichler–Shimura map to parabolic cohomology
Fix n \ge 0 and work with the submodule \mathrm{BinaryForm}\,\mathbb{C}\,n of degree-n homogeneous elements of \mathbb{C}[X_0,X_1], carrying the representation binaryFormRepSL of SL_2(\mathbb{Z}) by the substitution X_j \mapsto \sum_i M_{ij} X_i. Three layers are defined. First, linePow n τ is the form (\tau X_0 + X_1)^n (homogeneity being checked in the accompanying lemmas), and jFactor g τ is c\tau + d for g with bottom row (c,d); it is identified with Mathlib's denom of the image of g in GL_2(\mathbb{R}) and shown nonzero, and the automorphy relation binaryFormRepSL_linePow reads \rho_n(g)\bigl((\tau X_0+X_1)^n\bigr) = (c\tau+d)^n\,\bigl((g\tau)X_0 + X_1\bigr)^n for g \in SL_2(\mathbb{Z}), \tau \in \mathfrak{H}. Second, for a subgroup \Gamma \le SL_2(\mathbb{Z}), a representation \rho of \Gamma on a K-module V and F : \mathfrak{H} \to V, the predicate IsEquivariantPrimitiveWith ρ F says that for every \gamma \in \Gamma the function \tau \mapsto F(\gamma\tau) - \rho(\gamma)F(\tau) is constant on \mathfrak{H}. Its cocycle is defined by evaluation at the base point i, z_F(\gamma) = F(\gamma i) - \rho(\gamma)F(i); the lemmas record that z_F(\gamma) equals the constant value at every \tau, that F(\gamma\tau) = z_F(\gamma) + \rho(\gamma)F(\tau), and that z_F lies in coeffCocycles ρ, i.e. z_F(\gamma\delta) = z_F(\gamma) + \rho(\gamma)z_F(\delta).
Third, IsEichlerIntegral n f F, for f : \mathfrak{H} \to \mathbb{C} and F : \mathfrak{H} \to \mathrm{BinaryForm}\,\mathbb{C}\,n, is the coefficientwise condition: for every multidegree d and every \tau \in \mathfrak{H}, the function z \mapsto \mathrm{coeff}_d\, F(\mathrm{ofComplex}\,z) on \mathbb{C} has complex derivative f(\tau)\cdot \mathrm{coeff}_d\bigl((\tau X_0+X_1)^n\bigr) at \tau; thus F' (\tau) = f(\tau)(\tau X_0+X_1)^n. Finally eichlerShimuraMap n N f takes values in coeffH1par of \rho_n restricted to \Gamma_0(N) (parabolic cocycles modulo coboundaries, parabolicity meaning z(\gamma) \in \mathrm{range}(\rho(\gamma)-1) whenever \mathrm{tr}(\gamma)^2 = 4): it is defined by choice as the class of z_F for some F which is an Eichler integral of f, an equivariant primitive for that representation, and has parabolic cocycle, and as 0 when no such F exists. The two accompanying lemmas make this precise: if one such F is given then the value is the class of the cocycle of some (chosen) such F_0, and in the negative case the value is 0. Independence of the choice is not part of the definition.
Relation to Mathlib
Mathlib has no notion of Eichler integral, equivariant primitive, or parabolic group cohomology of a subgroup of SL_2(\mathbb{Z}); these are the project's own, built on Mathlib's MvPolynomial.homogeneousSubmodule, Representation, UpperHalfPlane and CongruenceSubgroup.Gamma0. The automorphy factor jFactor is proved to agree with Mathlib's UpperHalfPlane.denom.
Where it is used
These definitions supply the weight-k = n+2 vocabulary attaching to a modular form the class of its Eichler integral cocycle in parabolic cohomology with \mathrm{Sym}^n coefficients, the coefficient-module analogue of the weight-two period map; such cohomological models of spaces of forms underlie the comparison of Hecke eigensystems in different weights and levels used in the level-lowering step.
References
- G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Publications of the Mathematical Society of Japan 11, Princeton University Press, 1971, Chapter 8
- A. Ash and G. Stevens, Modular forms in characteristic \ell and special values of their L-functions, Duke Mathematical Journal 53 (1986), 849–868
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 150 lines
- 19 declarations
- used in the statements of 32 theorems and imported by 36 proofs
- imports 2 definition modules
Source file: Definitions/Def_HeckeEis_EichlerIntegral.lean
Imported by
- no other definition module
Declarations
- theorem
HeckeEis.isHomogeneous_line - theorem
HeckeEis.isHomogeneous_linePow - def
HeckeEis.linePow - theorem
HeckeEis.coe_linePow - def
HeckeEis.jFactor - theorem
HeckeEis.jFactor_eq_denom - theorem
HeckeEis.jFactor_ne_zero - theorem
HeckeEis.coe_smul_mul_jFactor - theorem
HeckeEis.binarySubst_line - theorem
HeckeEis.binaryFormRepSL_linePow - def
HeckeEis.IsEquivariantPrimitiveWith - def
HeckeEis.IsEquivariantPrimitiveWith.cocycle - theorem
HeckeEis.IsEquivariantPrimitiveWith.sub_eq_cocycle - theorem
HeckeEis.IsEquivariantPrimitiveWith.apply_smul - theorem
HeckeEis.IsEquivariantPrimitiveWith.cocycle_mem_coeffCocycles - def
HeckeEis.IsEichlerIntegral - def
HeckeEis.eichlerShimuraMap - theorem
HeckeEis.eichlerShimuraMap_def - theorem
HeckeEis.eichlerShimuraMap_of_not_exists
Source
import Mathlib import Definitions.Def_HeckeEis_BinaryFormRep import Definitions.Def_Gamma0CoeffCohomology noncomputable section namespace HeckeEis open UpperHalfPlane MvPolynomial CongruenceSubgroup open scoped MatrixGroups section LinePow variable (n : ℕ) theorem isHomogeneous_line (τ : ℂ) : (C τ * X 0 + X 1 : MvPolynomial (Fin 2) ℂ).IsHomogeneous 1 := ((isHomogeneous_X ℂ 0).C_mul τ).add (isHomogeneous_X ℂ 1) theorem isHomogeneous_linePow (τ : ℂ) : ((C τ * X 0 + X 1 : MvPolynomial (Fin 2) ℂ) ^ n).IsHomogeneous n := by simpa using (isHomogeneous_line τ).pow n def linePow (τ : ℂ) : ↥(BinaryForm ℂ n) := ⟨(C τ * X 0 + X 1) ^ n, (mem_homogeneousSubmodule n _).mpr (isHomogeneous_linePow n τ)⟩ @[simp] theorem coe_linePow (τ : ℂ) : ((linePow n τ : ↥(BinaryForm ℂ n)) : MvPolynomial (Fin 2) ℂ) = (C τ * X 0 + X 1) ^ n := rfl def jFactor (g : SL(2, ℤ)) (τ : ℍ) : ℂ := ((g : Matrix (Fin 2) (Fin 2) ℤ) 1 0 : ℂ) * (τ : ℂ) + ((g : Matrix (Fin 2) (Fin 2) ℤ) 1 1 : ℂ) theorem jFactor_eq_denom (g : SL(2, ℤ)) (τ : ℍ) : jFactor g τ = denom (Matrix.SpecialLinearGroup.mapGL ℝ g) (τ : ℂ) := by rw [jFactor, Matrix.SpecialLinearGroup.mapGL, MonoidHom.comp_apply, show (algebraMap ℤ ℝ) = Int.castRingHom ℝ from rfl, ModularGroup.denom_apply] theorem jFactor_ne_zero (g : SL(2, ℤ)) (τ : ℍ) : jFactor g τ ≠ 0 := by rw [jFactor_eq_denom] exact denom_ne_zero _ τ theorem coe_smul_mul_jFactor (g : SL(2, ℤ)) (τ : ℍ) : ((g • τ : ℍ) : ℂ) * jFactor g τ = ((g : Matrix (Fin 2) (Fin 2) ℤ) 0 0 : ℂ) * (τ : ℂ) + ((g : Matrix (Fin 2) (Fin 2) ℤ) 0 1 : ℂ) := by rw [coe_specialLinearGroup_apply] have hj := jFactor_ne_zero g τ simp only [jFactor, eq_intCast, Complex.ofReal_intCast] at hj ⊢ rw [div_mul_cancel₀ _ hj] theorem binarySubst_line (M : Matrix (Fin 2) (Fin 2) ℤ) (τ : ℂ) : binarySubst ℂ M (C τ * X 0 + X 1) = C ((M 0 0 : ℂ) * τ + (M 0 1 : ℂ)) * X 0 + C ((M 1 0 : ℂ) * τ + (M 1 1 : ℂ)) * X 1 := by simp only [map_add, map_mul, binarySubst_C, binarySubst_X, Fin.sum_univ_two, Fin.isValue] ring theorem binaryFormRepSL_linePow (g : SL(2, ℤ)) (τ : ℍ) : binaryFormRepSL ℂ n g (linePow n (τ : ℂ)) = (jFactor g τ) ^ n • linePow n ((g • τ : ℍ) : ℂ) := by apply Subtype.ext rw [binaryFormRepSL_apply_coe, Submodule.coe_smul, coe_linePow, coe_linePow, map_pow, binarySubst_line, smul_eq_C_mul, map_pow, ← mul_pow] congr 1 rw [mul_add, ← mul_assoc, ← map_mul, mul_comm (jFactor g τ), coe_smul_mul_jFactor] rfl end LinePow section Equivariant variable {K : Type*} [CommRing K] {Γ : Subgroup SL(2, ℤ)} {V : Type*} [AddCommGroup V] [Module K V] def IsEquivariantPrimitiveWith (ρ : Representation K Γ V) (F : ℍ → V) : Prop := ∀ γ : Γ, ∃ c : V, ∀ τ : ℍ, F ((γ : SL(2, ℤ)) • τ) - ρ γ (F τ) = c namespace IsEquivariantPrimitiveWith variable {ρ : Representation K Γ V} {F : ℍ → V} def cocycle (_hF : IsEquivariantPrimitiveWith ρ F) (γ : Γ) : V := F ((γ : SL(2, ℤ)) • I) - ρ γ (F I) theorem sub_eq_cocycle (hF : IsEquivariantPrimitiveWith ρ F) (γ : Γ) (τ : ℍ) : F ((γ : SL(2, ℤ)) • τ) - ρ γ (F τ) = hF.cocycle γ := by obtain ⟨c, hc⟩ := hF γ rw [cocycle, hc τ, hc I] theorem apply_smul (hF : IsEquivariantPrimitiveWith ρ F) (γ : Γ) (τ : ℍ) : F ((γ : SL(2, ℤ)) • τ) = hF.cocycle γ + ρ γ (F τ) := by rw [← hF.sub_eq_cocycle γ τ, sub_add_cancel] theorem cocycle_mem_coeffCocycles (hF : IsEquivariantPrimitiveWith ρ F) : hF.cocycle ∈ coeffCocycles ρ := by intro γ δ have h := hF.apply_smul (γ * δ) I rw [Subgroup.coe_mul, mul_smul, hF.apply_smul γ, hF.apply_smul δ, map_add, map_mul, Module.End.mul_apply] at h have := congrArg (fun v => v - ρ γ (ρ δ (F I))) h simp only [add_sub_cancel_right] at this rw [← this] abel end IsEquivariantPrimitiveWith end Equivariant section EichlerIntegral variable (n : ℕ) def IsEichlerIntegral (f : ℍ → ℂ) (F : ℍ → ↥(BinaryForm ℂ n)) : Prop := ∀ (d : Fin 2 →₀ ℕ) (τ : ℍ), HasDerivAt (fun z : ℂ => MvPolynomial.coeff d ((F (ofComplex z) : ↥(BinaryForm ℂ n)) : MvPolynomial (Fin 2) ℂ)) (f τ * MvPolynomial.coeff d ((linePow n (τ : ℂ) : ↥(BinaryForm ℂ n)) : MvPolynomial (Fin 2) ℂ)) (τ : ℂ) variable (N : ℕ) open Classical in def eichlerShimuraMap (f : ℍ → ℂ) : coeffH1par ((binaryFormRepSL ℂ n).comp (Gamma0 N).subtype) := if h : ∃ F : ℍ → ↥(BinaryForm ℂ n), IsEichlerIntegral n f F ∧ ∃ hF : IsEquivariantPrimitiveWith ((binaryFormRepSL ℂ n).comp (Gamma0 N).subtype) F, IsParabolicCocycle ((binaryFormRepSL ℂ n).comp (Gamma0 N).subtype) hF.cocycle then coeffH1parMk _ ⟨h.choose_spec.2.choose.cocycle, ⟨h.choose_spec.2.choose.cocycle_mem_coeffCocycles, h.choose_spec.2.choose_spec⟩⟩ else 0 theorem eichlerShimuraMap_def (f : ℍ → ℂ) {F : ℍ → ↥(BinaryForm ℂ n)} (hEI : IsEichlerIntegral n f F) (hF : IsEquivariantPrimitiveWith ((binaryFormRepSL ℂ n).comp (Gamma0 N).subtype) F) (hpar : IsParabolicCocycle ((binaryFormRepSL ℂ n).comp (Gamma0 N).subtype) hF.cocycle) : ∃ (F₀ : ℍ → ↥(BinaryForm ℂ n)) (_ : IsEichlerIntegral n f F₀) (h₀ : IsEquivariantPrimitiveWith ((binaryFormRepSL ℂ n).comp (Gamma0 N).subtype) F₀) (hpar₀ : IsParabolicCocycle ((binaryFormRepSL ℂ n).comp (Gamma0 N).subtype) h₀.cocycle), eichlerShimuraMap n N f = coeffH1parMk _ ⟨h₀.cocycle, ⟨h₀.cocycle_mem_coeffCocycles, hpar₀⟩⟩ := by classical have h : ∃ F : ℍ → ↥(BinaryForm ℂ n), IsEichlerIntegral n f F ∧ ∃ hF : IsEquivariantPrimitiveWith ((binaryFormRepSL ℂ n).comp (Gamma0 N).subtype) F, IsParabolicCocycle ((binaryFormRepSL ℂ n).comp (Gamma0 N).subtype) hF.cocycle := ⟨F, hEI, hF, hpar⟩ exact ⟨h.choose, h.choose_spec.1, h.choose_spec.2.choose, h.choose_spec.2.choose_spec, dif_pos h⟩ theorem eichlerShimuraMap_of_not_exists (f : ℍ → ℂ) (h : ¬ ∃ F : ℍ → ↥(BinaryForm ℂ n), IsEichlerIntegral n f F ∧ ∃ hF : IsEquivariantPrimitiveWith ((binaryFormRepSL ℂ n).comp (Gamma0 N).subtype) F, IsParabolicCocycle ((binaryFormRepSL ℂ n).comp (Gamma0 N).subtype) hF.cocycle) : eichlerShimuraMap n N f = 0 := by classical exact dif_neg h end EichlerIntegral end HeckeEis end
Statements phrased using this module (32)
- Eichler–Shimura map intertwines T_ℓ with cohomological T_ℓ
HeckeEis.eichlerShimuraMap_heckeTLin17 below · depth 12 - Eichler–Shimura map intertwines U_ℓ for ℓ ∣ N
HeckeEis.eichlerShimuraMap_heckeULin17 below · depth 12 - Injectivity of the Eichler–Shimura map on cusp forms
HeckeEis.eichlerShimuraMap_injective26 below · depth 12 - ℂ-linearity of the Eichler–Shimura map
HeckeEis.existsEichlerShimuraMapLinear19 below · depth 12 - Eichler–Shimura: images of ES and ̄ES are complementary
HeckeEis.isCompl_range_eichlerShimuraMap_range_conj638 below · depth 12 - Eichler integrals under integral matrices of positive determinant
HeckeEis.IsEichlerIntegral.binarySubst_adjugate_comp_smul0 below · depth 13 - Eichler integral with constant evaluation at (1,-τ) integrates zero
HeckeEis.IsEichlerIntegral.eq_zero_of_eval_eq_const2 below · depth 13 - Bol's identity one rung at a time
HeckeEis.IsEichlerIntegral.hasDerivAt_eval_iterate_pderiv0 below · depth 13 - Boundedness at i∞ of a T^h-equivariant Eichler integral's evaluation
HeckeEis.IsEichlerIntegral.isBoundedAtImInfty_eval4 below · depth 13 - Eichler integrals transform under SL₂(ℤ)
HeckeEis.IsEichlerIntegral.slash0 below · depth 13 - Additivity of the Eichler–Shimura map on cusp forms
HeckeEis.eichlerShimuraMap_add16 below · depth 13 - Eichler–Shimura map computed by any admissible Eichler integral
HeckeEis.eichlerShimuraMap_eq_coeffH1parMk2 below · depth 13 - Complex homogeneity of the Eichler–Shimura map
HeckeEis.eichlerShimuraMap_smul16 below · depth 13 - Mod-p parabolic eigenclass attached to a maximal Hecke ideal
HeckeEis.exists_coeffH1par_int_modp_eigenclass_of_ideal_heckeAlgebra51 below · depth 13 - Existence of a parabolic Eichler integral for Γ₀(N) cusp forms
HeckeEis.exists_isEichlerIntegral_isParabolicCocycle12 below · depth 13 - Eichler integrals of cusp forms give parabolic cocycles
HeckeEis.isParabolicCocycle_cocycle_of_isEichlerIntegral7 below · depth 13 - Weight identity j(g,τ)ⁿ(ρₙ(g)P)(1,-gτ)=P(1,-τ)
HeckeEis.jFactor_pow_mul_eval_binaryFormRepSL0 below · depth 13 - Injectivity half of Eichler–Shimura for Γ₀(N)
HeckeEis.range_eichlerShimuraMap_inf_range_conj_eq_bot15 below · depth 13 - Additivity of the Eichler integral relation
HeckeEis.IsEichlerIntegral.add0 below · depth 14 - Eichler integrals of the same form differ by a constant
HeckeEis.IsEichlerIntegral.exists_sub_eq_const0 below · depth 14 - Eichler integrals scale: cF is an Eichler integral of cf
HeckeEis.IsEichlerIntegral.smul0 below · depth 14 - Parabolic condition for Eichler integrals at ∞
HeckeEis.IsEichlerIntegral.vadd_sub_T_zpow_apply_mem_range3 below · depth 14 - Equivariant primitives differing by a constant: cohomologous cocycles
HeckeEis.IsEquivariantPrimitiveWith.cocycle_sub_cocycle_mem_coeffCoboundaries0 below · depth 14 - Integral parabolic mod-p eigenclass attached to a Hecke eigenform
HeckeEis.exists_coeffH1par_int_modp_eigenclass_of_eigenform46 below · depth 14 - Existence of Eichler integrals for holomorphic functions on H
HeckeEis.exists_isEichlerIntegral1 below · depth 14 - The Hecke algebra of Sₙ₊₂(Γ₀(N)) is ℤ-finite
HeckeEis.finite_int_heckeAlgebra45 below · depth 14 - Eichler integrals of slash-invariant f are equivariant primitives
HeckeEis.isEquivariantPrimitiveWith_of_isEichlerIntegral2 below · depth 14 - An SL₂(ℤ)-invariant pairing on binary forms of degree n
HeckeEis.exists_pairing_binaryForm_linePow0 below · depth 15 - Hecke equivariance of Eichler integrals on H¹(Γ₀(N),Symⁿ)
HeckeEis.coeffH1Mk_cocycle_heckeTLin_modularForm3 below · depth 16 - Injectivity of Eichler–Shimura on Mₙ₊₂(Γ₀(N))
HeckeEis.modularForm_eq_zero_of_coeffH1Mk_cocycle_eq_zero7 below · depth 16 - Cocycles for Γ₀(N): Eichler–Shimura plus parabolic
HeckeEis.exists_modularForm_coeffCocycles_sub_cocycle_mem_coeffParabolicCocycles19 below · depth 18 - Period of an Eichler integral around a cusp
HeckeEis.IsEichlerIntegral.coeff_binaryFormRepSL_inv_apply_sub_eq_intervalIntegral_slash2 below · depth 19