Cosets #
This file develops the basic theory of left and right cosets.
When G is a group and a : G, s : Set G, with  open scoped Pointwise we can write:
- the left coset of sbyaasa • s
- the right coset of sbyaasMulOpposite.op a • s(orop a • swithopen MulOpposite)
If instead G is an additive group, we can write (with  open scoped Pointwise still)
- the left coset of sbyaasa +ᵥ s
- the right coset of sbyaasAddOpposite.op a +ᵥ s(orop a • swithopen AddOpposite)
Main definitions #
- QuotientGroup.quotient s: the quotient type representing the left cosets with respect to a subgroup- s, for an- AddGroupthis is- QuotientAddGroup.quotient s.
- QuotientGroup.mk: the canonical map from- αto- α/sfor a subgroup- sof- α, for an- AddGroupthis is- QuotientAddGroup.mk.
Notation #
- G ⧸ His the quotient of the (additive) group- Gby the (additive) subgroup- H
TODO #
Properly merge with pointwise actions on sets, by renaming and deduplicating lemmas as appropriate.
The equivalence relation corresponding to the partition of a group by left cosets of a subgroup.
Equations
- QuotientGroup.leftRel s = MulAction.orbitRel (↥s.op) α
Instances For
The equivalence relation corresponding to the partition of a group by left cosets of a subgroup.
Equations
- QuotientAddGroup.leftRel s = AddAction.orbitRel (↥s.op) α
Instances For
Equations
- QuotientGroup.leftRelDecidable s x y = ⋯.mpr (inst✝ (x⁻¹ * y))
Equations
- QuotientAddGroup.leftRelDecidable s x y = ⋯.mpr (inst✝ (-x + y))
α ⧸ s is the quotient type representing the left cosets of s. If s is a normal subgroup,
α ⧸ s is a group
Equations
- QuotientGroup.instHasQuotientSubgroup = { quotient' := fun (s : Subgroup α) => Quotient (QuotientGroup.leftRel s) }
α ⧸ s is the quotient type representing the left cosets of s. If s is a
normal subgroup, α ⧸ s is a group
Equations
- QuotientAddGroup.instHasQuotientAddSubgroup = { quotient' := fun (s : AddSubgroup α) => Quotient (QuotientAddGroup.leftRel s) }
The equivalence relation corresponding to the partition of a group by right cosets of a subgroup.
Equations
- QuotientGroup.rightRel s = MulAction.orbitRel (↥s) α
Instances For
The equivalence relation corresponding to the partition of a group by right cosets of a subgroup.
Equations
- QuotientAddGroup.rightRel s = AddAction.orbitRel (↥s) α
Instances For
Equations
- QuotientGroup.rightRelDecidable s x y = ⋯.mpr (inst✝ (y * x⁻¹))
Equations
- QuotientAddGroup.rightRelDecidable s x y = ⋯.mpr (inst✝ (y + -x))
Right cosets are in bijection with left cosets.
Equations
- QuotientGroup.quotientRightRelEquivQuotientLeftRel s = { toFun := Quotient.map' (fun (g : α) => g⁻¹) ⋯, invFun := Quotient.map' (fun (g : α) => g⁻¹) ⋯, left_inv := ⋯, right_inv := ⋯ }
Instances For
Right cosets are in bijection with left cosets.
Equations
- QuotientAddGroup.quotientRightRelEquivQuotientLeftRel s = { toFun := Quotient.map' (fun (g : α) => -g) ⋯, invFun := Quotient.map' (fun (g : α) => -g) ⋯, left_inv := ⋯, right_inv := ⋯ }
Instances For
The canonical map from a group α to the quotient α ⧸ s.
Equations
- ↑a = Quotient.mk'' a
Instances For
The canonical map from an AddGroup α to the quotient α ⧸ s.
Equations
- ↑a = Quotient.mk'' a
Instances For
Equations
Equations
Alias of QuotientGroup.induction_on.
Equations
- QuotientAddGroup.instInhabitedQuotientAddSubgroup s = { default := ↑0 }
If two subgroups M and N of G are equal, their quotients are in bijection.
Equations
- Subgroup.quotientEquivOfEq h = { toFun := Quotient.map' id ⋯, invFun := Quotient.map' id ⋯, left_inv := ⋯, right_inv := ⋯ }
Instances For
If two subgroups M and N of G are equal, their quotients are in bijection.
Equations
- AddSubgroup.quotientEquivOfEq h = { toFun := Quotient.map' id ⋯, invFun := Quotient.map' id ⋯, left_inv := ⋯, right_inv := ⋯ }