Documentation

TauCeti.NumberTheory.HeckeRing.Multiplication

Hecke rings: the convolution product #

The convolution product HeckeCosetModule Δ H₁ H₂ R × HeckeCosetModule Δ H₂ H₃ R → HeckeCosetModule Δ H₁ H₃ R of Hecke coset modules with coefficients in a semiring R, following Shimura, Chapter 3. On basis elements the product is [D₁] * [D₂] = ∑_D m(D₁, D₂; D) [D], where the structure constants m are Shimura's multiplicities cast into R. On the diagonal H₁ = H₂ = H₃ this is the multiplication of the Hecke ring.

Vendored from the in-review mathlib4 PR #41277 (Chris Birkbeck), per the ModularForms roadmap's dependency policy; migrate to Mathlib and delete this file when that stack merges.

Main definitions #

Main results #

noncomputable def HeckeCosetModule.structureConstants {G : Type u_1} [Group G] {Δ : Submonoid G} (R : Type u_2) [Semiring R] (H₁ H₂ H₃ : Subgroup G) [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] (g₁ g₂ : Δ) :
HeckeCosetModule Δ H₁ H₃ R

The structure constants of the Hecke product: structureConstants H₁ H₂ H₃ R g₁ g₂ is the formal sum ∑_D m(g₁, g₂; D) [D] over mixed double cosets, with Shimura's multiplicities cast into R.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem HeckeCosetModule.structureConstants_apply {G : Type u_1} [Group G] {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} (R : Type u_2) [Semiring R] [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] (g₁ g₂ : Δ) (D : HeckeCoset Δ H₁ H₃) :
    (structureConstants R H₁ H₂ H₃ g₁ g₂) D = (DoubleCoset.multiplicity H₁ H₂ H₃ g₁ g₂ D.rep)
    theorem HeckeCosetModule.structureConstants_eq_single {G : Type u_1} [Group G] {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} (R : Type u_2) [Semiring R] [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] {g₁ g₂ : Δ} {D : HeckeCoset Δ H₁ H₃} (hone : DoubleCoset.multiplicity H₁ H₂ H₃ g₁ g₂ D.rep = 1) (hzero : ∀ (A : HeckeCoset Δ H₁ H₃), D ADoubleCoset.multiplicity H₁ H₂ H₃ g₁ g₂ A.rep = 0) :
    structureConstants R H₁ H₂ H₃ g₁ g₂ = single R D 1

    The structure constants collapse to one basis element when the multiplicity does. Given that the multiplicity at D is one and vanishes at every other coset, g₁ * g₂ has D's basis element for its structure constants. Every "a product of basis elements is again a basis element" result in this development reduces to supplying these two facts.

    theorem HeckeCosetModule.support_structureConstants_subset {G : Type u_1} [Group G] {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} (R : Type u_2) [Semiring R] [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] (g₁ g₂ : Δ) :
    (structureConstants R H₁ H₂ H₃ g₁ g₂).supportFinset.image (HeckeCoset.mulMap H₁ H₂ H₃ g₁ g₂) Finset.univ

    The support of the structure constants is contained in the image of mulMap.

    noncomputable def HeckeCosetModule.mul {G : Type u_1} [Group G] {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} (R : Type u_2) [Semiring R] [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] (f : HeckeCosetModule Δ H₁ H₂ R) (g : HeckeCosetModule Δ H₂ H₃ R) :
    HeckeCosetModule Δ H₁ H₃ R

    The convolution product of Hecke coset modules, defined via the structure constants. The diagonal case is the multiplication of the Hecke ring; see the Mul (𝕋 Δ H R) instance.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem HeckeCosetModule.mul_eq_sum {G : Type u_1} [Group G] {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} (R : Type u_2) [Semiring R] [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] (f : HeckeCosetModule Δ H₁ H₂ R) (g : HeckeCosetModule Δ H₂ H₃ R) :
      mul R f g = Finsupp.sum f fun (D₁ : HeckeCoset Δ H₁ H₂) (b₁ : R) => Finsupp.sum g fun (D₂ : HeckeCoset Δ H₂ H₃) (b₂ : R) => b₁ b₂ structureConstants R H₁ H₂ H₃ D₁.rep D₂.rep
      @[instance_reducible]
      noncomputable instance HeckeCosetModule.instMulHeckeRing {G : Type u_1} [Group G] {Δ : Submonoid G} (R : Type u_2) [Semiring R] {H : Subgroup G} [IsHeckeTriple Δ H H] :
      Mul (HeckeRing Δ H R)

      The multiplication of the Hecke ring: the diagonal case of the convolution product HeckeCosetModule.mul.

      Equations
      theorem HeckeCosetModule.mul_def {G : Type u_1} [Group G] {Δ : Submonoid G} (R : Type u_2) [Semiring R] {H : Subgroup G} [IsHeckeTriple Δ H H] (f g : HeckeRing Δ H R) :
      f * g = mul R f g
      theorem HeckeCosetModule.mul_single_single {G : Type u_1} [Group G] {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} (R : Type u_2) [Semiring R] [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] (D₁ : HeckeCoset Δ H₁ H₂) (D₂ : HeckeCoset Δ H₂ H₃) (a b : R) :
      mul R (single R D₁ a) (single R D₂ b) = a b structureConstants R H₁ H₂ H₃ D₁.rep D₂.rep

      The convolution product of two basis elements.

      theorem HeckeCosetModule.single_mul_single {G : Type u_1} [Group G] {Δ : Submonoid G} (R : Type u_2) [Semiring R] {H : Subgroup G} [IsHeckeTriple Δ H H] (D₁ D₂ : HeckeCoset Δ H H) (a b : R) :
      single R D₁ a * single R D₂ b = a b structureConstants R H H H D₁.rep D₂.rep

      The product of two basis elements of the Hecke ring.

      theorem HeckeCosetModule.mul_single_single_of_mulMap_eq {G : Type u_1} [Group G] {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} (R : Type u_2) [Semiring R] [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] (D₁ : HeckeCoset Δ H₁ H₂) (D₂ : HeckeCoset Δ H₂ H₃) (D₃ : HeckeCoset Δ H₁ H₃) (hmulMap : ∀ (p : DoubleCoset.DecompQuotient H₁ H₂ D₁.rep × DoubleCoset.DecompQuotient H₂ H₃ D₂.rep), HeckeCoset.mulMap H₁ H₂ H₃ D₁.rep D₂.rep p = D₃) (hmul : DoubleCoset.multiplicity H₁ H₂ H₃ D₁.rep D₂.rep D₃.rep 1) :
      mul R (single R D₁ 1) (single R D₂ 1) = single R D₃ 1

      The single-basis-element product criterion. If every pair in the coset decomposition of D₁ · D₂ multiplies into the single double coset D₃, and D₃ occurs there with multiplicity at most one, then the product of the two basis elements is the third basis element.

      Stated at the natural level of the convolution: three subgroups and mul R, so it applies to the whole HeckeCosetModule bimodule API and not only to the ring case H₁ = H₂ = H₃. This is the structure-constant computation shared by every "a product of basis elements is again a basis element" result; only the two hypotheses vary between them.

      theorem HeckeCosetModule.mul_add {G : Type u_1} [Group G] {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} (R : Type u_2) [Semiring R] [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] (f : HeckeCosetModule Δ H₁ H₂ R) (g h : HeckeCosetModule Δ H₂ H₃ R) :
      mul R f (g + h) = mul R f g + mul R f h

      The convolution product distributes over addition on the right.

      theorem HeckeCosetModule.add_mul {G : Type u_1} [Group G] {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} (R : Type u_2) [Semiring R] [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] (f g : HeckeCosetModule Δ H₁ H₂ R) (h : HeckeCosetModule Δ H₂ H₃ R) :
      mul R (f + g) h = mul R f h + mul R g h

      The convolution product distributes over addition on the left.

      theorem HeckeCosetModule.zero_mul {G : Type u_1} [Group G] {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} (R : Type u_2) [Semiring R] [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] (f : HeckeCosetModule Δ H₂ H₃ R) :
      mul R 0 f = 0

      The convolution product vanishes on the left zero.

      theorem HeckeCosetModule.mul_zero {G : Type u_1} [Group G] {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} (R : Type u_2) [Semiring R] [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] (f : HeckeCosetModule Δ H₁ H₂ R) :
      mul R f 0 = 0

      The convolution product vanishes on the right zero.

      @[instance_reducible]
      noncomputable instance HeckeCosetModule.instNonUnitalNonAssocSemiringHeckeRing {G : Type u_1} [Group G] {Δ : Submonoid G} (R : Type u_2) [Semiring R] {H : Subgroup G} [IsHeckeTriple Δ H H] :

      The Hecke ring is a non-unital non-associative semiring (distributivity and zero laws).

      Equations