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/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 #
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)/Ngiven a subgroupHand a normal subgroupNof 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 AddMonoidHoms from an additive quotient group are equal if
their compositions with AddQuotientGroup.mk' are equal.
See note [partially-applied ext lemmas].
Two MonoidHoms from a quotient group are equal if their compositions with
QuotientGroup.mk' are equal.
See note [partially-applied ext lemmas].
Equations
- (_ : motive x) = (_ : motive x)
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. lifts)
to a group homomorphism G/N →* M.
Equations
- QuotientAddGroup.lift N φ HN = AddCon.lift (QuotientAddGroup.con N) φ (_ : ∀ (x y : G), ↑(QuotientAddGroup.con N) x y → ↑(AddCon.ker φ) x y)
Instances For
A group homomorphism φ : G →* M with N ⊆ ker(φ) descends (i.e. lifts) to a
group homomorphism G/N →* M.
Equations
- QuotientGroup.lift N φ HN = Con.lift (QuotientGroup.con N) φ (_ : ∀ (x y : G), ↑(QuotientGroup.con N) x y → ↑(Con.ker φ) x y)
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
- (_ : motive x) = (_ : motive x)
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)