Quotients of groups by normal subgroups #
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/N
given a normal subgroupN
ofG
.lift φ
: the group homomorphismG/N →* H
given a group homomorphismφ : G →* H
such thatN ⊆ ker φ
.map f
: the group homomorphismG/N →* H/M
given a group homomorphismf : G →* H
such 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)/N
given a subgroupH
and a normal subgroupN
of a groupG
.quotient_group.quotient_quotient_equiv_quotient
: Noether's third isomorphism theorem, the canonical isomorphism between(G / M) / (M / N)
andG / N
, 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_hom
s from an additive quotient group are equal if their
compositions with add_quotient_group.mk'
are equal.
Two monoid_hom
s from a quotient group are equal if their compositions with
quotient_group.mk'
are equal.
Equations
- quotient_group.has_quotient.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 := _}
Equations
- quotient_add_group.add_comm_group N = {add := add_group.add (quotient_add_group.add_group N), add_assoc := _, zero := add_group.zero (quotient_add_group.add_group N), zero_add := _, add_zero := _, nsmul := add_group.nsmul (quotient_add_group.add_group N), nsmul_zero' := _, nsmul_succ' := _, neg := add_group.neg (quotient_add_group.add_group N), sub := add_group.sub (quotient_add_group.add_group N), sub_eq_add_neg := _, zsmul := add_group.zsmul (quotient_add_group.add_group N), zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _}
A group homomorphism φ : G →* H
with N ⊆ ker(φ)
descends (i.e. lift
s) 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. lift
s) 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) _
The induced map from the quotient by the kernel to the codomain.
Equations
The induced map from the quotient by the kernel to the codomain.
Equations
The induced map from the quotient by the kernel to the range.
Equations
The induced map from the quotient by the kernel to the range.
Equations
Noether's first isomorphism theorem (a definition): the canonical isomorphism between
G/(ker φ)
to range φ
.
The first isomorphism theorem
(a definition): the canonical isomorphism between G/(ker φ)
to range φ
.
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_group.equiv_quotient_of_eq h = {to_fun := ⇑(quotient_group.lift M (quotient_group.mk' N) _), inv_fun := ⇑(quotient_group.lift N (quotient_group.mk' M) _), left_inv := _, right_inv := _, map_mul' := _}
If two normal subgroups M
and N
of G
are the same, their quotient groups are
isomorphic.
Equations
- quotient_add_group.equiv_quotient_of_eq h = {to_fun := ⇑(quotient_add_group.lift M (quotient_add_group.mk' N) _), inv_fun := ⇑(quotient_add_group.lift N (quotient_add_group.mk' M) _), left_inv := _, right_inv := _, map_add' := _}
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
.
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) ⧸ subgroup.comap (H ⊔ N).subtype N := (quotient_group.mk' (subgroup.comap (H ⊔ N).subtype N)).comp (subgroup.inclusion _) in have φ_surjective : function.surjective ⇑φ, from _, (quotient_group.equiv_quotient_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) ⧸ add_subgroup.comap (H ⊔ N).subtype N := (quotient_add_group.mk' (add_subgroup.comap (H ⊔ N).subtype N)).comp (add_subgroup.inclusion _) in have φ_surjective : function.surjective ⇑φ, from _, (quotient_add_group.equiv_quotient_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 additive groups: (A / N) / (M / N) ≃ A / M
.
Equations
If the quotient by a subgroup gives a singleton then the subgroup is the whole group.