Modular-forms basics: extensions of Mathlib's API #
Small generic lemmas extending Mathlib/NumberTheory/ModularForms/Basic.lean and its slash
actions: the conjugation σ is trivial on SL(2, ℤ)-matrices — a special case of
UpperHalfPlane.σ_eq_refl_of_det_pos, which lives with σ itself in
TauCeti/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean — the CuspForm
translation equations Mathlib does not yet provide (CuspForm.mcast_apply and the
GL(2, ℝ)-level CuspForm.coe_translate_gl), and the weight-k slash action of -I
(ModularForm.slash_neg_one), the source of every parity constraint on weights and
nebentypus characters.
It also records how modular and cusp forms move between two nested groups Γ' ≤ Γ. Shrinking
the group is unconditional (ModularForm.ofLe): slash invariance restricts, and every cusp of
Γ' is a cusp of Γ (IsCusp.mono), so the boundedness conditions restrict as well.
Enlarging it is not: a Γ'-form which happens to be Γ-slash invariant is bounded only at the
cusps of Γ', so one needs to know that Γ has no further cusps, which
ModularForm.ofSlashInvariant takes as its hypothesis. Two arithmetic groups always satisfy it
(Subgroup.IsArithmetic.isCusp_of_isCusp: both have the cusps of SL(2, ℤ)). Under it the two
constructions are mutually inverse: the image of M_k(Γ) → M_k(Γ') is exactly the
Γ-invariant part of M_k(Γ') (ModularForm.mem_range_ofLeₗ_iff).
Translation by a positive-determinant matrix is packaged as the linear map
ModularForm.translateₗ. General GL₂(ℝ) translation is only semilinear because a
negative-determinant matrix applies complex conjugation, whereas a positive-determinant matrix
acts ℂ-linearly.
The first group of lemmas was split out of the diamond-operator development ported from the
AINTLIB LeanModularForms project
(https://github.com/CBirkbeck/AINTLIB/tree/main/projects/LeanModularForms).
Main definitions #
ModularForm.ofLe,CuspForm.ofLe(and theirℂ-linear packagingsofLeₗ): a form forΓread as a form for a subgroupΓ' ≤ Γ.ModularForm.ofSlashInvariant,CuspForm.ofSlashInvariant: aΓ'-form which is slash invariant under a groupΓall of whose cusps are cusps ofΓ', read as a form forΓ.ModularForm.translateₗ: translation by a positive-determinant element ofGL₂(ℝ)as aℂ-linear map.
Main results #
ModularForm.slash_scalar: a real scalar matrix acts by its scalar to the powerk - 2under the weight-kslash action.SlashInvariantFormClass.SL_slash_eq: a form invariant under the image ofΓ ≤ SL(2, ℤ)is fixed by the slash action of every element ofΓ.SlashInvariantForm.slash_action_eqn_of_det_pos: the transformation lawf (γ • τ) = |det γ| ^ (1 - k) * denom γ τ ^ k * f τforγof positive determinant, generalising Mathlib'sslash_action_eqn'', which assumesdet γ = 1.slash_zpow_eq_self_of_slash_eq,slash_zpow_mul_mul_zpow_eq_smul: slash invariance passes to integer powers, and an eigenvalue law survives multiplication on both sides by powers of an invariance.Subgroup.IsArithmetic.isCusp_of_isCusp: any two arithmetic groups have the same cusps.TauCeti.ModularForm.eq_zero_of_eq_const: a constant slash-invariant form of nonzero weight vanishes when its group has finite-index intersection with the modular group.ModularForm.mem_range_ofLeₗ_iff,CuspForm.mem_range_ofLeₗ_iff: forΓ' ≤ Γwith every cusp ofΓa cusp ofΓ', a form forΓ'extends toΓexactly when it isΓ-slash invariant.
Every element of 𝒮ℒ has positive determinant: it is the image of a matrix of
determinant 1.
This is the hypothesis the positive-determinant slash lemmas take — σ_eq_refl_of_det_pos just
below, and orderOfVanishingAt_slash / orderOfVanishingAt_smul in
TauCeti.NumberTheory.ModularForms.Order.OfVanishing — and every modular call site discharges
it the same way. Keying it on membership in 𝒮ℒ rather than on
Matrix.SpecialLinearGroup.mapGL covers both shapes the call sites come in: a direct image
mapGL ℝ γ (via MonoidHom.mem_range.mpr ⟨γ, rfl⟩) and an element of the image of a subgroup
Γ ≤ SL(2, ℤ) (via Subgroup.map_le_range).
The slash-action conjugation σ is the identity for matrices coming from
SL₂(ℤ): their determinant is 1 > 0, so the σ branch picks ContinuousAlgEquiv.refl ℝ ℂ.
This keeps @[simp] even though UpperHalfPlane.σ_eq_refl_of_det_pos is also @[simp]: that
one is conditional, and simp cannot discharge 0 < (↑(mapGL ℝ s)).det on its own — the
determinant of a mapped SL(2, ℤ) matrix reduces through GeneralLinearGroup.det, not through
Matrix.det of the entrywise map. So the two do not overlap in practice.
Slash invariance under a fixed matrix #
Ported from the AINTLIB LeanModularForms project (Chris Birkbeck), Apache-2.0, file
LeanModularForms/Eigenforms/ConductorTheorem.lean at commit
2baa76f742bdb4fb8ee323fabba41203bd390e08
(https://github.com/CBirkbeck/AINTLIB): slash_T_zpow_eq_self_of_slash_T_eq (:176) and
conductor_slash_T_conj_eq (:186). The source states both for powers of ModularGroup.T in
SL(2, ℤ); they are recorded here for GL (Fin 2) ℝ, which is all their proofs use.
Slash invariance passes to every integer power. If f ∣[k] A = f then
f ∣[k] A ^ j = f for every j : ℤ: f is a fixed point of the slash action of A, and
MulAction.mem_fixedBy_zpow carries a fixed point along every integer power.
An eigenvalue law survives multiplication on both sides by powers of an invariance. If
f is fixed by δ and slashing by γ multiplies it by z, then slashing by
δ ^ i * γ * δ ^ j does too, for independent i and j — this is a conjugation only in the
special case j = -i.
Nothing is asked of γ beyond that law. The determinant hypothesis on δ is exactly what
keeps σ out of the conclusion: σ is then trivial on every power of δ, so the scalar z
passes through the outer slash unconjugated. For δ in the image of SL(2, ℤ) that
hypothesis is det_pos_of_mem_slGL.
The level-lowering step of the conductor theorem is the case δ = T, with γ the conjugate
conjScale l γ' c supplied by the T-factorisation of Γ₀(N / l).
CuspForm.mcast does not change the pointwise values of a cusp form: the CuspForm
analogue of Mathlib's ModularForm.mcast_apply, which Mathlib does not yet provide.
GL(2, ℝ)-level coercion lemma for CuspForm.translate; Mathlib's
CuspForm.coe_translate is specialized to SL(2, ℤ) arguments.
The weight-k slash action of -I is multiplication by (-1) ^ k: -I acts trivially
on ℍ and has determinant 1, so the only surviving factor is its automorphy factor
denom (-I) z ^ (-k) = (-1) ^ (-k) = (-1) ^ k.
This is the source of every parity constraint on weights and nebentypus characters.
The weight-k slash formula at a positive-determinant matrix, free of the σ twist:
f ∣[k] g = fun τ ↦ f (g • τ) * |det g| ^ (k - 1) * denom g τ ^ (-k).
Mathlib's ModularForm.slash_def carries σ g around the value of f, which is complex
conjugation on the negative-determinant branch. ModularForm.SL_slash_def drops it because
det = 1; here positivity alone is what does it.
The pointwise form of ModularForm.slash_def_of_det_pos, matching
ModularForm.SL_slash_apply.
Scalars pass through the slash of a positive-determinant matrix. Mathlib's
ModularForm.smul_slash carries the twist σ A c, which is complex conjugation when the
determinant is negative, so scalars do not commute past a general slash. On the positive branch
they do.
This is what makes a Hecke operator ℂ-linear: it is a sum of slashes by representatives of
positive determinant. The scalar generality matches ModularForm.SL_smul_slash.
A real scalar matrix acts trivially on the upper half-plane, and its weight-k
slash is multiplication by the scalar to the power k - 2.
The calculation generalizes AINTLIB's slash_diag_scalar (Chris Birkbeck, Apache-2.0), in
LeanModularForms/HeckeRIngs/GL2/Unified/NebentypusHeckeRingHom.lean at commit
2baa76f742bdb4fb8ee323fabba41203bd390e08.
A form invariant under the image in GL(2, ℝ) of a subgroup Γ ≤ SL(2, ℤ) is fixed by
the weight-k slash action of every element of Γ — the invariance condition read back at
the SL₂(ℤ) level, where congruence subgroups are given.
The transformation law of a slash-invariant form under a positive-determinant element.
For γ ∈ Γ with 0 < det γ, f (γ • τ) = |det γ| ^ (1 - k) * denom γ τ ^ k * f τ.
Mathlib's SlashInvariantForm.slash_action_eqn'' is the det = 1 case, in which the first
factor is 1 and disappears.
Translation by positive-determinant matrices #
Translation by g ∈ GL₂(ℝ) with 0 < det g as a linear map on modular forms.
Equations
- ModularForm.translateₗ g hg = { toFun := fun (f : ModularForm Γ k) => ModularForm.translate f g, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Changing the invariance group #
Throughout, Γ' ≤ Γ are subgroups of GL(2, ℝ).
Two arithmetic subgroups of GL(2, ℝ) have the same cusps, namely those of SL(2, ℤ).
This is the standard way to supply the cusp hypothesis of ModularForm.ofSlashInvariant.
A modular form for Γ is a modular form for any subgroup Γ' ≤ Γ: slash invariance
restricts, and a cusp of Γ' is a cusp of Γ, so the boundedness conditions restrict too.
Equations
- ModularForm.ofLe h f = { toFun := ⇑f, slash_action_eq' := ⋯, holo' := ⋯, bdd_at_cusps' := ⋯ }
Instances For
Restriction of the invariance group, as a ℂ-linear map.
Equations
- ModularForm.ofLeₗ h = { toFun := ModularForm.ofLe h, map_add' := ⋯, map_smul' := ⋯ }
Instances For
A modular form for Γ' which is slash invariant under a group Γ every cusp of which is a
cusp of Γ' is a modular form for Γ. The hypothesis hc on cusps is what makes this
legitimate: without it, enlarging the invariance group can create cusps at which nothing is
known. Two arithmetic groups always satisfy it
(Subgroup.IsArithmetic.isCusp_of_isCusp).
Equations
- ModularForm.ofSlashInvariant hc f hf = { toFun := ⇑f, slash_action_eq' := hf, holo' := ⋯, bdd_at_cusps' := ⋯ }
Instances For
For Γ' ≤ Γ with every cusp of Γ a cusp of Γ', a modular form for Γ' comes from a
modular form for Γ exactly when it is Γ-slash invariant.
A cusp form for Γ' which is slash invariant under a group Γ every cusp of which is a
cusp of Γ' is a cusp form for Γ; see ModularForm.ofSlashInvariant for why the cusp
hypothesis is needed.
Equations
- CuspForm.ofSlashInvariant hc f hf = { toFun := ⇑f, slash_action_eq' := hf, holo' := ⋯, zero_at_cusps' := ⋯ }
Instances For
For Γ' ≤ Γ with every cusp of Γ a cusp of Γ', a cusp form for Γ' comes from a cusp
form for Γ exactly when it is Γ-slash invariant.
Constant forms at nonzero weight #
A constant slash-invariant form of nonzero weight vanishes if its group contains a determinant-one matrix with nonzero lower-left entry. No holomorphy or cusp condition is needed.
This extends Mathlib's level-one SlashInvariantForm.wt_eq_zero_of_eq_const: the nonconstant
automorphy factor, rather than invariance under S itself, excludes a nonzero constant.
A group with finite-index intersection with the modular group contains a matrix in that intersection with nonzero lower-left entry.
A slash-invariant form of nonzero weight whose group has finite-index intersection with the modular group cannot be a nonzero constant.