Perfect groups #
A group G is perfect if it equals its commutator subgroup, that is ⁅G, G⁆ = G.
Among the basic results, we show that
- a nontrivial perfect group is not solvable (
IsPerfect.not_isSolvable); - an abelian perfect group is trivial (
IsPerfect.subsingleton_of_isMulCommutative).
Main Definition #
Group.IsPerfect: a groupGis perfect if it equals its own commutator, that is⁅⊤, ⊤⁆ = ⊤, where⊤is the full subgroupG.
Main Theorems #
subsingleton_abelianization_iff_isPerfect: a group is perfect if and only if its abelianization is trivial.IsPerfect.map: The image of a perfect group under a monoid homomorphism is perfect.IsPerfect.instQuotientSubgroup: The quotient of a perfect group by a normal subgroup is perfect.IsPerfect.ofSurjective: The image of a perfect group under a surjective monoid homomorphism is perfect.
An additive group G is perfect if G equals its commutator subgroup ⁅G, G⁆.
The commutator of the group
Gwith itself is the whole groupG.
Instances
A group G is perfect if G equals its commutator subgroup ⁅G, G⁆.
The commutator of the group
Gwith itself is the whole groupG.
Instances
theorem Subgroup.commutator_eq_self {G : Type u_1} [Group G] {H : Subgroup G} [hH : Group.IsPerfect ↥H] :
theorem AddSubgroup.addCommutator_eq_self {G : Type u_1} [AddGroup G] {H : AddSubgroup G} [hH : AddGroup.IsPerfect ↥H] :
theorem AddGroup.IsPerfect.mem_addCommutator {G : Type u_1} [AddGroup G] [hP : IsPerfect G] {g : G} :
The trivial group is perfect.
The trivial group is perfect.
theorem AddGroup.IsPerfect.not_isSolvable (G : Type u_1) [AddGroup G] [Nontrivial G] [IsPerfect G] :
theorem AddGroup.IsPerfect.not_isNilpotent (G : Type u_1) [AddGroup G] [Nontrivial G] [IsPerfect G] :
theorem Group.IsPerfect.not_isMulCommutative (G : Type u_1) [Group G] [Nontrivial G] [IsPerfect G] :
theorem AddGroup.IsPerfect.not_isAddCommutative (G : Type u_1) [AddGroup G] [Nontrivial G] [IsPerfect G] :
instance Group.IsPerfect.subsingleton_of_isMulCommutative {G : Type u_1} [Group G] [hG : IsPerfect G] [h_comm : IsMulCommutative G] :
instance AddGroup.IsPerfect.subsingleton_of_isAddCommutative {G : Type u_1} [AddGroup G] [hG : IsPerfect G] [h_comm : IsAddCommutative G] :
theorem AddGroup.IsPerfect.map {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup G'] {H : AddSubgroup G} (f : G →+ G') [IsPerfect ↥H] :
IsPerfect ↥(AddSubgroup.map f H)
theorem Group.IsPerfect.ofSurjective {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] {f : G →* G'} [IsPerfect G] (hf : Function.Surjective ⇑f) :
IsPerfect G'
theorem AddGroup.IsPerfect.ofSurjective {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup G'] {f : G →+ G'} [IsPerfect G] (hf : Function.Surjective ⇑f) :
IsPerfect G'
instance AddGroup.IsPerfect.instQuotientAddSubgroup {G : Type u_1} [AddGroup G] {H : AddSubgroup G} [H.Normal] [IsPerfect G] :
@[simp]
@[simp]
@[simp]
theorem AddGroup.IsPerfect.lowerCentralSeries_eq_top {G : Type u_1} [AddGroup G] (H : AddSubgroup G) [IsPerfect ↥H] (n : ℕ) :
@[simp]
Grün's lemma
@[simp]
theorem AddGroup.IsPerfect.center_quotient_center_eq_bot (G : Type u_1) [AddGroup G] [IsPerfect G] :