Double cosets #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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 writen 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 #
rel
: The double coset relation defined by two subgroupsH K
ofG
.double_coset.quotient
: The quotient ofG
by the double coset relation, i.e, ``H \ G / K`.
The setoid defined by the double_coset relation
Equations
- doset.setoid H K = setoid.ker (λ (x : G), doset x H K)
Quotient of G
by the double coset relation, i.e. H \ G / K
Equations
- doset.quotient H K = quotient (doset.setoid H K)
Instances for doset.quotient
theorem
doset.bot_rel_eq_left_rel
{G : Type u_1}
[group G]
(H : subgroup G) :
(doset.setoid ↑⊥ ↑H).rel = (quotient_group.left_rel H).rel
theorem
doset.rel_bot_eq_right_group_rel
{G : Type u_1}
[group G]
(H : subgroup G) :
(doset.setoid ↑H ↑⊥).rel = (quotient_group.right_rel H).rel
def
doset.quot_to_doset
{G : Type u_1}
[group G]
(H K : subgroup G)
(q : doset.quotient ↑H ↑K) :
set G
Create a doset out of an element of H \ G / K
Equations
- doset.quot_to_doset H K q = doset (quotient.out' q) ↑H ↑K
@[protected, instance]
def
doset.quotient.inhabited
{G : Type u_1}
[group G]
(H K : subgroup G) :
inhabited (doset.quotient ↑H ↑K)
Equations
- doset.quotient.inhabited H K = {default := doset.mk H K 1}
theorem
doset.out_eq'
{G : Type u_1}
[group G]
(H K : subgroup G)
(q : doset.quotient ↑H ↑K) :
doset.mk H K (quotient.out' q) = q
theorem
doset.disjoint_out'
{G : Type u_1}
[group G]
{H K : subgroup G}
{a b : doset.quotient H.carrier ↑K} :
theorem
doset.union_quot_to_doset
{G : Type u_1}
[group G]
(H K : subgroup G) :
(⋃ (q : doset.quotient ↑H ↑K), doset.quot_to_doset H K q) = set.univ