Documentation

TauCeti.NumberTheory.HeckeRing.GL2.Gamma0.UpperUnit

The upper-left unit character of Δ₀(N) #

An element of Δ₀(N) is an integral matrix, upper-triangular modulo N, whose upper-left entry is a unit mod N. Reducing that entry gives a map

Δ₀(N) → (ZMod N)ˣ

which is multiplicative, because the lower-left entry vanishes mod N and so the cross term in the product drops out. This is the Δ₀(N) counterpart of Mathlib's Gamma0Map, which takes the lower-right entry of an element of Γ₀(N); on Γ₀(N) the two are inverse to one another, since ad ≡ 1 there.

Composing with χ : (ZMod N)ˣ →* ℂˣ gives the twisting character of the χ-twisted Hecke ring. It is not an extension of the nebentypus: Delta0UpperUnit_mapGL says that on Γ₀(N) the composite χ ∘ Delta0UpperUnit restricts to the inverse of χ ∘ (Gamma0Map N).toHomUnits, which is the character modFormCharSpace is defined by.

The inverse is the convention, not an accident. The twisted double-coset operator divides by the character — each representative contributes χ(·)⁻¹ • (f ∣[k] ·) — so the value that has to be attached to a monoid element is the reciprocal of the one attached to a group element acting on forms. Reading Delta0UpperUnit as an extension of the nebentypus and dropping the inverse would negate every twist downstream.

Main definitions #

Main results #

References #

@[simp]

On Γ₀(N) the upper-left unit inverts Gamma0Map. The determinant is one and the lower-left entry vanishes mod N, so ad ≡ 1: the upper-left unit of γ viewed in Δ₀(N) is the inverse of the lower-right unit Mathlib's Gamma0Map records.

So Delta0UpperUnit does not extend the nebentypus along Gamma0Map; it restricts to the inverse of it. That is the convention the twisted Hecke ring wants, because the twisted double-coset operator divides by the character rather than multiplying by it.

The adjugate of a Γ₀(N) matrix again lies in Δ₀(N): it is the image of γ⁻¹, which is in Γ₀(N) because that is a subgroup.

@[simp]

The adjugate half of the comparison. On Γ₀(N) the upper-left unit of the adjugate is Gamma0Map itself, not its inverse: the adjugate is the image of γ⁻¹, and Delta0UpperUnit_mapGL inverts once more. Together the two pin down both faces of the character.