|
| 1 | +/- |
| 2 | +Copyright (c) 2026 Chris Birkbeck. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Chris Birkbeck |
| 5 | +-/ |
| 6 | +module |
| 7 | + |
| 8 | +public import Mathlib.Algebra.Group.Finsupp |
| 9 | +public import Mathlib.GroupTheory.Commensurable |
| 10 | +public import Mathlib.GroupTheory.DoubleCoset |
| 11 | + |
| 12 | +/-! |
| 13 | +# Hecke rings: definitions |
| 14 | +
|
| 15 | +This file introduces the abstract Hecke ring of a *Hecke pair* `(H, Δ)` and, more generally, the |
| 16 | +Hecke coset modules attached to a triple `(H₁, Δ, H₂)`, following [Shimura][shimura1971], |
| 17 | +Chapter 3, and [Krieg][krieg1990], Chapter I. It sets up the underlying types: the compatibility |
| 18 | +conditions `IsHeckeTriple Δ H₁ H₂` on a submonoid `Δ` of a group `G` and a pair of subgroups |
| 19 | +of `G`, the double-coset quotient `HeckeCoset Δ H₁ H₂` of `Δ` by `H₁gH₂ = H₁hH₂`, and the Hecke |
| 20 | +coset module `HeckeCosetModule Δ H₁ H₂ Z` of formal finitely-supported linear combinations of |
| 21 | +double cosets. |
| 22 | +The convolution product `HeckeCosetModule Δ H₁ H₂ Z × HeckeCosetModule Δ H₂ H₃ Z → |
| 23 | +HeckeCosetModule Δ H₁ H₃ Z` and the ring structure on the diagonal Hecke ring `𝕋 Δ H Z` are |
| 24 | +developed in later files. |
| 25 | +
|
| 26 | +The relevance of the submonoid `Δ` may not be immediately obvious; a natural example is |
| 27 | +`H = GL₂(ℤ)` inside `G = GL₂(ℚ)` with `Δ` the submonoid of integral matrices with nonzero |
| 28 | +determinant, which is the Hecke pair underlying the classical Hecke operators `T_n`. Mixed |
| 29 | +subgroups `H₁ ≠ H₂` arise for Hecke operators between different levels, e.g. `H₁ = Γ₀(N)` and |
| 30 | +`H₂ = Γ₀(M)` inside the same `Δ`. |
| 31 | +
|
| 32 | +## Main definitions |
| 33 | +
|
| 34 | +* `IsHeckeTriple Δ H₁ H₂`: `(H₁, Δ, H₂)` is a Hecke triple, i.e. `H₁ ≤ Δ`, `H₂ ≤ Δ`, |
| 35 | + `Commensurable H₁ H₂` and `Δ ≤ commensurator H₂`, making the double cosets `H₁\Δ/H₂` finite |
| 36 | + unions of left cosets. The classical Hecke pair `(H, Δ)` is the diagonal case |
| 37 | + `IsHeckeTriple Δ H H`. |
| 38 | +* `HeckeCoset Δ H₁ H₂`: the quotient of `Δ` by the relation `H₁gH₂ = H₁hH₂`, i.e. the double |
| 39 | + cosets `H₁\Δ/H₂` forming the basis of the Hecke coset module. |
| 40 | +* `HeckeCosetModule Δ H₁ H₂ Z`: the Hecke coset module with coefficients in `Z`, the |
| 41 | + finitely-supported `Z`-linear combinations of double cosets. |
| 42 | +* `HeckeRing Δ H Z`, notation `𝕋 Δ H Z`: the Hecke ring, the diagonal case |
| 43 | + `HeckeCosetModule Δ H H Z` of the Hecke coset module. |
| 44 | +
|
| 45 | +## Implementation notes |
| 46 | +
|
| 47 | +The data `(Δ, H₁, H₂)` enters unbundled, with the compatibility conditions collected in the |
| 48 | +Prop-valued class `IsHeckeTriple`: the types `HeckeCoset Δ H₁ H₂` and `HeckeCosetModule Δ H₁ H₂ Z` |
| 49 | +are built from the data alone and depend on no proofs, and a single ambient `Δ` shared by all |
| 50 | +levels |
| 51 | +(as in [Shimura][shimura1971]) means products of double cosets over different subgroups, |
| 52 | +`H₁g₁H₂ * H₂g₂H₃ ⊆ Δ`, need no compatibility hypotheses. The conditions are only needed for the |
| 53 | +finiteness of the coset decompositions, which enters through the `Fintype` instance on |
| 54 | +`DoubleCoset.DecompQuotient` in later files. Requiring `Δ` to be a submonoid rather than a |
| 55 | +subsemigroup loses no generality, since `H₁ ≤ Δ` already forces `1 ∈ Δ`. |
| 56 | +
|
| 57 | +## References |
| 58 | +
|
| 59 | +* [G. Shimura, *Introduction to the arithmetic theory of automorphic functions*][shimura1971] |
| 60 | +* [A. Krieg, *Hecke algebras*][krieg1990] |
| 61 | +-/ |
| 62 | + |
| 63 | +@[expose] public section |
| 64 | + |
| 65 | +open Subgroup Subgroup.Commensurable |
| 66 | +open scoped Pointwise |
| 67 | + |
| 68 | +variable {G : Type*} [Group G] |
| 69 | + |
| 70 | +/-- A *Hecke triple* `(H₁, Δ, H₂)`: the compatibility conditions on a submonoid `Δ` and a pair |
| 71 | +of subgroups `H₁, H₂` of `G` making the double cosets `H₁\Δ/H₂` finite unions of left cosets: |
| 72 | +both subgroups are contained in `Δ`, they are commensurable, and `Δ` commensurates them. The |
| 73 | +classical Hecke pair `(H, Δ)` of [Shimura][shimura1971], Chapter 3, is the diagonal case |
| 74 | +`IsHeckeTriple Δ H H`. -/ |
| 75 | +class IsHeckeTriple (Δ : Submonoid G) (H₁ H₂ : Subgroup G) : Prop where |
| 76 | + /-- The left subgroup is contained in `Δ`. -/ |
| 77 | + left_le : H₁.toSubmonoid ≤ Δ |
| 78 | + /-- The right subgroup is contained in `Δ`. -/ |
| 79 | + right_le : H₂.toSubmonoid ≤ Δ |
| 80 | + /-- The two subgroups are commensurable. -/ |
| 81 | + commensurable : Commensurable H₁ H₂ |
| 82 | + /-- The submonoid `Δ` lies in the commensurator of the right subgroup (hence, the subgroups |
| 83 | + being commensurable, also in that of the left one; see `le_commensurator_left`). -/ |
| 84 | + le_commensurator_right : Δ ≤ (commensurator H₂).toSubmonoid |
| 85 | + |
| 86 | +namespace IsHeckeTriple |
| 87 | + |
| 88 | +variable {Δ : Submonoid G} {H₁ H₂ H₃ : Subgroup G} |
| 89 | + |
| 90 | +/-- The Hecke triple `(H, Δ, H)` coming from a pair `(H, Δ)` with `H ≤ Δ ≤ commensurator H`. -/ |
| 91 | +theorem of_diagonal {H : Subgroup G} (h : H.toSubmonoid ≤ Δ) |
| 92 | + (hc : Δ ≤ (commensurator H).toSubmonoid) : IsHeckeTriple Δ H H := |
| 93 | + ⟨h, h, .refl H, hc⟩ |
| 94 | + |
| 95 | +/-- Elements of the left subgroup lie in `Δ`. -/ |
| 96 | +theorem mem_of_mem_left (H₂ : Subgroup G) [IsHeckeTriple Δ H₁ H₂] {x : G} (hx : x ∈ H₁) : x ∈ Δ := |
| 97 | + left_le H₂ hx |
| 98 | + |
| 99 | +/-- Elements of the right subgroup lie in `Δ`. -/ |
| 100 | +theorem mem_of_mem_right (H₁ : Subgroup G) [IsHeckeTriple Δ H₁ H₂] {x : G} (hx : x ∈ H₂) : x ∈ Δ := |
| 101 | + right_le H₁ hx |
| 102 | + |
| 103 | +/-- The submonoid `Δ` lies in the commensurator of the left subgroup. -/ |
| 104 | +theorem le_commensurator_left (H₂ : Subgroup G) [h : IsHeckeTriple Δ H₁ H₂] : |
| 105 | + Δ ≤ (commensurator H₁).toSubmonoid := by |
| 106 | + rw [h.commensurable.eq] |
| 107 | + exact h.le_commensurator_right |
| 108 | + |
| 109 | +/-- Elements of `Δ` lie in the commensurator of the right subgroup. -/ |
| 110 | +theorem mem_commensurator_right (H₁ : Subgroup G) [IsHeckeTriple Δ H₁ H₂] (g : Δ) : |
| 111 | + (g : G) ∈ commensurator H₂ := |
| 112 | + le_commensurator_right H₁ g.2 |
| 113 | + |
| 114 | +/-- Elements of `Δ` lie in the commensurator of the left subgroup. -/ |
| 115 | +theorem mem_commensurator_left (H₂ : Subgroup G) [IsHeckeTriple Δ H₁ H₂] (g : Δ) : |
| 116 | + (g : G) ∈ commensurator H₁ := |
| 117 | + le_commensurator_left H₂ g.2 |
| 118 | + |
| 119 | +/-- Conjugating the right subgroup of a Hecke triple `(H₁, Δ, H₂)` by an element of `Δ` gives a |
| 120 | +subgroup commensurable with the left one. -/ |
| 121 | +theorem commensurable_conjAct_right [IsHeckeTriple Δ H₁ H₂] (g : Δ) : |
| 122 | + Commensurable (ConjAct.toConjAct (g : G) • H₂) H₁ := by |
| 123 | + have hg : Commensurable (ConjAct.toConjAct (g : G) • H₂) H₂ := mem_commensurator_right H₁ g |
| 124 | + exact hg.trans (commensurable (Δ := Δ)).symm |
| 125 | + |
| 126 | +/-- Hecke coset module data compose. Not an instance, since the middle subgroup cannot be |
| 127 | +inferred from the goal. -/ |
| 128 | +theorem trans [IsHeckeTriple Δ H₁ H₂] [IsHeckeTriple Δ H₂ H₃] : |
| 129 | + IsHeckeTriple Δ H₁ H₃ := |
| 130 | + ⟨left_le H₂, right_le H₂, |
| 131 | + (commensurable (Δ := Δ) (H₁ := H₁) (H₂ := H₂)).trans |
| 132 | + (commensurable (Δ := Δ) (H₁ := H₂) (H₂ := H₃)), |
| 133 | + le_commensurator_right H₂⟩ |
| 134 | + |
| 135 | +/-- The left diagonal datum `(H₁, Δ, H₁)`. Not an instance, since `H₂` cannot be inferred. -/ |
| 136 | +theorem diag_left [IsHeckeTriple Δ H₁ H₂] : IsHeckeTriple Δ H₁ H₁ := |
| 137 | + ⟨left_le H₂, left_le H₂, .refl H₁, le_commensurator_left H₂⟩ |
| 138 | + |
| 139 | +/-- The right diagonal datum `(H₂, Δ, H₂)`. Not an instance, since `H₁` cannot be inferred. -/ |
| 140 | +theorem diag_right [IsHeckeTriple Δ H₁ H₂] : IsHeckeTriple Δ H₂ H₂ := |
| 141 | + ⟨right_le H₁, right_le H₁, .refl H₂, le_commensurator_right H₁⟩ |
| 142 | + |
| 143 | +end IsHeckeTriple |
| 144 | + |
| 145 | +/-- The setoid on `Δ` identifying elements with the same double coset `H₁gH₂ = H₁hH₂`, pulled |
| 146 | +back from `DoubleCoset.setoid` along the inclusion `Δ ↪ G`. |
| 147 | +
|
| 148 | +This is an `abbrev` rather than a global instance: the subgroups `H₁, H₂` cannot be inferred |
| 149 | +from the submonoid `Δ`, so this cannot participate in instance search (and a global instance |
| 150 | +would also create a `Setoid` diamond on `↥Δ` with the left-coset setoid). The quotient map is |
| 151 | +`HeckeCoset.mk`. -/ |
| 152 | +abbrev HeckeCoset.setoid (Δ : Submonoid G) (H₁ H₂ : Subgroup G) : Setoid Δ := |
| 153 | + (DoubleCoset.setoid (H₁ : Set G) H₂).comap Subtype.val |
| 154 | + |
| 155 | +/-- A Hecke double coset: an equivalence class of `Δ`-elements under `H₁gH₂ = H₁hH₂`. This is |
| 156 | +the basis type for the `HeckeCosetModule`. -/ |
| 157 | +def HeckeCoset (Δ : Submonoid G) (H₁ H₂ : Subgroup G) := Quotient (HeckeCoset.setoid Δ H₁ H₂) |
| 158 | + |
| 159 | +namespace HeckeCoset |
| 160 | + |
| 161 | +variable {Δ : Submonoid G} |
| 162 | + |
| 163 | +/-- The double coset `H₁gH₂` of an element `g : Δ`. -/ |
| 164 | +def mk (H₁ H₂ : Subgroup G) (g : Δ) : HeckeCoset Δ H₁ H₂ := |
| 165 | + Quotient.mk (setoid Δ H₁ H₂) g |
| 166 | + |
| 167 | +variable (Δ) in |
| 168 | +instance (H₁ H₂ : Subgroup G) : Inhabited (HeckeCoset Δ H₁ H₂) := ⟨mk H₁ H₂ ⟨1, Δ.one_mem⟩⟩ |
| 169 | + |
| 170 | +variable (Δ) in |
| 171 | +/-- The identity double coset `H1H = H` of the diagonal (Hecke pair) case. -/ |
| 172 | +instance (H : Subgroup G) : One (HeckeCoset Δ H H) := ⟨mk H H ⟨1, Δ.one_mem⟩⟩ |
| 173 | + |
| 174 | +lemma one_def (H : Subgroup G) : (1 : HeckeCoset Δ H H) = mk H H ⟨1, Δ.one_mem⟩ := rfl |
| 175 | + |
| 176 | +end HeckeCoset |
| 177 | + |
| 178 | +/-- The Hecke coset module with coefficients in `Z`: the finitely-supported `Z`-linear |
| 179 | +combinations of double cosets `H₁\Δ/H₂`. For `H₁ = H₂` this is the underlying module of the |
| 180 | +Hecke ring `𝕋 Δ H Z` (see `HeckeRing`). The coefficients `Z` need only carry a `Zero` for the |
| 181 | +type to make sense; algebraic structure is added by the instances below at the weakest level each |
| 182 | +requires. -/ |
| 183 | +def HeckeCosetModule (Δ : Submonoid G) (H₁ H₂ : Subgroup G) (Z : Type*) [Zero Z] := |
| 184 | + HeckeCoset Δ H₁ H₂ →₀ Z |
| 185 | + |
| 186 | +/-- The Hecke ring `𝕋 Δ H Z` with coefficients in `Z`: the diagonal Hecke coset module |
| 187 | +`HeckeCosetModule Δ H H Z`, the finitely-supported `Z`-linear combinations of double cosets |
| 188 | +`H\Δ/H`. The convolution product making it a ring is developed in later files. -/ |
| 189 | +abbrev HeckeRing (Δ : Submonoid G) (H : Subgroup G) (Z : Type*) [Zero Z] := |
| 190 | + HeckeCosetModule Δ H H Z |
| 191 | + |
| 192 | +@[inherit_doc] |
| 193 | +scoped[HeckeCosetModule] notation "𝕋" => HeckeRing |
| 194 | + |
| 195 | +namespace HeckeCosetModule |
| 196 | + |
| 197 | +variable (Δ : Submonoid G) (H₁ H₂ : Subgroup G) (Z : Type*) |
| 198 | + |
| 199 | +/-- Elements of `HeckeCosetModule Δ H₁ H₂ Z` are functions `HeckeCoset Δ H₁ H₂ → Z` (finitely |
| 200 | +supported). -/ |
| 201 | +instance [Zero Z] : FunLike (HeckeCosetModule Δ H₁ H₂ Z) (HeckeCoset Δ H₁ H₂) Z := |
| 202 | + inferInstanceAs (FunLike (HeckeCoset Δ H₁ H₂ →₀ Z) (HeckeCoset Δ H₁ H₂) Z) |
| 203 | + |
| 204 | +noncomputable instance [AddCommMonoid Z] : AddCommMonoid (HeckeCosetModule Δ H₁ H₂ Z) := |
| 205 | + inferInstanceAs (AddCommMonoid (HeckeCoset Δ H₁ H₂ →₀ Z)) |
| 206 | + |
| 207 | +noncomputable instance [AddCommGroup Z] : AddCommGroup (HeckeCosetModule Δ H₁ H₂ Z) := |
| 208 | + inferInstanceAs (AddCommGroup (HeckeCoset Δ H₁ H₂ →₀ Z)) |
| 209 | + |
| 210 | +/-- The sanctioned constructor of `HeckeCosetModule Δ H₁ H₂ Z` from a finitely-supported function |
| 211 | +on double cosets. Build elements through `of` rather than relying on the definitional unfolding |
| 212 | +`HeckeCosetModule Δ H₁ H₂ Z = (HeckeCoset Δ H₁ H₂ →₀ Z)`. -/ |
| 213 | +def of {Δ : Submonoid G} {H₁ H₂ : Subgroup G} {Z : Type*} [Zero Z] : |
| 214 | + (HeckeCoset Δ H₁ H₂ →₀ Z) ≃ HeckeCosetModule Δ H₁ H₂ Z := |
| 215 | + Equiv.refl _ |
| 216 | + |
| 217 | +@[simp] |
| 218 | +lemma of_apply {Δ : Submonoid G} {H₁ H₂ : Subgroup G} {Z : Type*} [Zero Z] |
| 219 | + (f : HeckeCoset Δ H₁ H₂ →₀ Z) (D : HeckeCoset Δ H₁ H₂) : of f D = f D := |
| 220 | + rfl |
| 221 | + |
| 222 | +@[ext] |
| 223 | +lemma ext {Δ : Submonoid G} {H₁ H₂ : Subgroup G} {Z : Type*} [Zero Z] |
| 224 | + {f g : HeckeCosetModule Δ H₁ H₂ Z} (h : ∀ D, f D = g D) : f = g := |
| 225 | + Finsupp.ext h |
| 226 | + |
| 227 | +end HeckeCosetModule |
0 commit comments