Documentation

Mathlib.NumberTheory.ModularForms.SlashActions

Slash actions #

This file defines a class of slash actions, which are families of right actions of a given group parametrized by some Type. This is modeled on the slash action of GLPos (Fin 2) ℝ on the space of modular forms.

Notation #

In the ModularForm locale, this provides

class SlashAction (β : Type u_1) (G : Type u_2) (α : Type u_3) (γ : Type u_4) [Group G] [AddMonoid α] [SMul γ α] :
Type (max (max u_1 u_2) u_3)

A general version of the slash action of the space of modular forms.

Instances
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem SlashAction.neg_slash {β : Type u_1} {G : Type u_2} {α : Type u_3} {γ : Type u_4} [Group G] [AddGroup α] [SMul γ α] [SlashAction β G α γ] (k : β) (g : G) (a : α) :
        SlashAction.map γ k g (-a) = -SlashAction.map γ k g a
        @[simp]
        theorem SlashAction.smul_slash_of_tower {R : Type u_1} {β : Type u_2} {G : Type u_3} {α : Type u_4} (γ : Type u_5) [Group G] [AddGroup α] [Monoid γ] [MulAction γ α] [SMul R γ] [SMul R α] [IsScalarTower R γ α] [SlashAction β G α γ] (k : β) (g : G) (a : α) (r : R) :
        SlashAction.map γ k g (r • a) = r • SlashAction.map γ k g a
        def monoidHomSlashAction {β : Type u_1} {G : Type u_2} {H : Type u_3} {α : Type u_4} {γ : Type u_5} [Group G] [AddMonoid α] [SMul γ α] [Group H] [SlashAction β G α γ] (h : H →* G) :
        SlashAction β H α γ

        Slash_action induced by a monoid homomorphism.

        Equations
        Instances For
          def ModularForm.slash (k : ℤ) (γ : ↥(Matrix.GLPos (Fin 2) ℝ)) (f : UpperHalfPlane → ℂ) (x : UpperHalfPlane) :

          The weight k action of GL(2, ℝ)⁺ on functions f : ℍ → ℂ.

          Equations
          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            @[simp]
            theorem ModularForm.subgroup_slash {k : ℤ} (f : UpperHalfPlane → ℂ) (Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)) (γ : ↥Γ) :
            SlashAction.map ℂ k γ f = SlashAction.map ℂ k (↑↑γ) f

            The constant function 1 is invariant under any element of SL(2, ℤ).

            theorem ModularForm.slash_action_eq'_iff (k : ℤ) (Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)) (f : UpperHalfPlane → ℂ) (γ : ↥Γ) (z : UpperHalfPlane) :
            SlashAction.map ℂ k γ f z = f z ↔ f (γ • z) = (↑(↑↑↑γ 1 0) * ↑z + ↑(↑↑↑γ 1 1)) ^ k * f z

            A function f : ℍ → ℂ is slash-invariant, of weight k ∈ ℤ and level Γ, if for every matrix γ ∈ Γ we have f(γ • z)= (c*z+d)^k f(z) where γ= ![![a, b], ![c, d]], and it acts on ℍ via Möbius transformations.

            theorem ModularForm.mul_slash (k1 : ℤ) (k2 : ℤ) (A : ↥(Matrix.GLPos (Fin 2) ℝ)) (f : UpperHalfPlane → ℂ) (g : UpperHalfPlane → ℂ) :
            SlashAction.map ℂ (k1 + k2) A (f * g) = Matrix.det ↑↑A • SlashAction.map ℂ k1 A f * SlashAction.map ℂ k2 A g
            theorem ModularForm.mul_slash_subgroup (k1 : ℤ) (k2 : ℤ) (Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)) (A : ↥Γ) (f : UpperHalfPlane → ℂ) (g : UpperHalfPlane → ℂ) :
            SlashAction.map ℂ (k1 + k2) A (f * g) = SlashAction.map ℂ k1 A f * SlashAction.map ℂ k2 A g