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/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 / 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_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_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. 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) _
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