Cosets #
This file develops the basic theory of left and right cosets.
Main definitions #
left_coset a s: the left coseta * sfor an elementa : αand a subsets ⊆ α, for anadd_groupthis isleft_add_coset a s.right_coset s a: the right cosets * afor an elementa : αand a subsets ⊆ α, for anadd_groupthis isright_add_coset s a.quotient_group.quotient s: the quotient type representing the left cosets with respect to a subgroups, for anadd_groupthis isquotient_add_group.quotient s.quotient_group.mk: the canonical map fromαtoα/sfor a subgroupsofα, for anadd_groupthis isquotient_add_group.mk.subgroup.left_coset_equiv_subgroup: the natural bijection between a left coset and the subgroup, for anadd_groupthis isadd_subgroup.left_coset_equiv_add_subgroup.
Notation #
-
a *l s: forleft_coset a s. -
a +l s: forleft_add_coset a s. -
s *r a: forright_coset s a. -
s +r a: forright_add_coset s a. -
G ⧸ His the quotient of the (additive) groupGby the (additive) subgroupH
TODO #
Add to_additive to preimage_mk_equiv_subgroup_times_set.
Equality of two left cosets a * s and b * s.
Equations
- left_coset_equivalence s a b = (a *l s = b *l s)
Equality of two left cosets a + s and b + s.
Equations
- left_add_coset_equivalence s a b = (a +l s = b +l s)
Equality of two right cosets s * a and s * b.
Equations
- right_coset_equivalence s a b = (s *r a = s *r b)
Equality of two right cosets s + a and s + b.
Equations
- right_add_coset_equivalence s a b = (s +r a = s +r b)
The equivalence relation corresponding to the partition of a group by left cosets of a subgroup.
Equations
- quotient_group.left_rel_decidable s = λ (x y : α), _inst_2 (x⁻¹ * y)
Equations
- quotient_add_group.left_rel_decidable s = λ (x y : α), _inst_2 (-x + y)
α ⧸ s is the quotient type representing the left cosets of s. If s is a
normal subgroup, α ⧸ s is a group
Equations
α ⧸ s is the quotient type representing the left cosets of s.
If s is a normal subgroup, α ⧸ s is a group
Equations
- quotient_group.subgroup.has_quotient = {quotient' := λ (s : subgroup α), quotient (quotient_group.left_rel s)}
The equivalence relation corresponding to the partition of a group by right cosets of a subgroup.
Equations
- quotient_group.right_rel_decidable s = λ (x y : α), _inst_2 (y * x⁻¹)
Equations
- quotient_add_group.right_rel_decidable s = λ (x y : α), _inst_2 (y + -x)
Right cosets are in bijection with left cosets.
Equations
- quotient_group.quotient_right_rel_equiv_quotient_left_rel s = {to_fun := quotient.map' (λ (g : α), g⁻¹) _, inv_fun := quotient.map' (λ (g : α), g⁻¹) _, left_inv := _, right_inv := _}
Right cosets are in bijection with left cosets.
Equations
- quotient_add_group.quotient_right_rel_equiv_quotient_left_rel s = {to_fun := quotient.map' (λ (g : α), -g) _, inv_fun := quotient.map' (λ (g : α), -g) _, left_inv := _, right_inv := _}
Equations
Equations
The canonical map from an add_group α to the quotient α ⧸ s.
The canonical map from a group α to the quotient α ⧸ s.
Equations
Equations
Equations
The natural bijection between a left coset g * s and s.
The natural bijection between the cosets g + s and s.
The natural bijection between a right coset s * g and s.
The natural bijection between the cosets s + g and s.
A (non-canonical) bijection between a group α and the product (α/s) × s
Equations
- subgroup.group_equiv_quotient_times_subgroup = (((equiv.sigma_preimage_equiv quotient_group.mk).symm.trans (equiv.sigma_congr_right (λ (L : α ⧸ s), _.mpr (id (_.mpr (equiv.refl {x // quotient.mk' x = L})))))).trans (equiv.sigma_congr_right (λ (L : α ⧸ s), subgroup.left_coset_equiv_subgroup (quotient.out' L)))).trans (equiv.sigma_equiv_prod (α ⧸ s) ↥s)
A (non-canonical) bijection between an add_group α and the product (α/s) × s
Equations
- add_subgroup.add_group_equiv_quotient_times_add_subgroup = (((equiv.sigma_preimage_equiv quotient_add_group.mk).symm.trans (equiv.sigma_congr_right (λ (L : α ⧸ s), _.mpr (id (_.mpr (equiv.refl {x // quotient.mk' x = L})))))).trans (equiv.sigma_congr_right (λ (L : α ⧸ s), add_subgroup.left_coset_equiv_add_subgroup (quotient.out' L)))).trans (equiv.sigma_equiv_prod (α ⧸ s) ↥s)
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 quotient_equiv_prod_of_le.
Equations
- subgroup.quotient_equiv_prod_of_le' h_le f hf = {to_fun := λ (a : α ⧸ s), (quotient.map' id _ a, quotient.map' (λ (g : α), ⟨(f (quotient.mk' g))⁻¹ * g, _⟩) _ a), inv_fun := λ (a : (α ⧸ t) × ↥t ⧸ s.subgroup_of t), quotient.map' (λ (b : ↥t), (f a.fst) * ↑b) _ a.snd, left_inv := _, right_inv := _}
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 quotient_equiv_prod_of_le.
Equations
- add_subgroup.quotient_equiv_sum_of_le' h_le f hf = {to_fun := λ (a : α ⧸ s), (quotient.map' id _ a, quotient.map' (λ (g : α), ⟨-f (quotient.mk' g) + g, _⟩) _ a), inv_fun := λ (a : (α ⧸ t) × ↥t ⧸ s.add_subgroup_of t), quotient.map' (λ (b : ↥t), f a.fst + ↑b) _ a.snd, left_inv := _, right_inv := _}
If H ≤ K, then G/H ≃ G/K × K/H nonconstructively.
The constructive version is quotient_equiv_prod_of_le'.
Equations
- add_subgroup.quotient_equiv_sum_of_le h_le = add_subgroup.quotient_equiv_sum_of_le' h_le quotient.out' add_subgroup.quotient_equiv_sum_of_le._proof_1
If H ≤ K, then G/H ≃ G/K × K/H nonconstructively.
The constructive version is quotient_equiv_prod_of_le'.
Equations
- subgroup.quotient_equiv_prod_of_le h_le = subgroup.quotient_equiv_prod_of_le' h_le quotient.out' subgroup.quotient_equiv_prod_of_le._proof_1
If K ≤ L, then there is an embedding
K ⧸ (H.add_subgroup_of K) ↪ L ⧸ (H.add_subgroup_of L).
Equations
- H.quotient_add_subgroup_of_embedding_of_le h = {to_fun := quotient.map' (set.inclusion h) _, inj' := _}
If K ≤ L, then there is an embedding K ⧸ (H.subgroup_of K) ↪ L ⧸ (H.subgroup_of L).
Equations
- H.quotient_subgroup_of_embedding_of_le h = {to_fun := quotient.map' (set.inclusion h) _, inj' := _}
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
- quotient_group.preimage_mk_equiv_subgroup_times_set s t = have h : ∀ {x : α ⧸ s} {a : α}, x ∈ t → a ∈ s → quotient.mk' ((quotient.out' x) * a) = quotient.mk' (quotient.out' x), from _, {to_fun := λ (_x : ↥(quotient_group.mk ⁻¹' t)), quotient_group.preimage_mk_equiv_subgroup_times_set._match_1 s t _x, inv_fun := λ (_x : ↥s × ↥t), quotient_group.preimage_mk_equiv_subgroup_times_set._match_2 s t h _x, left_inv := _, right_inv := _}
- quotient_group.preimage_mk_equiv_subgroup_times_set._match_1 s t ⟨a, ha⟩ = (⟨((quotient.mk' a).out')⁻¹ * a, _⟩, ⟨quotient.mk' a, ha⟩)
- quotient_group.preimage_mk_equiv_subgroup_times_set._match_2 s t h (⟨a, ha⟩, ⟨x, hx⟩) = ⟨(quotient.out' x) * a, _⟩