Documentation

LeanPool.LeanModularForms.HeckeRIngs.GL2.HeckeAction

Hecke Operators on Modular Forms #

Defines the action of the Hecke algebra on functions ℍ → ℂ via the slash action, and shows it preserves slash invariance.

Main definitions #

Implementation #

The slash action on GL₂(ℚ) is induced from GL₂(ℝ) via monoidHomSlashAction glMap, so f ∣[k] g works directly for g : GL (Fin 2) ℚ without explicit coercion.

Left coset representatives are obtained by transposing right coset representatives: if ΓδΓ = ⊔ᵢ (σᵢδ)Γ, then ΓδΓ = ⊔ᵢ Γ(δᵀσᵢᵀ) since transpose is an anti-involution preserving Γ and fixing every double coset (GL_pair_onHeckeCoset_eq).

References #

noncomputable def HeckeRing.GL2.glMap :
GL (Fin 2) →* GL (Fin 2)

Embed GL₂(ℚ) into GL₂(ℝ) via ℚ ↪ ℝ.

Equations
Instances For
    @[implicit_reducible]

    Slash action on GL₂(ℚ) induced from GL₂(ℝ) via the embedding ℚ ↪ ℝ. Satisfies f ∣[k] g = f ∣[k] glMap g definitionally.

    Equations
    Instances For
      @[reducible, inline]
      noncomputable abbrev HeckeRing.GL2.tRep (D : HeckeCoset (GLn.GLPair 2)) (i : decompQuot (GLn.GLPair 2) D.rep) :
      GL (Fin 2)

      The transposed right-coset representative: (σᵢ * δ)ᵀ = δᵀ * σᵢᵀ.

      Equations
      Instances For
        noncomputable def HeckeRing.GL2.heckeSlash (k : ) (D : HeckeCoset (GLn.GLPair 2)) (f : UpperHalfPlane) :

        The Hecke slash action of a double coset D on a function f : ℍ → ℂ.

        Uses left coset representatives via transpose (Shimura Prop 3.30): T_k(D)(f) = Σᵢ f ∣[k] (σᵢδ)ᵀ where ΓδΓ = ⊔ᵢ (σᵢδ)Γ is the right coset decomposition. Each (σᵢδ)ᵀ = δᵀσᵢᵀ is a left coset representative, giving genuinely distinct terms f ∣[k] (δᵀσᵢᵀ).

        Equations
        Instances For
          theorem HeckeRing.GL2.heckeSlash_add (k : ) (D : HeckeCoset (GLn.GLPair 2)) (f g : UpperHalfPlane) :
          heckeSlash k D (f + g) = heckeSlash k D f + heckeSlash k D g

          The Hecke slash action distributes over addition of functions.

          @[simp]

          The Hecke slash action sends the zero function to zero.

          theorem HeckeRing.GL2.heckeSlash_smul (k : ) (D : HeckeCoset (GLn.GLPair 2)) (c : ) (f : UpperHalfPlane) :
          heckeSlash k D (c f) = c heckeSlash k D f

          The Hecke slash action commutes with scalar multiplication.

          theorem HeckeRing.GL2.slash_tRep_of_mem (k : ) (D : HeckeCoset (GLn.GLPair 2)) (h₁ h₂ : GL (Fin 2) ) (hh₁ : h₁ (GLn.GLPair 2).H) (hh₂ : h₂ (GLn.GLPair 2).H) (f : UpperHalfPlane) (hf : γ(Matrix.SpecialLinearGroup.mapGL ).range, SlashAction.map k γ f = f) :

          Slashing by a transpose of h₁ * delta * h₂ with h₁, h₂ in H equals slashing by tRep D ⟦h₁⟧, using Gamma-invariance to absorb the H-elements.

          The Hecke slash action preserves slash-invariance under SL₂(Z) (Shimura Prop 3.30).

          The SlashInvariantForm obtained by applying a Hecke operator.

          Equations
          Instances For
            theorem HeckeRing.GL2.tRep_mul_anti (D₁ D₂ : HeckeCoset (GLn.GLPair 2)) (i : decompQuot (GLn.GLPair 2) D₁.rep) (j : decompQuot (GLn.GLPair 2) D₂.rep) :
            tRep D₂ j * tRep D₁ i = MulOpposite.unop ((GLn.GLTransposeEquiv 2) ((Quotient.out i) * D₁.rep * ((Quotient.out j) * D₂.rep)))

            The transpose anti-homomorphism applied to the product of two coset reps: tRep D₂ j * tRep D₁ i = (σᵢδ₁ · σⱼδ₂)ᵀ.