Documentation

TauCeti.NumberTheory.ModularForms.HeckeSlash.Degeneracy

Tₚ and the degeneracy operator V_d #

The degeneracy operator V_d : S_k(Γ₁(M)) → S_k(Γ₁(N)), (V_d f) τ = f (d τ), raises the level along d * M ∣ N. This file proves that it commutes with the Hecke operator Tₚ at every prime p coprime to N, and computes Tₚ (V_d f) at the primes dividing N. These are the inputs to the statement that Tₚ preserves the old subspace at every prime, and to the stability of the new subspace at primes coprime to N.

The shape of the proof at primes coprime to the level #

Tₚ at a prime is heckeSlashUpperTri k p f + (⟨p⟩ f) ∣[k] diag(p, 1), and V_d is — up to the normalising scalar d ^ (k - 1) — the slash by diag(d, 1). So the theorem splits into a statement about each summand, and each is proved in the diag(d, 1)-slash form, where the normalising scalars are absent:

Main results #

The primes dividing the level #

At an index n all of whose prime factors divide N, the operator T_n on S_k(Γ₁(N)) reads off the coefficients a_{n m} (qExpansion_coeff_heckeTCuspNat_of_primeFactors_subset), and aₘ(V_d f) = a_{m/d}(f) when d ∣ m and 0 otherwise. The three formulas above are identities of q-expansions, turned into identities of cusp forms by CuspForm.qExpansion_injective. In the last one the diamond term of the level-M recurrence aₘ(Tₚ f) = a_{p m}(f) + p ^ (k - 1) a_{m/p}(⟨p⟩ f) there is what the correction V_{d p} (⟨p⟩ f) removes.

Provenance #

The mathematics follows heckeT_p_all_levelRaise_comm and its supporting lemmas in the AINTLIB LeanModularForms project, file LeanModularForms/HeckeRIngs/GL2/Newforms/LevelRaiseComm.lean, commit 2baa76f742bdb4fb8ee323fabba41203bd390e08, Apache-2.0, Chris Birkbeck, lines 45–311. No proof code is transcribed: that development works with bare coset functions heckeT_p_ut and heckeT_p_fun and a Γ₁-shift matrix of its own, and splits Tₚ on whether p divides the level, whereas here Tₚ is the single-formula operator of HeckeSlash/Operators.lean, the shift is Mathlib's ModularGroup.T, and the level-raise is the general TauCeti.CuspForm.levelRaise of ModularForms/Degeneracy.lean, stated at d * M ∣ N rather than at d * M = N. The reindexing half of that argument (source lines 66–190) lives with the upper-triangular sum in HeckeSlash/UpperTri/Periodic.lean, which carries its own note.

References #

The shift matrix #

Tₚ and V_d #

Tₚ commutes with the degeneracy operator V_d. For d * M ∣ N and a prime p coprime to N, raising the level of f and then applying Tₚ at level N agrees with applying Tₚ at level M and then raising the level.

Coprimality is not decoration: at p ∣ N the diamond term of Tₚ vanishes at level N but need not vanish at level M, and b ↦ d b mod p stops being a permutation once p ∣ d.

T_n and V_d at indices supported on the level #

T_n undoes the degeneracy operator V_n: for n * e * M ∣ N, T_n (V_{n e} g) = V_e g at level N. Every prime factor of n divides N, so T_n reads off the coefficients a_{n m}, and those of V_{n e} g are the coefficients of V_e g. At e = 1 this is the classical U_p V_p = 1.

T_n commutes with V_d when n is supported on the source level and prime to d: for d * M ∣ N, n coprime to d and every prime factor of n dividing M, T_n (V_d g) = V_d (T_n g). At both levels T_n reads off the coefficients a_{n m}, and coprimality makes d ∣ n m equivalent to d ∣ m.

This is the bad-index counterpart of heckeTCuspNat_levelRaise.

Tₚ on V_d g at a prime dividing the level but not d: for p prime to d with d * p * M ∣ N, Tₚ (V_d g) = V_d (Tₚ g) - p ^ (k - 1) • V_{d p} (⟨p⟩ g). At level N the operator Tₚ is Uₚ, reading off a_{p m}; at level M the diamond term of the recurrence for Tₚ is exactly what the degeneracy image V_{d p} (⟨p⟩ g) cancels. When p ∣ M that diamond term is 0, and this reduces to heckeTCuspNat_levelRaise_of_primeFactors_subset.