Quotients of groups by normal subgroups #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This files develops the basic theory of quotients of groups by normal subgroups. In particular it proves Noether's first and second isomorphism theorems.
Main definitions #
mk': the canonical group homomorphismG →* G/Ngiven a normal subgroupNofG.lift φ: the group homomorphismG/N →* Hgiven a group homomorphismφ : G →* Hsuch thatN ⊆ ker φ.map f: the group homomorphismG/N →* H/Mgiven a group homomorphismf : G →* Hsuch thatN ⊆ f⁻¹(M).
Main statements #
quotient_ker_equiv_range: Noether's first isomorphism theorem, an explicit isomorphismG/ker φ → range φfor every group homomorphismφ : G →* H.quotient_inf_equiv_prod_normal_quotient: Noether's second isomorphism theorem, an explicit isomorphism betweenH/(H ∩ N)and(HN)/Ngiven a subgroupHand a normal subgroupNof a groupG.quotient_group.quotient_quotient_equiv_quotient: Noether's third isomorphism theorem, the canonical isomorphism between(G / N) / (M / N)andG / M, whereN ≤ M.
Tags #
isomorphism theorems, quotient groups
The congruence relation generated by a normal subgroup.
Equations
- quotient_group.con N = {to_setoid := quotient_group.left_rel N, mul' := _}
The additive congruence relation generated by a normal additive subgroup.
Equations
- quotient_add_group.con N = {to_setoid := quotient_add_group.left_rel N, add' := _}
Equations
Equations
The group homomorphism from G to G/N.
Equations
The additive group homomorphism from G to G/N.
Equations
Two add_monoid_homs from an additive quotient group are equal if their
compositions with add_quotient_group.mk' are equal.
Two monoid_homs from a quotient group are equal if their compositions with
quotient_group.mk' are equal.
Equations
- quotient_add_group.quotient.add_comm_group N = {add := add_group.add (quotient_add_group.quotient.add_group N), add_assoc := _, zero := add_group.zero (quotient_add_group.quotient.add_group N), zero_add := _, add_zero := _, nsmul := add_group.nsmul (quotient_add_group.quotient.add_group N), nsmul_zero' := _, nsmul_succ' := _, neg := add_group.neg (quotient_add_group.quotient.add_group N), sub := add_group.sub (quotient_add_group.quotient.add_group N), sub_eq_add_neg := _, zsmul := add_group.zsmul (quotient_add_group.quotient.add_group N), zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _}
Equations
- quotient_group.quotient.comm_group N = {mul := group.mul (quotient_group.quotient.group N), mul_assoc := _, one := group.one (quotient_group.quotient.group N), one_mul := _, mul_one := _, npow := group.npow (quotient_group.quotient.group N), npow_zero' := _, npow_succ' := _, inv := group.inv (quotient_group.quotient.group N), div := group.div (quotient_group.quotient.group N), div_eq_mul_inv := _, zpow := group.zpow (quotient_group.quotient.group N), zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, mul_left_inv := _, mul_comm := _}
A group homomorphism φ : G →* H with N ⊆ ker(φ) descends (i.e. lifts) to a
group homomorphism G/N →* H.
Equations
- quotient_group.lift N φ HN = (quotient_group.con N).lift φ _
An add_group homomorphism φ : G →+ H with N ⊆ ker(φ) descends (i.e. lifts)
to a group homomorphism G/N →* H.
Equations
- quotient_add_group.lift N φ HN = (quotient_add_group.con N).lift φ _
An add_group homomorphism f : G →+ H induces a map G/N →+ H/M if
N ⊆ f⁻¹(M).
Equations
- quotient_add_group.map N M f h = quotient_add_group.lift N ((quotient_add_group.mk' M).comp f) _
A group homomorphism f : G →* H induces a map G/N →* H/M if N ⊆ f⁻¹(M).
Equations
- quotient_group.map N M f h = quotient_group.lift N ((quotient_group.mk' M).comp f) _
quotient_add_group.congr lifts the isomorphism e : G ≃ H to G ⧸ G' ≃ H ⧸ H',
given that e maps G to H.
Equations
- quotient_add_group.congr G' H' e he = {to_fun := ⇑(quotient_add_group.map G' H' ↑e _), inv_fun := ⇑(quotient_add_group.map H' G' ↑(e.symm) _), left_inv := _, right_inv := _, map_add' := _}
quotient_group.congr lifts the isomorphism e : G ≃ H to G ⧸ G' ≃ H ⧸ H',
given that e maps G to H.
Equations
- quotient_group.congr G' H' e he = {to_fun := ⇑(quotient_group.map G' H' ↑e _), inv_fun := ⇑(quotient_group.map H' G' ↑(e.symm) _), left_inv := _, right_inv := _, map_mul' := _}
The canonical isomorphism G/(ker φ) ≃* H induced by a homomorphism φ : G →* H
with a right inverse ψ : H → G.
Equations
- quotient_group.quotient_ker_equiv_of_right_inverse φ ψ hφ = {to_fun := ⇑(quotient_group.ker_lift φ), inv_fun := quotient_group.mk ∘ ψ, left_inv := _, right_inv := hφ, map_mul' := _}
The canonical isomorphism G/(ker φ) ≃+ H induced by a homomorphism φ : G →+ H
with a right inverse ψ : H → G.
Equations
- quotient_add_group.quotient_ker_equiv_of_right_inverse φ ψ hφ = {to_fun := ⇑(quotient_add_group.ker_lift φ), inv_fun := quotient_add_group.mk ∘ ψ, left_inv := _, right_inv := hφ, map_add' := _}
The canonical isomorphism G/⊥ ≃+ G.
Equations
- quotient_add_group.quotient_bot = quotient_add_group.quotient_ker_equiv_of_right_inverse (add_monoid_hom.id G) id quotient_add_group.quotient_bot._proof_2
The canonical isomorphism G/⊥ ≃* G.
Equations
- quotient_group.quotient_bot = quotient_group.quotient_ker_equiv_of_right_inverse (monoid_hom.id G) id quotient_group.quotient_bot._proof_2
The canonical isomorphism G/(ker φ) ≃+ H induced by a surjection φ : G →+ H.
For a computable version, see quotient_add_group.quotient_ker_equiv_of_right_inverse.
The canonical isomorphism G/(ker φ) ≃* H induced by a surjection φ : G →* H.
For a computable version, see quotient_group.quotient_ker_equiv_of_right_inverse.
If two normal subgroups M and N of G are the same, their quotient groups are
isomorphic.
Equations
- quotient_add_group.quotient_add_equiv_of_eq h = {to_fun := (add_subgroup.quotient_equiv_of_eq h).to_fun, inv_fun := (add_subgroup.quotient_equiv_of_eq h).inv_fun, left_inv := _, right_inv := _, map_add' := _}
If two normal subgroups M and N of G are the same, their quotient groups are
isomorphic.
Equations
- quotient_group.quotient_mul_equiv_of_eq h = {to_fun := (subgroup.quotient_equiv_of_eq h).to_fun, inv_fun := (subgroup.quotient_equiv_of_eq h).inv_fun, left_inv := _, right_inv := _, map_mul' := _}
Let A', A, B', B be subgroups of G. If A' ≤ B' and A ≤ B,
then there is a map A / (A' ⊓ A) →+ B / (B' ⊓ B) induced by the inclusions.
Equations
Let A', A, B', B be subgroups of G. If A' ≤ B' and A ≤ B,
then there is a map A / (A' ⊓ A) →* B / (B' ⊓ B) induced by the inclusions.
Equations
- quotient_group.quotient_map_subgroup_of_of_le h' h = quotient_group.map (A'.subgroup_of A) (B'.subgroup_of B) (subgroup.inclusion h) _
Let A', A, B', B be subgroups of G.
If A' = B' and A = B, then the quotients A / (A' ⊓ A) and B / (B' ⊓ B) are isomorphic.
Applying this equiv is nicer than rewriting along the equalities, since the type of
(A'.subgroup_of A : subgroup A) depends on on A.
Let A', A, B', B be subgroups of G.
If A' = B' and A = B, then the quotients A / (A' ⊓ A) and B / (B' ⊓ B) are isomorphic.
Applying this equiv is nicer than rewriting along the equalities, since the type of
(A'.add_subgroup_of A : add_subgroup A) depends on on A.
The map of quotients by powers of an integer induced by a group homomorphism.
Equations
The map of quotients by multiples of an integer induced by an additive group homomorphism.
Equations
The equivalence of quotients by powers of an integer induced by a group isomorphism.
Equations
The equivalence of quotients by multiples of an integer induced by an additive group isomorphism.
Noether's second isomorphism theorem: given two subgroups H and N of a group G, where
N is normal, defines an isomorphism between H/(H ∩ N) and (HN)/N.
Equations
- quotient_group.quotient_inf_equiv_prod_normal_quotient H N = let φ : ↥H →* ↥(H ⊔ N) ⧸ N.subgroup_of (H ⊔ N) := (quotient_group.mk' (N.subgroup_of (H ⊔ N))).comp (subgroup.inclusion _) in have φ_surjective : function.surjective ⇑φ, from _, (quotient_group.quotient_mul_equiv_of_eq _).trans (quotient_group.quotient_ker_equiv_of_surjective φ φ_surjective)
The second isomorphism theorem: given two subgroups H and N of a group G,
where N is normal, defines an isomorphism between H/(H ∩ N) and (H + N)/N
Equations
- quotient_add_group.quotient_inf_equiv_sum_normal_quotient H N = let φ : ↥H →+ ↥(H ⊔ N) ⧸ N.add_subgroup_of (H ⊔ N) := (quotient_add_group.mk' (N.add_subgroup_of (H ⊔ N))).comp (add_subgroup.inclusion _) in have φ_surjective : function.surjective ⇑φ, from _, (quotient_add_group.quotient_add_equiv_of_eq _).trans (quotient_add_group.quotient_ker_equiv_of_surjective φ φ_surjective)
The map from the third isomorphism theorem for additive groups:
(A / N) / (M / N) → A / M.
Equations
The map from the third isomorphism theorem for groups: (G / N) / (M / N) → G / M.
Equations
- quotient_group.quotient_quotient_equiv_quotient_aux N M h = quotient_group.lift (subgroup.map (quotient_group.mk' N) M) (quotient_group.map N M (monoid_hom.id G) h) _
Noether's third isomorphism theorem for groups: (G / N) / (M / N) ≃* G / M.
Equations
Noether's third isomorphism theorem for additive groups:
(A / N) / (M / N) ≃+ A / M.
Equations
If the quotient by an additive subgroup gives a singleton then the additive subgroup is the whole additive group.
If the quotient by a subgroup gives a singleton then the subgroup is the whole group.
If F and H are finite such that ker(G →* H) ≤ im(F →* G), then G is finite.
Equations
- group.fintype_of_ker_le_range f g h = fintype.of_equiv ((G ⧸ g.ker) × ↥(g.ker)) subgroup.group_equiv_quotient_times_subgroup.symm