Hecke Rings: Multiplication #
Shimura's multiplicity heckeMultiplicity, the multiplication finsupp m, the Mul instance
on 𝕋 P ℤ,
and the NonUnitalNonAssocSemiring instance. Proves that HeckeCoset.one is the identity element.
Two HeckeCoset elements are equal iff their toSets are equal.
The stabilizer quotient for the identity double coset is trivial.
The decomposition quotient for HeckeCoset.one is nonempty.
The decomposition quotient for HeckeCoset.one is a subsingleton.
The map sending a pair of coset representatives (σ_i, τ_j) to the double coset
of their product H(σ_i τ_j)H.
Equations
- HeckeRing.mulMap P g₁ g₂ i = ⟦⟨↑(Quotient.out i.1) * ↑g₁ * (↑(Quotient.out i.2) * ↑g₂), ⋯⟩⟧
Instances For
Shimura's multiplicity (Proposition 3.2): heckeMultiplicity(g₁, g₂, d) counts pairs
(i,j) such that σᵢ τⱼ H = ξ H.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The finite set of double cosets appearing in the product D1 * D2.
Equations
- HeckeRing.mulSupport P g₁ g₂ = Finset.image (HeckeRing.mulMap P g₁ g₂) ⊤
Instances For
If σ_i τ_j H = ξ H then the double coset of σ_i τ_j equals
that of ξ.
When the first-component representatives agree, the second-component representatives must also agree (by left-cancellation on the common prefix).
When j.out * g₂ ∈ H, the second factor collapses and
first-component injectivity follows from coset disjointness.
The multiplicity heckeMultiplicity is nonzero for double cosets in the
multiplication support.
The multiplicity heckeMultiplicity is zero for double cosets outside the
multiplication support.
A multiplicity that is both at most one and positive must equal one.
The multiplicity heckeMultiplicity is positive for double cosets in the
multiplication support.
If h₁ * g₁ * (h₂ * g₂) ∈ HdH (with h₁, h₂ ∈ H), then ⟦d⟧ ∈ mulSupport g₁ g₂.
Avoids manual construction of decomposition quotient elements.
The multiplication finsupp: m(g₁, g₂) is the formal sum
Σ_d heckeMultiplicity(g₁, g₂, d) · d
encoding the product of two double cosets.
Equations
- HeckeRing.m P g₁ g₂ = { support := HeckeRing.mulSupport P g₁ g₂, toFun := fun (d : HeckeRing.HeckeCoset P) => HeckeRing.heckeMultiplicity P g₁ g₂ d.rep, mem_support_toFun := ⋯ }
Instances For
Multiplication in the Hecke ring unfolds as a double Finsupp sum over multiplicities.
A basis element of the Hecke ring: TSingle D b is the formal sum b · [D].
Equations
- HeckeRing.TSingle P Z a b = Finsupp.single a b
Instances For
A basis element of the Hecke module: HeckeLeftCosetSingle m b is the formal sum
b · [m].
Equations
- HeckeRing.HeckeLeftCosetSingle P Z a b = Finsupp.single a b
Instances For
Shimura's notation: T⦃D⦄ is the basis element [HgH] in the Hecke ring,
corresponding to the double coset D with coefficient 1.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Shimura's notation: T⦃D, a⦄ is the element a · [HgH] in the Hecke ring.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If all pairs under mulMap land on a single double coset D_out, then
heckeMultiplicity vanishes on every other coset.
When heckeMultiplicity equals one on a single output coset and vanishes elsewhere,
the multiplication finsupp is a singleton.
The off-diagonal multiplicity for right multiplication by HeckeCoset.one is zero.
Right multiplication by HeckeCoset.one acts as the identity:
m(g₁, one.rep) = δ_{⟦g₁⟧}.
The off-diagonal multiplicity for left multiplication by HeckeCoset.one is zero.
Left multiplication by HeckeCoset.one acts as the identity:
m(one.rep, g₁) = δ_{⟦g₁⟧}.
The Hecke ring is a non-unital non-associative semiring (distributivity and zero laws).
Equations
- One or more equations did not get rendered due to their size.