The Fricke operator preserves the old subspace #
Let N = d * e * M. The Fricke matrix W_N = !![0, -1; N, 0] moves past the level-raising
matrix diag(d, 1) at the cost of exchanging d for the complementary factor e:
diag(d, 1) · W_N = d · (W_M · diag(e, 1)),
both sides being !![0, -d; N, 0]. Since the scalar matrix d · I slashes as multiplication
by d ^ (k - 2), the Fricke operator carries a level-raise V_d f of a form f of level M
to a multiple of the level-raise V_e (W_M f), where W_M is the Fricke operator of the
lower level:
W_N (V_d f) = d⁻¹ · e ^ (k - 1) · V_e (W_M f).
As e * M divides N and M is still a proper divisor of N, the right-hand side is again
old. So W_N maps the old subspace S_k(Γ₁(N))ᵒˡᵈ into itself, and, being invertible, onto
itself; the same holds for the normalized operator 𝒲_N, a nonzero multiple of W_N. This is
the Fricke transport of the degeneracy maps and of the old subspace (Diamond–Shurman §5.6,
Miyake §4.6): combined with the Petersson unitarity of 𝒲_N, it makes the new subspace, the
Petersson complement of the old one, stable under 𝒲_N.
Main results #
TauCeti.scaleGL_mul_frickeGL: the matrix identitydiag(d, 1) · W_N = d · W_M · diag(e, 1).TauCeti.slash_scaleGL_slash_frickeGL: its slash form, for an arbitrary function.TauCeti.frickeOperator_levelRaise,TauCeti.frickeOperatorCusp_levelRaise,TauCeti.normalizedFrickeOperator_levelRaise,TauCeti.normalizedFrickeOperatorCusp_levelRaise: the Fricke operator, raw and normalized, on modular and on cusp forms, intertwinesV_dat levelNwithV_eat levelM.TauCeti.frickeOperatorCusp_mem_cuspFormsOld,TauCeti.normalizedFrickeOperatorCusp_mem_cuspFormsOld: the old subspace is stable.TauCeti.cuspFormsOld_map_frickeOperatorCusp,TauCeti.cuspFormsOld_map_normalizedFrickeOperatorCusp: the old subspace is carried onto itself.
References #
- F. Diamond and J. Shurman, A First Course in Modular Forms, §5.6 and §5.10.
- Miyake, Modular forms, Section 4.6.
- A. O. L. Atkin and J. Lehner, Hecke operators on
Γ₀(m), Math. Ann. 185 (1970), 134–160.
Moving the Fricke matrix past a level-raise #
Slashing by diag(d, 1) and then by W_N is d ^ (k - 2) times slashing by W_M and
then by diag(e, 1), whenever N = d * e * M. This is scaleGL_mul_frickeGL read through the
weight-k slash action, for a function not assumed to be a form.
The Fricke operator on a level-raise #
The Fricke operator intertwines the level-raises on modular forms: for N = d * e * M
and a modular form f of level M, W_N (V_d f) = d⁻¹ · e ^ (k - 1) · V_e (W_M f), where W_N
and W_M are the Fricke operators of levels N and M.
The Fricke operator intertwines the level-raises: for N = d * e * M and a cusp form
f of level M, W_N (V_d f) = d⁻¹ · e ^ (k - 1) · V_e (W_M f), where W_N and W_M are the
Fricke operators of levels N and M.
The normalized Fricke operator intertwines the level-raises on modular forms: for
N = d * e * M, 𝒲_N (V_d f) = (√(d e)) ^ (2 - k) · d⁻¹ · e ^ (k - 1) · V_e (𝒲_M f).
The normalized Fricke operator intertwines the level-raises: for N = d * e * M,
𝒲_N (V_d f) = (√(d e)) ^ (2 - k) · d⁻¹ · e ^ (k - 1) · V_e (𝒲_M f). The scalar is
(e / d) ^ (k / 2); it is written through atkinLehnerNormalizer (d * e) k, the ratio of the
normalizers of 𝒲_N and 𝒲_M.
Stability of the old subspace #
The Fricke operator preserves the old subspace: W_N maps S_k(Γ₁(N))ᵒˡᵈ into itself.
A level-raise V_d f from a proper divisor level M, with d * M ∣ N, goes to a multiple of
V_e (W_M f) for the complementary e = N / (d * M) (frickeOperatorCusp_levelRaise), which is
again old.
The normalized Fricke operator preserves the old subspace: 𝒲_N maps
S_k(Γ₁(N))ᵒˡᵈ into itself, being a scalar multiple of W_N.
The Fricke operator carries the old subspace onto itself. It maps the old subspace into
itself (frickeOperatorCusp_mem_cuspFormsOld), and every old form is (frickeScalar N k)⁻¹
times the image of the old form W_N f, since W_N ∘ W_N = frickeScalar N k • id.
The normalized Fricke operator carries the old subspace onto itself: 𝒲_N maps it into
itself (normalizedFrickeOperatorCusp_mem_cuspFormsOld), and squares to the unit (-1) ^ k.