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 Doset.doset {α : 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 Doset.doset_eq_image2 {α : Type u_2} [Mul α] (a : α) (s t : Set α) :
    doset a s t = Set.image2 (fun (x1 x2 : α) => x1 * a * x2) s t
    theorem Doset.mem_doset {α : Type u_2} [Mul α] {s t : Set α} {a b : α} :
    b doset a s t xs, yt, b = x * a * y
    theorem Doset.mem_doset_self {G : Type u_1} [Group G] (H K : Subgroup G) (a : G) :
    a doset a H K
    theorem Doset.doset_eq_of_mem {G : Type u_1} [Group G] {H K : Subgroup G} {a b : G} (hb : b doset a H K) :
    doset b H K = doset a H K
    theorem Doset.mem_doset_of_not_disjoint {G : Type u_1} [Group G] {H K : Subgroup G} {a b : G} (h : ¬Disjoint (doset a H K) (doset b H K)) :
    b doset a H K
    theorem Doset.eq_of_not_disjoint {G : Type u_1} [Group G] {H K : Subgroup G} {a b : G} (h : ¬Disjoint (doset a H K) (doset b H K)) :
    doset a H K = doset b H K
    def Doset.setoid {G : Type u_1} [Group G] (H K : Set G) :

    The setoid defined by the double_coset relation

    Equations
    Instances For
      def Doset.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 Doset.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 Doset.bot_rel_eq_leftRel {G : Type u_1} [Group G] (H : Subgroup G) :
        (setoid H) = (QuotientGroup.leftRel H)
        theorem Doset.rel_bot_eq_right_group_rel {G : Type u_1} [Group G] (H : Subgroup G) :
        (setoid H ) = (QuotientGroup.rightRel H)
        def Doset.quotToDoset {G : Type u_1} [Group G] (H K : Subgroup G) (q : Quotient H K) :
        Set G

        Create a doset out of an element of H \ G / K

        Equations
        Instances For
          @[reducible, inline]
          abbrev Doset.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
            instance Doset.instInhabitedQuotientCoeSubgroup {G : Type u_1} [Group G] (H K : Subgroup G) :
            Inhabited (Quotient H K)
            Equations
            theorem Doset.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 Doset.out_eq' {G : Type u_1} [Group G] (H K : Subgroup G) (q : Quotient H K) :
            mk H K (Quotient.out q) = q
            theorem Doset.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
            @[deprecated Doset.mk_out_eq_mul (since := "2024-10-19")]
            theorem Doset.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

            Alias of Doset.mk_out_eq_mul.

            theorem Doset.mk_eq_of_doset_eq {G : Type u_1} [Group G] {H K : Subgroup G} {a b : G} (h : doset a H K = doset b H K) :
            mk H K a = mk H K b
            theorem Doset.disjoint_out {G : Type u_1} [Group G] {H K : Subgroup G} {a b : Quotient H K} :
            a bDisjoint (doset (Quotient.out a) H K) (doset (Quotient.out b) H K)
            @[deprecated Doset.disjoint_out (since := "2024-10-19")]
            theorem Doset.disjoint_out' {G : Type u_1} [Group G] {H K : Subgroup G} {a b : Quotient H K} :
            a bDisjoint (doset (Quotient.out a) H K) (doset (Quotient.out b) H K)

            Alias of Doset.disjoint_out.

            theorem Doset.union_quotToDoset {G : Type u_1} [Group G] (H K : Subgroup G) :
            ⋃ (q : Quotient H K), quotToDoset H K q = Set.univ
            theorem Doset.doset_union_rightCoset {G : Type u_1} [Group G] (H K : Subgroup G) (a : G) :
            ⋃ (k : K), MulOpposite.op (a * k) H = doset a H K
            theorem Doset.doset_union_leftCoset {G : Type u_1} [Group G] (H K : Subgroup G) (a : G) :
            ⋃ (h : H), (h * a) K = doset a H K
            theorem Doset.left_bot_eq_left_quot {G : Type u_1} [Group G] (H : Subgroup G) :
            Quotient H = (G H)