Documentation

TauCeti.NumberTheory.ModularForms.HeckeSlash.Trace

Hecke slash sums as traces #

A double-coset operator is the trace of a translate. The rational cosets used by HeckeRing.GL2.heckeSlashSum and the real cosets used by Mathlib's trace correspond under extension of scalars. Consequently the two constructions agree, with no extra determinant factor: both use the arithmetic slash action.

This comparison allows the Petersson adjunction for traces of translates to be applied to Hecke operators already constructed from rational double cosets.

The trace of a form depends only on its underlying function and its level, not on the type the form is packaged in (TauCeti.SlashInvariantForm.trace_eq_of_eq_of_coe_eq). This is what lets a trace of a translate be compared with another one whose level is equal but not syntactically so, as happens when the translating matrix is changed by an element normalizing the level. When that element multiplies on the right, it comes out of the trace as a slash (TauCeti.SlashInvariantForm.coe_trace_translate_mul_of_mem_normalizer). The lemma TauCeti.trace_coe_cuspForm records the compatibility of the cusp-form and modular-form trace constructions.

References #

@[simp]
theorem TauCeti.trace_coe_cuspForm {k : โ„ค} {๐’ข โ„‹ : Subgroup (GL (Fin 2) โ„)} {F : Type u_1} [FunLike F UpperHalfPlane โ„‚] [CuspFormClass F ๐’ข k] [๐’ข.IsFiniteRelIndex โ„‹] (f : F) :

Coercing a cusp-form trace to a modular form agrees with the modular-form trace. This is class-polymorphic in the source form, just as Mathlib's two trace constructions are.

theorem TauCeti.SlashInvariantForm.trace_eq_of_eq_of_coe_eq {k : โ„ค} {๐’ขโ‚ ๐’ขโ‚‚ โ„‹ : Subgroup (GL (Fin 2) โ„)} (h : ๐’ขโ‚ = ๐’ขโ‚‚) [๐’ขโ‚.IsFiniteRelIndex โ„‹] [๐’ขโ‚‚.IsFiniteRelIndex โ„‹] {Fโ‚ : Type u_1} {Fโ‚‚ : Type u_2} [FunLike Fโ‚ UpperHalfPlane โ„‚] [SlashInvariantFormClass Fโ‚ ๐’ขโ‚ k] [FunLike Fโ‚‚ UpperHalfPlane โ„‚] [SlashInvariantFormClass Fโ‚‚ ๐’ขโ‚‚ k] {fโ‚ : Fโ‚} {fโ‚‚ : Fโ‚‚} (hf : โ‡‘fโ‚ = โ‡‘fโ‚‚) :
SlashInvariantForm.trace โ„‹ fโ‚ = SlashInvariantForm.trace โ„‹ fโ‚‚

The trace sees only the underlying function and the level. Two slash-invariant forms with the same underlying function, for levels that are equal (though perhaps not syntactically), have the same trace.

Translating by a normalizing element commutes with the trace. If a normalizes the level โ„‹, the trace of the translate of f by x a is the slash by a of the trace of the translate by x. The cosets of the two traces correspond under conjugation by a.

@[simp]

Coercing the cusp-form trace of a translate agrees with tracing the corresponding translated modular form. Like trace_coe_cuspForm, this is class-polymorphic in the source form.

A finite rational double-coset decomposition gives the finite relative index needed to trace a translate after extension of scalars to โ„.

theorem TauCeti.heckeSlashSum_eq_coe_trace_translate {ฮ“โ‚ ฮ“โ‚‚ : Subgroup (GL (Fin 2) โ„š)} {ฮด : GL (Fin 2) โ„š} {ฮ” : Submonoid (GL (Fin 2) โ„š)} (k : โ„ค) (D : HeckeCoset ฮ” ฮ“โ‚ ฮ“โ‚‚) [Finite (DoubleCoset.DecompQuotient ฮ“โ‚‚ ฮ“โ‚ (โ†‘(Quotient.out D))โปยน)] (hฮด : ฮด โˆˆ DoubleCoset.doubleCoset โ†‘(Quotient.out D) โ†‘ฮ“โ‚ โ†‘ฮ“โ‚‚) {๐’ข โ„‹ : Subgroup (GL (Fin 2) โ„)} (hฮ“โ‚ : Subgroup.map (Matrix.GeneralLinearGroup.map (algebraMap โ„š โ„)) ฮ“โ‚ = ๐’ข) (hฮ“โ‚‚ : Subgroup.map (Matrix.GeneralLinearGroup.map (algebraMap โ„š โ„)) ฮ“โ‚‚ = โ„‹) {F : Type u_1} [FunLike F UpperHalfPlane โ„‚] [SlashInvariantFormClass F ๐’ข k] (f : F) :

The rational slash sum equals the trace of the translate by any representative of the same double coset. This statement needs only slash invariance, and allows different source and target groups.

The operator attached to ฮ“โ‚(N) diag(1,n) ฮ“โ‚(N) is the trace of the translate by diag(1,n), with no additional normalization factor. The formula holds for every positive index, including indices divisible by primes in the level.