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 #
QuotientGroup.quotientKerEquivRange
: Noether's first isomorphism theorem, an explicit isomorphismG/ker φ → range φ
for every group homomorphismφ : G →* H
.QuotientGroup.quotientInfEquivProdNormalQuotient
: Noether's second isomorphism theorem, an explicit isomorphism betweenH/(H ∩ N)
and(HN)/N
given a subgroupH
and a normal subgroupN
of a groupG
.QuotientGroup.quotientQuotientEquivQuotient
: Noether's third isomorphism theorem, the canonical isomorphism between(G / N) / (M / N)
andG / M
, whereN ≤ M
.
Tags #
isomorphism theorems, quotient groups
The additive congruence relation generated by a normal additive subgroup.
Equations
- QuotientAddGroup.con N = { toSetoid := QuotientAddGroup.leftRel N, add' := (_ : ∀ (a b c d : G), Setoid.r a b → Setoid.r c d → Setoid.r (a + c) (b + d)) }
Instances For
The congruence relation generated by a normal subgroup.
Equations
- QuotientGroup.con N = { toSetoid := QuotientGroup.leftRel N, mul' := (_ : ∀ (a b c d : G), Setoid.r a b → Setoid.r c d → Setoid.r (a * c) (b * d)) }
Instances For
Equations
Equations
The additive group homomorphism from G
to G/N
.
Equations
- QuotientAddGroup.mk' N = AddMonoidHom.mk' QuotientAddGroup.mk (_ : ∀ (x x_1 : G), ↑(x + x_1) = ↑(x + x_1))
Instances For
The group homomorphism from G
to G/N
.
Equations
- QuotientGroup.mk' N = MonoidHom.mk' QuotientGroup.mk (_ : ∀ (x x_1 : G), ↑(x * x_1) = ↑(x * x_1))
Instances For
Two AddMonoidHom
s from an additive quotient group are equal if
their compositions with AddQuotientGroup.mk'
are equal.
See note [partially-applied ext lemmas].
Two MonoidHom
s from a quotient group are equal if their compositions with
QuotientGroup.mk'
are equal.
See note [partially-applied ext lemmas].
Equations
- QuotientAddGroup.ker_le_range_iff.match_1 g motive x h_1 = Subtype.casesOn x fun val property => h_1 val property
Instances For
Equations
- QuotientAddGroup.Quotient.addCommGroup N = AddCommGroup.mk (_ : ∀ (a b : G ⧸ N), a + b = b + a)
Equations
- QuotientGroup.Quotient.commGroup N = CommGroup.mk (_ : ∀ (a b : G ⧸ N), a * b = b * a)
An AddGroup
homomorphism φ : G →+ M
with N ⊆ ker(φ)
descends (i.e. lift
s)
to a group homomorphism G/N →* M
.
Equations
- QuotientAddGroup.lift N φ HN = AddCon.lift (QuotientAddGroup.con N) φ (QuotientAddGroup.lift.proof_1 N φ HN)
Instances For
A group homomorphism φ : G →* M
with N ⊆ ker(φ)
descends (i.e. lift
s) to a
group homomorphism G/N →* M
.
Equations
- QuotientGroup.lift N φ HN = Con.lift (QuotientGroup.con N) φ (QuotientGroup.lift.proof_1 N φ HN)
Instances For
An AddGroup
homomorphism f : G →+ H
induces a map G/N →+ H/M
if N ⊆ f⁻¹(M)
.
Equations
- QuotientAddGroup.map N M f h = QuotientAddGroup.lift N (AddMonoidHom.comp (QuotientAddGroup.mk' M) f) (_ : ∀ ⦃x : G⦄, x ∈ N → ↑(↑f x) = ↑0)
Instances For
A group homomorphism f : G →* H
induces a map G/N →* H/M
if N ⊆ f⁻¹(M)
.
Equations
- QuotientGroup.map N M f h = QuotientGroup.lift N (MonoidHom.comp (QuotientGroup.mk' M) f) (_ : ∀ ⦃x : G⦄, x ∈ N → ↑(↑f x) = ↑1)
Instances For
QuotientAddGroup.congr
lifts the isomorphism e : G ≃ H
to G ⧸ G' ≃ H ⧸ H'
,
given that e
maps G
to H
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
QuotientGroup.congr
lifts the isomorphism e : G ≃ H
to G ⧸ G' ≃ H ⧸ H'
,
given that e
maps G
to H
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The induced map from the quotient by the kernel to the codomain.
Equations
- QuotientAddGroup.kerLift φ = QuotientAddGroup.lift (AddMonoidHom.ker φ) φ (_ : ∀ (_g : G), _g ∈ AddMonoidHom.ker φ → ↑φ _g = 0)
Instances For
The induced map from the quotient by the kernel to the codomain.
Equations
- QuotientGroup.kerLift φ = QuotientGroup.lift (MonoidHom.ker φ) φ (_ : ∀ (_g : G), _g ∈ MonoidHom.ker φ → ↑φ _g = 1)
Instances For
The induced map from the quotient by the kernel to the range.
Equations
- QuotientAddGroup.rangeKerLift φ = QuotientAddGroup.lift (AddMonoidHom.ker φ) (AddMonoidHom.rangeRestrict φ) (_ : ∀ (g : G), g ∈ AddMonoidHom.ker φ → ↑(AddMonoidHom.rangeRestrict φ) g = 0)
Instances For
The induced map from the quotient by the kernel to the range.
Equations
- QuotientGroup.rangeKerLift φ = QuotientGroup.lift (MonoidHom.ker φ) (MonoidHom.rangeRestrict φ) (_ : ∀ (g : G), g ∈ MonoidHom.ker φ → ↑(MonoidHom.rangeRestrict φ) g = 1)
Instances For
The first isomorphism theorem (a definition): the canonical isomorphism between
G/(ker φ)
to range φ
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Noether's first isomorphism theorem (a definition): the canonical isomorphism between
G/(ker φ)
to range φ
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical isomorphism G/(ker φ) ≃+ H
induced by a homomorphism
φ : G →+ H
with a right inverse ψ : H → G
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical isomorphism G/(ker φ) ≃* H
induced by a homomorphism φ : G →* H
with a right inverse ψ : H → G
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical isomorphism G/⊥ ≃+ G
.
Equations
- QuotientAddGroup.quotientBot = QuotientAddGroup.quotientKerEquivOfRightInverse (AddMonoidHom.id G) id (_ : ∀ (_x : G), ↑(AddMonoidHom.id G) (id _x) = ↑(AddMonoidHom.id G) (id _x))
Instances For
The canonical isomorphism G/⊥ ≃* G
.
Equations
- QuotientGroup.quotientBot = QuotientGroup.quotientKerEquivOfRightInverse (MonoidHom.id G) id (_ : ∀ (_x : G), ↑(MonoidHom.id G) (id _x) = ↑(MonoidHom.id G) (id _x))
Instances For
The canonical isomorphism G/(ker φ) ≃+ H
induced by a surjection φ : G →+ H
.
For a computable
version, see QuotientAddGroup.quotientKerEquivOfRightInverse
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical isomorphism G/(ker φ) ≃* H
induced by a surjection φ : G →* H
.
For a computable
version, see QuotientGroup.quotientKerEquivOfRightInverse
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If two normal subgroups M
and N
of G
are the same, their quotient groups are
isomorphic.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If two normal subgroups M
and N
of G
are the same, their quotient groups are
isomorphic.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
- One or more equations did not get rendered due to their size.
Instances For
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
- One or more equations did not get rendered due to their size.
Instances For
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'.addSubgroupOf A : AddSubgroup A)
depends on on A
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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'.subgroupOf A : Subgroup A)
depends on A
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The map of quotients by multiples of an integer induced by an additive group homomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- QuotientAddGroup.homQuotientZSMulOfHom.match_1 n g motive x h_1 = Exists.casesOn x fun w h => h_1 w h
Instances For
The map of quotients by powers of an integer induced by a group homomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence of quotients by multiples of an integer induced by an additive group isomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence of quotients by powers of an integer induced by a group isomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
- One or more equations did not get rendered due to their size.
Instances For
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
- One or more equations did not get rendered due to their size.
Instances For
The map from the third isomorphism theorem for additive groups:
(A / N) / (M / N) → A / M
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The map from the third isomorphism theorem for groups: (G / N) / (M / N) → G / M
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Noether's third isomorphism theorem for additive groups: (A / N) / (M / N) ≃+ A / M
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Noether's third isomorphism theorem for groups: (G / N) / (M / N) ≃* G / M
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
- AddGroup.fintypeOfKerLeRange f g h = Fintype.ofEquiv ((G ⧸ AddMonoidHom.ker g) × { x // x ∈ AddMonoidHom.ker g }) AddSubgroup.addGroupEquivQuotientProdAddSubgroup.symm
Instances For
If F
and H
are finite such that ker(G →* H) ≤ im(F →* G)
, then G
is finite.
Equations
- Group.fintypeOfKerLeRange f g h = Fintype.ofEquiv ((G ⧸ MonoidHom.ker g) × { x // x ∈ MonoidHom.ker g }) Subgroup.groupEquivQuotientProdSubgroup.symm
Instances For
If F
and H
are finite such that ker(G →+ H) = im(F →+ G)
, then G
is finite.
Equations
- AddGroup.fintypeOfKerEqRange f g h = AddGroup.fintypeOfKerLeRange f g (_ : AddMonoidHom.ker g ≤ AddMonoidHom.range f)
Instances For
If F
and H
are finite such that ker(G →* H) = im(F →* G)
, then G
is finite.
Equations
- Group.fintypeOfKerEqRange f g h = Group.fintypeOfKerLeRange f g (_ : MonoidHom.ker g ≤ MonoidHom.range f)
Instances For
If ker(G →+ H)
and H
are finite, then G
is finite.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If F
and coker(F →+ G)
are finite, then G
is finite.
Equations
- AddGroup.fintypeOfDomOfCoker f = AddGroup.fintypeOfKerLeRange f (QuotientAddGroup.mk' (AddMonoidHom.range f)) (_ : ∀ (x : G), ↑x = 0 → x ∈ AddMonoidHom.range f)
Instances For
If F
and coker(F →* G)
are finite, then G
is finite.
Equations
- Group.fintypeOfDomOfCoker f = Group.fintypeOfKerLeRange f (QuotientGroup.mk' (MonoidHom.range f)) (_ : ∀ (x : G), ↑x = 1 → x ∈ MonoidHom.range f)