Restriction, translation, norm and trace #
This file defines operations on modular forms, cusp forms, and slash-invariant forms which change the level:
- restriction maps (making the level group smaller, without changing the underlying function)
- translation maps (acting by a slash operator on the underlying function, and conjugating the level group)
- trace and norm maps (making the level group larger, by taking a sum / product of translates by coset representatives).
As an application, we show that a modular form of weight ≤ 0 (and any level) must be
constant, using norm maps to reduce to the case of level SL(2, ℤ).
Translating a SlashInvariantForm by g : GL (Fin 2) ℝ, to obtain a new
SlashInvariantForm of level g⁻¹ 𝒢 g.
Equations
- SlashInvariantForm.translate f g = { toFun := SlashAction.map k g ⇑f, slash_action_eq' := ⋯ }
Instances For
Translating a ModularForm by GL(2, ℝ), to obtain a new ModularForm.
Equations
- ModularForm.translate f g = { toSlashInvariantForm := SlashInvariantForm.translate f g, holo' := ⋯, bdd_at_cusps' := ⋯ }
Instances For
Translating a CuspForm by SL(2, ℤ), to obtain a new CuspForm.
Equations
- CuspForm.translate f g = { toSlashInvariantForm := (ModularForm.translate f g).toSlashInvariantForm, holo' := ⋯, zero_at_cusps' := ⋯ }
Instances For
Regard a modular form as a form for a subgroup of its level.
Equations
- SlashInvariantForm.restrict hGH f = { toFun := ⇑f, slash_action_eq' := ⋯ }
Instances For
Regard a modular form as a form for a subgroup of its level.
Equations
- ModularForm.restrict hGH f = { toFun := ⇑f, slash_action_eq' := ⋯, holo' := ⋯, bdd_at_cusps' := ⋯ }
Instances For
Restriction bundled as a linear map. The typeclass assumptions will be satisfied for R = ℝ
and any levels, or R = ℂ if HasDetOne is available.
Equations
- ModularForm.restrictₗ k R hGH = { toFun := ModularForm.restrict hGH, map_add' := ⋯, map_smul' := ⋯ }
Instances For
For f invariant under 𝒢, this is a function on (ℋ ⧸ 𝒢 ⊓ ℋ) × ℍ → ℂ which packages up the
translates of f by ℋ.
Equations
- SlashInvariantForm.quotientFunc f q τ = Quotient.liftOn q (fun (g : ↥ℋ) => SlashAction.map k (↑g)⁻¹ (⇑f) τ) ⋯
Instances For
The trace of a slash-invariant form, as a slash-invariant form.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The norm of a slash-invariant form, as a slash-invariant form.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The trace of a modular form, as a modular form.
Equations
- ModularForm.trace ℋ f = { toSlashInvariantForm := SlashInvariantForm.trace ℋ f, holo' := ⋯, bdd_at_cusps' := ⋯ }
Instances For
The trace of a cusp form, as a cusp form.
Equations
- CuspForm.trace ℋ f = { toSlashInvariantForm := (ModularForm.trace ℋ f).toSlashInvariantForm, holo' := ⋯, zero_at_cusps' := ⋯ }
Instances For
The norm of a modular form, as a modular form.
Equations
- ModularForm.norm ℋ f = { toSlashInvariantForm := SlashInvariantForm.norm ℋ f, holo' := ⋯, bdd_at_cusps' := ⋯ }
Instances For
Composite of trace and restriction maps.
Composite of norm and restriction maps. Formulated as an equality after coercing to functions, to avoid issues with type equality.