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 #
setoid: The double coset relation defined by two subgroupsH KofG.DoubleCoset.quotient: The quotient ofGby the double coset relation, i.e,H \ G / 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)
:
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))
:
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))
:
The setoid defined by the double_coset relation
Equations
- DoubleCoset.setoid H K = Setoid.ker fun (x : G) => DoubleCoset.doubleCoset x H K
Instances For
Quotient of G by the double coset relation, i.e. H \ G / K
Equations
- DoubleCoset.Quotient H K = Quotient (DoubleCoset.setoid H K)
Instances For
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
- DoubleCoset.quotToDoubleCoset H K q = DoubleCoset.doubleCoset (Quotient.out q) ↑H ↑K
Instances For
@[reducible, inline]
Map from G to H \ G / K
Equations
- DoubleCoset.mk H K a = Quotient.mk'' a
Instances For
Equations
- DoubleCoset.instInhabitedQuotientCoeSubgroup H K = { default := DoubleCoset.mk H K 1 }
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)
:
theorem
DoubleCoset.disjoint_out
{G : Type u_1}
[Group G]
{H K : Subgroup G}
{a b : Quotient ↑H ↑K}
:
a ≠ b → Disjoint (doubleCoset (Quotient.out a) ↑H ↑K) (doubleCoset (Quotient.out b) ↑H ↑K)
theorem
DoubleCoset.doubleCoset_union_rightCoset
{G : Type u_1}
[Group G]
(H K : Subgroup G)
(a : G)
:
theorem
DoubleCoset.doubleCoset_union_leftCoset
{G : Type u_1}
[Group G]
(H K : Subgroup G)
(a : G)
: