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 subgroups, for anAddGroupthis isQuotientAddGroup.quotient s.QuotientGroup.mk: the canonical map fromαtoα/sfor a subgroupsofα, for anAddGroupthis isQuotientAddGroup.mk.
Notation #
G ⧸ His the quotient of the (additive) groupGby the (additive) subgroupH
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 := ⋯ }