Documentation

TauCeti.NumberTheory.ModularForms.HeckeSlash.Operators

Hecke operators T_n on modular forms #

For a positive integer n, the classical Hecke operator T_n at level Γ₁(N) is the slash operator attached to the double coset

Γ₁(N) · diag(1, n) · Γ₁(N).

The double coset and its slash operator already exist as diagCosetGamma1 N n and heckeSlashGamma1ModularFormEnd; this file packages their composite under the uniform name heckeTNat. The cusp-form operator heckeTCuspNat uses the same double coset, so preservation of cuspidality is inherited from the general slash construction rather than reproved.

The computation rules identify T_p at a prime with the single good-and-bad-prime formula from HeckeSlash/Prime.lean. When p ∣ N, they identify it with the upper-triangular operator, the operator modern sources call U_p. Thus the normalization is fixed by the abstract double coset before the multiplicativity and prime-power recurrences are developed.

Main definitions #

Main results #

Provenance #

The definition follows heckeT_n in the AINTLIB LeanModularForms project (HeckeRIngs/GL2/HeckeT_n.lean, Chris Birkbeck, Apache-2.0, commit 2baa76f742bdb4fb8ee323fabba41203bd390e08). That source assembles prime-power operators first; here the already-constructed double-coset action gives the equivalent canonical definition directly. No proof code is transcribed.

References #

The Hecke operator T_n on M_k(Γ₁(N)). It is the slash operator of the canonical double coset Γ₁(N) · diag(1, n) · Γ₁(N).

The NeZero n binder records the classical convention that Hecke operators are indexed by positive integers, and it is not optional: at n = 0 the entry tuple ![1, 0] fails the positivity side condition of natDiagGL, which then returns its junk value 1, so the double coset degenerates to Γ₁(N) itself and the construction would silently be the identity operator rather than T₀. The binder is _-named because only the statements below use it — the body is the same slash operator either way, and it is the index that is being constrained.

Equations
Instances For

    The Hecke operator T_n on S_k(Γ₁(N)). This is the cusp-form operator attached to the same double coset as heckeTNat; in particular, it records that T_n preserves cuspidality. The index is nonzero for the reason explained on heckeTNat.

    Equations
    Instances For

      The defining equation of heckeTNat.

      theorem HeckeRing.GL2.heckeTNat_congr {N : ℕ} [NeZero N] (k : ℤ) {n m : ℕ} [NeZero n] [NeZero m] (h : n = m) :

      Transport T_n along an equality of indices. The NeZero side condition is a Prop, so the two operators are the same object; the lemma exists because rewriting the index inside heckeTNat would leave the instance argument stranded at the old index.

      theorem HeckeRing.GL2.heckeTCuspNat_congr {N : ℕ} [NeZero N] (k : ℤ) {n m : ℕ} [NeZero n] [NeZero m] (h : n = m) :

      Transport the cusp-form T_n along an equality of indices.

      @[simp]

      On underlying functions, T_n is the slash sum of its defining double coset.

      @[simp]

      On underlying functions, the cusp-form T_n is the same slash sum.

      @[simp]

      The modular-form and cusp-form T_n operators agree under the coercion S_k(Γ₁(N)) → M_k(Γ₁(N)).

      A cusp form satisfies a T_n eigen-relation exactly when its underlying modular form does. The two operators are defined by the same slash sum.

      The classical T_p formula on modular forms, at every prime.

      The classical T_p formula on cusp forms, at every prime.

      At a positive index dividing the level, T_p is the upper-triangular operator. This is the operator modern sources denote by U_p.

      At a positive index dividing the level, the cusp-form T_p is the upper-triangular operator.

      @[simp]
      theorem HeckeRing.GL2.heckeTNat_one {N : ℕ} [NeZero N] (k : ℤ) :
      heckeTNat k 1 = 1

      The first Hecke operator on modular forms is the identity.

      @[simp]

      The first Hecke operator on cusp forms is the identity.