Documentation

LeanPool.LeanModularForms.HeckeRIngs.AbstractHeckeRing.Basic

Hecke Rings: Basic Definitions #

Basic definitions for Hecke rings following Shimura Ch. 3: HeckePair, double coset spaces HeckeCoset and HeckeLeftCoset, the Hecke ring type 𝕋, and foundational double coset lemmas.

theorem HeckeRing.conjAct_smul_coe_eq {G : Type u_1} [Group G] (H : Subgroup G) (g : G) :

The conjugation action on H as a set product: gHg⁻¹ = {g} * H * {g⁻¹}.

theorem HeckeRing.conjAct_smul_elt_eq {G : Type u_1} [Group G] (H : Subgroup G) (h : H) :

Conjugation by an element of H fixes H.

theorem HeckeRing.leftCoset_eq_of_subset {G : Type u_1} [Group G] (H : Subgroup G) (a b : G) (h : {a} * H {b} * H) :
{a} * H = {b} * H

A left coset contained in another left coset is equal to it.

structure HeckeRing.HeckePair (G : Type u_2) [Group G] :
Type u_2

An arithmetic group pair (H, Δ) consisting of a subgroup H and a submonoid Δ of a group G, satisfying HΔ ≤ commensurator(H).

Instances For
    def HeckeRing.dcRel {G : Type u_1} [Group G] (P : HeckePair G) (g h : P.Δ) :

    Two elements of Δ define the same double coset HgH = HhH.

    Equations
    Instances For
      @[implicit_reducible]
      instance HeckeRing.dcSetoid {G : Type u_1} [Group G] (P : HeckePair G) :
      Setoid P.Δ

      The setoid on Δ identifying elements with the same double coset.

      Equations
      @[reducible, inline]
      abbrev HeckeRing.HeckeCoset {G : Type u_1} [Group G] (P : HeckePair G) :
      Type u_1

      A Hecke double coset: an equivalence class of Δ-elements under HgH = HhH. This is the basis type for the Hecke ring.

      Equations
      Instances For
        def HeckeRing.lcRel {G : Type u_1} [Group G] (P : HeckePair G) (g h : P.Δ) :

        Two elements of Δ define the same left coset gH = hH.

        Equations
        Instances For
          @[implicit_reducible]
          instance HeckeRing.lcSetoid {G : Type u_1} [Group G] (P : HeckePair G) :
          Setoid P.Δ

          The setoid on Δ identifying elements with the same left coset.

          Equations
          def HeckeRing.HeckeLeftCoset {G : Type u_1} [Group G] (P : HeckePair G) :
          Type u_1

          A Hecke left coset: an equivalence class of Δ-elements under gH = hH.

          Equations
          Instances For
            noncomputable def HeckeRing.HeckeCoset.toSet {G : Type u_1} [Group G] {P : HeckePair G} (D : HeckeCoset P) :
            Set G

            The underlying set HgH, well-defined on the quotient.

            Equations
            Instances For
              noncomputable def HeckeRing.HeckeCoset.rep {G : Type u_1} [Group G] {P : HeckePair G} (D : HeckeCoset P) :
              P.Δ

              A representative g : Δ (via Quotient.out).

              Equations
              Instances For
                theorem HeckeRing.HeckeCoset.eq_iff {G : Type u_1} [Group G] {P : HeckePair G} (g h : P.Δ) :

                ⟦g⟧ = ⟦h⟧ ↔ HgH = HhH.

                @[simp]
                theorem HeckeRing.HeckeCoset.toSet_mk {G : Type u_1} [Group G] {P : HeckePair G} (g : P.Δ) :

                The carrier set of ⟦g⟧ is definitionally HgH.

                theorem HeckeRing.HeckeCoset.mem_toSet_mk {G : Type u_1} [Group G] {P : HeckePair G} (g : P.Δ) (x : G) :

                Membership in toSet ⟦g⟧ is membership in the double coset HgH.

                theorem HeckeRing.HeckeCoset.ext_toSet {G : Type u_1} [Group G] {P : HeckePair G} {D₁ D₂ : HeckeCoset P} (h : D₁.toSet = D₂.toSet) :
                D₁ = D₂

                If two HeckeCosets have the same toSet, they are equal.

                theorem HeckeRing.HeckeCoset.toSet_eq_rep {G : Type u_1} [Group G] {P : HeckePair G} (D : HeckeCoset P) :

                The carrier set equals the double coset of the representative.

                theorem HeckeRing.HeckeCoset.rep_mem {G : Type u_1} [Group G] {P : HeckePair G} (D : HeckeCoset P) :
                D.rep D.toSet

                The representative lies in its double coset.

                theorem HeckeRing.HeckeCoset.doubleCoset_eq_of_mem {G : Type u_1} [Group G] {P : HeckePair G} {g : P.Δ} {x : G} (hx : x DoubleCoset.doubleCoset g P.H P.H) :

                If x ∈ HgH, then HxH = HgH. The fundamental double coset absorption lemma.

                theorem HeckeRing.HeckeCoset.eq_mk_of_mem {G : Type u_1} [Group G] {P : HeckePair G} {g₁ g₂ : P.Δ} (h : g₁ DoubleCoset.doubleCoset g₂ P.H P.H) :
                g₁ = g₂

                ⟦g₁⟧ = ⟦g₂⟧ when g₁ is in the double coset of g₂.

                The identity double coset H1H = H.

                Equations
                Instances For
                  theorem HeckeRing.HeckeCoset.ind {G : Type u_1} [Group G] {P : HeckePair G} {motive : HeckeCoset PProp} (h : ∀ (g : P.Δ), motive g) (D : HeckeCoset P) :
                  motive D

                  Induction: to prove something for all double cosets, prove it for ⟦g⟧.

                  theorem HeckeRing.HeckeCoset.ind₂ {G : Type u_1} [Group G] {P : HeckePair G} {motive : HeckeCoset PHeckeCoset PProp} (h : ∀ (g₁ g₂ : P.Δ), motive g₁ g₂) (D₁ D₂ : HeckeCoset P) :
                  motive D₁ D₂

                  Two-argument induction.

                  theorem HeckeRing.HeckeCoset.one_rep_mem_H {G : Type u_1} [Group G] (P : HeckePair G) :
                  (one P).rep P.H

                  The representative of HeckeCoset.one belongs to H.

                  noncomputable def HeckeRing.HeckeLeftCoset.toSet {G : Type u_1} [Group G] {P : HeckePair G} (D : HeckeLeftCoset P) :
                  Set G

                  The underlying set gH, well-defined on the quotient.

                  Equations
                  Instances For
                    noncomputable def HeckeRing.HeckeLeftCoset.rep {G : Type u_1} [Group G] {P : HeckePair G} (D : HeckeLeftCoset P) :
                    P.Δ

                    A representative g : Δ.

                    Equations
                    Instances For

                      The identity left coset 1H = H.

                      Equations
                      Instances For
                        theorem HeckeRing.HeckeLeftCoset.ind {G : Type u_1} [Group G] {P : HeckePair G} {motive : HeckeLeftCoset PProp} (h : ∀ (g : P.Δ), motive g) (D : HeckeLeftCoset P) :
                        motive D

                        Induction for left cosets.

                        theorem HeckeRing.doset_mul_left_eq_self {G : Type u_1} [Group G] (P : HeckePair G) (h : P.H) (g : G) :
                        DoubleCoset.doubleCoset (h * g) P.H P.H = DoubleCoset.doubleCoset g P.H P.H

                        Left-multiplying the representative by an element of H does not change the double coset.

                        theorem HeckeRing.DoubleCoset.doubleCoset_mul_right_eq_self {G : Type u_1} [Group G] (P : HeckePair G) (h : P.H) (g : G) :
                        DoubleCoset.doubleCoset (g * h) P.H P.H = DoubleCoset.doubleCoset g P.H P.H

                        Right-multiplying the representative by an element of H does not change the double coset.

                        theorem HeckeRing.DoubleCoset.doubleCoset_mul_assoc {G : Type u_1} [Group G] (H : Subgroup G) (f g h : G) :
                        DoubleCoset.doubleCoset (f * g * h) H H = DoubleCoset.doubleCoset (f * (g * h)) H H

                        Associativity of group multiplication lifts to double coset representatives.

                        theorem HeckeRing.smul_eq_singleton_mul {G : Type u_1} [Group G] (s : Set G) (g : G) :
                        g s = {g} * s

                        Scalar multiplication by a group element is the same as singleton set multiplication.

                        theorem HeckeRing.set_eq_iUnion_leftCosets {G : Type u_1} [Group G] (H K : Subgroup G) (hK : K H) :
                        H = ⋃ (i : H K.subgroupOf H), (Quotient.out i) K

                        A subgroup H is the union of left cosets of any sub-subgroup K ≤ H.

                        The conjugate subgroup gHg⁻¹ is closed under multiplication.

                        The intersection H ∩ gHg⁻¹ acts trivially on gHg⁻¹ by left multiplication.

                        theorem HeckeRing.mul_singleton_right_cancel {G : Type u_1} [Group G] (g : G) (K L : Set G) (h : K * {g} = L * {g}) :
                        K = L

                        Right multiplication by a singleton is cancellative.

                        theorem HeckeRing.DoubleCoset.doubleCoset_eq_iUnion_leftCosets {G : Type u_1} [Group G] (H : Subgroup G) (g : G) :
                        DoubleCoset.doubleCoset g H H = ⋃ (i : H (ConjAct.toConjAct g H).subgroupOf H), ((Quotient.out i) * g) H

                        A double coset HgH decomposes as a disjoint union of left cosets of H.

                        theorem HeckeRing.doubleCoset_mul_doubleCoset_left {G : Type u_1} [Group G] (H : Subgroup G) (g h : G) :

                        The product of two double cosets simplifies using H * H = H on the left.

                        theorem HeckeRing.doubleCoset_mul_doubleCoset_right {G : Type u_1} [Group G] (H : Subgroup G) (g h : G) :

                        The product of two double cosets simplifies using H * H = H on the right.

                        theorem HeckeRing.doubleCoset_mul_eq_iUnion_doubleCoset {G : Type u_1} [Group G] (H : Subgroup G) (g h : G) :
                        DoubleCoset.doubleCoset g H H * DoubleCoset.doubleCoset h H H = ⋃ (i : H (ConjAct.toConjAct h H).subgroupOf H), DoubleCoset.doubleCoset (g * (Quotient.out i) * h) H H

                        The set-theoretic product of two double cosets is a union of double cosets.

                        theorem HeckeRing.DoubleCoset.doubleCoset_one_mul {G : Type u_1} [Group G] (H : Subgroup G) (h : G) :
                        DoubleCoset.doubleCoset h H H = ⋃ (x : H (ConjAct.toConjAct h H).subgroupOf H), DoubleCoset.doubleCoset h H H

                        The double coset HhH is a constant union indexed by the trivial quotient.

                        @[reducible, inline]
                        abbrev HeckeRing.𝕋 {G : Type u_1} [Group G] (P : HeckePair G) (Z : Type u_2) [CommRing Z] :
                        Type (max u_2 u_1)

                        The Hecke ring type: formal Z-linear combinations of double cosets HeckeCoset P. Changed from def to abbrev for transparency in instance resolution (Lean 4.29+).

                        Equations
                        Instances For
                          @[reducible, inline]
                          abbrev HeckeRing.HeckeModule {G : Type u_1} [Group G] (P : HeckePair G) (Z : Type u_2) [CommRing Z] :
                          Type (max u_2 u_1)

                          The Hecke module type: formal Z-linear combinations of left cosets HeckeLeftCoset P. Changed from def to abbrev for transparency in instance resolution (Lean 4.29+).

                          Equations
                          Instances For
                            @[reducible, inline]
                            abbrev HeckeRing.decompQuot {G : Type u_1} [Group G] (P : HeckePair G) (g : P.Δ) :
                            Type u_1

                            The decomposition quotient H / (H ∩ gHg⁻¹) for a concrete g : Δ. Indexes the left cosets in the decomposition of HgH.

                            Equations
                            Instances For
                              @[implicit_reducible]
                              noncomputable instance HeckeRing.instFintypeDecompQuot {G : Type u_1} [Group G] (P : HeckePair G) (g : P.Δ) :

                              The decomposition quotient is finite because Δ ≤ commensurator(H).

                              Equations
                              theorem HeckeRing.delta_mul_mem {G : Type u_1} [Group G] (H : Subgroup G) (Δ : Submonoid G) (i : H) (a b : Δ) (h₀ : H.toSubmonoid Δ) :
                              a * i * b Δ

                              Products of the form a · h · b with h ∈ H, a, b ∈ Δ remain in Δ.

                              @[implicit_reducible]
                              noncomputable instance HeckeRing.instAddCommGroup𝕋 {G : Type u_1} [Group G] (P : HeckePair G) (Z : Type u_2) [CommRing Z] :

                              The additive commutative group structure on the Hecke ring.

                              Equations
                              @[implicit_reducible]
                              noncomputable instance HeckeRing.instAddCommGroupHeckeModule {G : Type u_1} [Group G] (P : HeckePair G) (Z : Type u_2) [CommRing Z] :

                              The additive commutative group structure on the Hecke module.

                              Equations