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 #
Subgroup.leftCosetEquivSubgroup: the natural bijection between a left coset and the subgroup, for anAddGroupthis isAddSubgroup.leftCosetEquivAddSubgroup.
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.
Equality of two right cosets s * a and s * b.
Equations
- RightCosetEquivalence s a b = (MulOpposite.op a • s = MulOpposite.op b • s)
Instances For
Equality of two right cosets s + a and s + b.
Equations
- RightAddCosetEquivalence s a b = (AddOpposite.op a +ᵥ s = AddOpposite.op b +ᵥ s)
Instances For
Alias of QuotientAddGroup.leftRel_prod.
Alias of QuotientAddGroup.rightRel_prod.
Given a subgroup s, the function that sends a subgroup t to the pair consisting of
its intersection with s and its image in the quotient α ⧸ s is strictly monotone, even though
it is not injective in general.
Given an additive subgroup s,
the function that sends an additive subgroup t to the pair consisting of
its intersection with s and its image in the quotient α ⧸ s
is strictly monotone, even though it is not injective in general.
The natural bijection between a left coset g * s and s.
Equations
Instances For
The natural bijection between the cosets g + s and s.
Equations
Instances For
The natural bijection between a right coset s * g and s.
Equations
Instances For
The natural bijection between the cosets s + g and s.
Equations
Instances For
A (non-canonical) bijection between an add_group α and the product (α/s) × s
Equations
- One or more equations did not get rendered due to their size.
Instances For
If H ≤ K, then G/H ≃ G/K × K/H constructively, using the provided right inverse
of the quotient map G → G/K. The classical version is Subgroup.quotientEquivProdOfLE.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If H ≤ K, then G/H ≃ G/K × K/H constructively, using the provided right inverse
of the quotient map G → G/K. The classical version is AddSubgroup.quotientEquivProdOfLE.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Alias of AddSubgroup.quotientEquivProdOfLE'.
If H ≤ K, then G/H ≃ G/K × K/H constructively, using the provided right inverse
of the quotient map G → G/K. The classical version is AddSubgroup.quotientEquivProdOfLE.
Instances For
Alias of AddSubgroup.quotientEquivProdOfLE'_apply.
If H ≤ K, then G/H ≃ G/K × K/H nonconstructively.
The constructive version is quotientEquivProdOfLE'.
Equations
Instances For
If H ≤ K, then G/H ≃ G/K × K/H nonconstructively. The
constructive version is quotientEquivProdOfLE'.
Equations
Instances For
Alias of AddSubgroup.quotientEquivProdOfLE.
If H ≤ K, then G/H ≃ G/K × K/H nonconstructively. The
constructive version is quotientEquivProdOfLE'.
Instances For
Alias of AddSubgroup.quotientEquivProdOfLE_apply.
If s ≤ t, then there is an embedding s ⧸ H.subgroupOf s ↪ t ⧸ H.subgroupOf t.
Equations
- Subgroup.quotientSubgroupOfEmbeddingOfLE H h = { toFun := Quotient.map' ⇑(Subgroup.inclusion h) ⋯, inj' := ⋯ }
Instances For
If s ≤ t, there is an embedding s ⧸ H.addSubgroupOf s ↪ t ⧸ H.addSubgroupOf t.
Equations
- AddSubgroup.quotientAddSubgroupOfEmbeddingOfLE H h = { toFun := Quotient.map' ⇑(AddSubgroup.inclusion h) ⋯, inj' := ⋯ }
Instances For
If s ≤ t, then there is a map H ⧸ s.subgroupOf H → H ⧸ t.subgroupOf H.
Equations
Instances For
If s ≤ t, then there is a map H ⧸ s.addSubgroupOf H → H ⧸ t.addSubgroupOf H.
Equations
Instances For
If s ≤ t, then there is a map α ⧸ s → α ⧸ t.
Equations
Instances For
If s ≤ t, then there is a map α ⧸ s → α ⧸ t.
Equations
Instances For
The natural embedding H ⧸ (⨅ i, f i).subgroupOf H ↪ Π i, H ⧸ (f i).subgroupOf H.
Equations
- Subgroup.quotientiInfSubgroupOfEmbedding f H = { toFun := fun (q : ↥H ⧸ (⨅ (i : ι), f i).subgroupOf H) (i : ι) => Subgroup.quotientSubgroupOfMapOfLE H ⋯ q, inj' := ⋯ }
Instances For
The natural embedding
H ⧸ (⨅ i, f i).addSubgroupOf H) ↪ Π i, H ⧸ (f i).addSubgroupOf H.
Equations
- AddSubgroup.quotientiInfAddSubgroupOfEmbedding f H = { toFun := fun (q : ↥H ⧸ (⨅ (i : ι), f i).addSubgroupOf H) (i : ι) => AddSubgroup.quotientAddSubgroupOfMapOfLE H ⋯ q, inj' := ⋯ }
Instances For
The natural embedding α ⧸ (⨅ i, f i) ↪ Π i, α ⧸ f i.
Equations
- Subgroup.quotientiInfEmbedding f = { toFun := fun (q : α ⧸ ⨅ (i : ι), f i) (i : ι) => Subgroup.quotientMapOfLE ⋯ q, inj' := ⋯ }
Instances For
The natural embedding α ⧸ (⨅ i, f i) ↪ Π i, α ⧸ f i.
Equations
- AddSubgroup.quotientiInfEmbedding f = { toFun := fun (q : α ⧸ ⨅ (i : ι), f i) (i : ι) => AddSubgroup.quotientMapOfLE ⋯ q, inj' := ⋯ }
Instances For
An equivalence between any non-empty fiber of a MonoidHom and its kernel.
Equations
- f.fiberEquivKer a = (Equiv.setCongr ⋯).trans (Subgroup.leftCosetEquivSubgroup a)
Instances For
An equivalence between any non-empty fiber of an AddMonoidHom and its kernel.
Equations
Instances For
An equivalence between any fiber of a surjective MonoidHom and its kernel.
Equations
- MonoidHom.fiberEquivKerOfSurjective hf h = ⋯ ▸ f.fiberEquivKer ⋯.choose
Instances For
An equivalence between any fiber of a surjective AddMonoidHom and its kernel.
Equations
- AddMonoidHom.fiberEquivKerOfSurjective hf h = ⋯ ▸ f.fiberEquivKer ⋯.choose
Instances For
An equivalence between any two non-empty fibers of an AddMonoidHom.
Equations
- f.fiberEquiv a b = (f.fiberEquivKer a).trans (f.fiberEquivKer b).symm
Instances For
An equivalence between any two fibers of a surjective MonoidHom.
Equations
- MonoidHom.fiberEquivOfSurjective hf h h' = (MonoidHom.fiberEquivKerOfSurjective hf h).trans (MonoidHom.fiberEquivKerOfSurjective hf h').symm
Instances For
An equivalence between any two fibers of a surjective AddMonoidHom.
Equations
Instances For
If s is a subgroup of the group α, and t is a subset of α ⧸ s, then there is a
(typically non-canonical) bijection between the preimage of t in α and the product s × t.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If s is a subgroup of the additive group α, and t is a subset of α ⧸ s, then
there is a (typically non-canonical) bijection between the preimage of t in α and the product
s × t.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A group is made up of a disjoint union of cosets of a subgroup.
An additive group is made up of a disjoint union of cosets of an additive subgroup.
α ⧸ ⊥ is in bijection with α. See QuotientGroup.quotientBot for a multiplicative
version.
Equations
- QuotientGroup.quotientEquivSelf α = { toFun := Quotient.lift id ⋯, invFun := QuotientGroup.mk, left_inv := ⋯, right_inv := ⋯ }
Instances For
α ⧸ ⊥ is in bijection with α. See QuotientAddGroup.quotientBot for an
additive version.
Equations
- QuotientAddGroup.quotientEquivSelf α = { toFun := Quotient.lift id ⋯, invFun := QuotientAddGroup.mk, left_inv := ⋯, right_inv := ⋯ }