Diagonal coset representatives for the GL_n Hecke ring #
The double cosets T(a₁,...,aₙ) = SL_n(ℤ) · diag(a₁,...,aₙ) · SL_n(ℤ) attached to diagonal
matrices with positive integer entries, and the elementary divisor theorem for the arithmetic
Hecke triple: the map from positive divisibility chains a₁ ∣ a₂ ∣ ⋯ ∣ aₙ to double cosets
in SL_n(ℤ) \ Δ / SL_n(ℤ) is a bijection, so these classes span the Hecke ring freely.
Following Shimura, §3.2.
Ported from the AINTLIB LeanModularForms project
(LeanModularForms/HeckeRIngs/GLn/DiagonalCosets.lean,
Chris Birkbeck), on top of the matrix-level Smith normal form
Matrix.exists_smith_normal_form_of_det_pos and its uniqueness
Matrix.smith_normal_form_unique.
Main definitions #
natDiagGL: the diagonal matrixdiag(a₁,...,aₙ)as an element ofGL_n(ℚ).IsDvdChain: the divisibility conditiona i ∣ a jfori ≤ j.diagCoset: the double cosetSL_n(ℤ) · diag(a₁,...,aₙ) · SL_n(ℤ).diagElem: the Hecke ring elementT(a₁,...,aₙ), the coset with coefficient1.
Main results #
natDiagGL_const_eq_scalar,natDiagGL_const_mem_normalizer: a constant natural diagonal is scalar when positive, and normalizes every subgroup unconditionally.exists_diagonal_representative: every double coset of the arithmetic Hecke triple isdiagCoset afor a positive divisibility chaina(Smith normal form).diagCoset_bijective: positive divisibility chains biject with the double cosets.diagCosetEquiv: that bijection as an equivalence, the canonical index of the double cosets.span_diagElem_eq_top: the elementsT(a₁,...,aₙ)span the Hecke ring.diagElem_mul_of_mulMap_eq: the product criterionT(a) · T(b) = T(c), given that the coset decomposition multiplies intoT(c)alone and does so with multiplicity at most one. TheGL_nreading ofHeckeCosetModule.mul_single_single_of_mulMap_eq, which carries the argument at the level of arbitrary Hecke cosets and coefficients.
References #
The diagonal GL_n(ℚ) element diag(a₁,...,aₙ) with positive natural number entries.
Returns 1 (the identity matrix) when the positivity condition ∀ i, 0 < a i fails;
this is a junk value that simplifies the API by avoiding an explicit positivity argument.
Only positivity is needed for a meaningful value — a positive tuple that is not a
divisibility chain still names its genuine diagonal coset.
Equations
- HeckeRing.GLn.natDiagGL n a = if h : ∀ (i : Fin n), 0 < a i then TauCeti.diagGL fun (i : Fin n) => Units.mk0 ↑(a i) ⋯ else 1
Instances For
The integral witness of natDiagGL. natDiagGL n a is the entrywise cast of the
integral diagonal matrix with entries a.
natDiagGL_coe gives the same matrix as a ℚ-valued diagonal; this states it in the form the
integral-witness API asks for, so that mapGL_mul_coe_eq_intMatrix and its relatives can be
applied to a product with natDiagGL in the middle without re-deriving the cast each time.
Natural diagonal matrices commute, with no positivity hypothesis: on the positive branch
this is natDiagGL_mul and mul_comm of the entry tuples, and when either tuple fails positivity
that factor is the junk value 1, which commutes with everything.
The divisibility chain condition on natural-number sequences: entries divide all later entries.
Equivalent to the successive condition a₁ ∣ a₂ ∣ ⋯ ∣ aₙ by transitivity of divisibility.
Equations
- HeckeRing.GLn.IsDvdChain a = ∀ ⦃i j : Fin n⦄, i ≤ j → a i ∣ a j
Instances For
Elimination and introduction for the sealed definition IsDvdChain.
The pointwise product of two divisibility chains is a divisibility chain. Scaling by a
constant c is the case where b is the constant function, with hb := isDvdChain_const n c.
The positive divisibility chains of length n: the parameter space of the diagonal
double cosets.
Equations
Instances For
T(a₁,...,aₙ) = Γ · diag(a₁,...,aₙ) · Γ as a double coset of the arithmetic Hecke
triple. The positivity hypothesis belongs in lemmas, not the definition; the value is junk
when it fails.
Equations
Instances For
T(a₁,...,aₙ) as a Hecke ring element with coefficient 1.
Equations
Instances For
The determinant of a diagonal coset's chosen representative is ∏ i, a i, the same as
that of natDiagGL n a itself, since the two differ only by factors from SLₙ(ℤ).
This is the form in which determinants of products written through chosen double-coset representatives are computed, where the representative and not the diagonal matrix is what occurs.
Two diagonal double cosets are equal iff the underlying double cosets in GL_n(ℚ)
coincide.
Existence of diagonal representatives (Smith normal form): every double coset of the
arithmetic Hecke triple is diagCoset a for a positive divisibility chain
a₁ ∣ a₂ ∣ ⋯ ∣ aₙ.
Uniqueness of elementary divisors: the entries of a diagonal representative with a divisibility chain are uniquely determined by the double coset.
Classification of the double cosets (Shimura §3.2): positive divisibility chains biject with the double cosets of the arithmetic Hecke triple.
The canonical index of the double cosets (Shimura §3.2): the positive divisibility chains index the double cosets of the arithmetic Hecke triple, so they may be used directly as the index type and the inverse gives each coset its canonical diagonal.
Equations
- HeckeRing.GLn.diagCosetEquiv = Equiv.ofBijective (fun (a : HeckeRing.GLn.CanonicalDiagonal n) => HeckeRing.GLn.diagCoset ↑a) ⋯
Instances For
The Hecke ring of the arithmetic triple is spanned by the diagonal double coset elements
T(a₁,...,aₙ) with positive entries and divisibility chain.
The product criterion for diagonal Hecke elements. If every pair in the coset
decomposition of T(a) · T(b) multiplies into the single double coset T(c), and T(c)
occurs there with multiplicity at most one, then T(a) · T(b) = T(c).
This is the structure-constant computation shared by every "a product of diagonal elements
is again diagonal" result: the two hypotheses are all that vary between them. Both the
scalar product diagElem_const_mul (Shimura 3.17) and the coprime product
diagElem_mul_of_coprime (Shimura 3.16) are this lemma applied to their own inputs.