Documentation

Mathlib.GroupTheory.DoubleCoset

Double cosets #

This file defines double cosets for two subgroups H K of a group G and the quotient of G by the double coset relation, i.e. H \ G / K. We also prove that G can be written as a disjoint union of the double cosets and that if one of H or K is the trivial group (i.e. ) then this is the usual left or right quotient of a group by a subgroup.

Main definitions #

def DoubleCoset.doubleCoset {α : Type u_2} [Mul α] (a : α) (s t : Set α) :
Set α

The double coset as an element of Set α corresponding to s a t

Equations
Instances For
    theorem DoubleCoset.doubleCoset_eq_image2 {α : Type u_2} [Mul α] (a : α) (s t : Set α) :
    doubleCoset a s t = Set.image2 (fun (x1 x2 : α) => x1 * a * x2) s t
    theorem DoubleCoset.mem_doubleCoset {α : Type u_2} [Mul α] {s t : Set α} {a b : α} :
    b doubleCoset a s t xs, yt, b = x * a * y
    theorem DoubleCoset.mem_doubleCoset_self {G : Type u_1} [Group G] (H K : Subgroup G) (a : G) :
    a doubleCoset a H K
    theorem DoubleCoset.doubleCoset_eq_of_mem {G : Type u_1} [Group G] {H K : Subgroup G} {a b : G} (hb : b doubleCoset a H K) :
    doubleCoset b H K = doubleCoset a H K
    theorem DoubleCoset.mem_doubleCoset_of_not_disjoint {G : Type u_1} [Group G] {H K : Subgroup G} {a b : G} (h : ¬Disjoint (doubleCoset a H K) (doubleCoset b H K)) :
    b doubleCoset a H K
    theorem DoubleCoset.eq_of_not_disjoint {G : Type u_1} [Group G] {H K : Subgroup G} {a b : G} (h : ¬Disjoint (doubleCoset a H K) (doubleCoset b H K)) :
    doubleCoset a H K = doubleCoset b H K
    def DoubleCoset.setoid {G : Type u_1} [Group G] (H K : Set G) :

    The setoid defined by the double_coset relation

    Equations
    Instances For
      def DoubleCoset.Quotient {G : Type u_1} [Group G] (H K : Set G) :
      Type u_1

      Quotient of G by the double coset relation, i.e. H \ G / K

      Equations
      Instances For
        theorem DoubleCoset.rel_iff {G : Type u_1} [Group G] {H K : Subgroup G} {x y : G} :
        (setoid H K) x y aH, bK, y = a * x * b
        theorem DoubleCoset.bot_rel_eq_leftRel {G : Type u_1} [Group G] (H : Subgroup G) :
        (setoid H) = (QuotientGroup.leftRel H)
        def DoubleCoset.quotToDoubleCoset {G : Type u_1} [Group G] (H K : Subgroup G) (q : Quotient H K) :
        Set G

        Create a double coset out of an element of H \ G / K

        Equations
        Instances For
          @[reducible, inline]
          abbrev DoubleCoset.mk {G : Type u_1} [Group G] (H K : Subgroup G) (a : G) :
          Quotient H K

          Map from G to H \ G / K

          Equations
          Instances For
            theorem DoubleCoset.eq {G : Type u_1} [Group G] (H K : Subgroup G) (a b : G) :
            mk H K a = mk H K b hH, kK, b = h * a * k
            theorem DoubleCoset.out_eq' {G : Type u_1} [Group G] (H K : Subgroup G) (q : Quotient H K) :
            mk H K (Quotient.out q) = q
            theorem DoubleCoset.mk_out_eq_mul {G : Type u_1} [Group G] (H K : Subgroup G) (g : G) :
            ∃ (h : G) (k : G), h H k K Quotient.out (mk H K g) = h * g * k
            theorem DoubleCoset.mk_eq_of_doubleCoset_eq {G : Type u_1} [Group G] {H K : Subgroup G} {a b : G} (h : doubleCoset a H K = doubleCoset b H K) :
            mk H K a = mk H K b
            theorem DoubleCoset.disjoint_out {G : Type u_1} [Group G] {H K : Subgroup G} {a b : Quotient H K} :
            a bDisjoint (doubleCoset (Quotient.out a) H K) (doubleCoset (Quotient.out b) H K)
            theorem DoubleCoset.union_quotToDoubleCoset {G : Type u_1} [Group G] (H K : Subgroup G) :
            ⋃ (q : Quotient H K), quotToDoubleCoset H K q = Set.univ
            theorem DoubleCoset.doubleCoset_union_rightCoset {G : Type u_1} [Group G] (H K : Subgroup G) (a : G) :
            ⋃ (k : K), MulOpposite.op (a * k) H = doubleCoset a H K
            theorem DoubleCoset.doubleCoset_union_leftCoset {G : Type u_1} [Group G] (H K : Subgroup G) (a : G) :
            ⋃ (h : H), (h * a) K = doubleCoset a H K
            theorem DoubleCoset.left_bot_eq_left_quot {G : Type u_1} [Group G] (H : Subgroup G) :
            Quotient H = (G H)