# mathlibdocumentation

group_theory.abelianization

@[instance]
def commutator.normal (G : Type u) [group G] :

def commutator (G : Type u) [group G] :

The commutator subgroup of a group G is the normal subgroup generated by the commutators [p,q]=p*q*p⁻¹*q⁻¹

Equations
def abelianization (G : Type u) [group G] :
Type u

The abelianization of G is the quotient of G by its commutator subgroup

Equations
@[instance]
def abelianization.comm_group (G : Type u) [group G] :

Equations
@[instance]
def abelianization.inhabited (G : Type u) [group G] :

Equations
def abelianization.of {G : Type u} [group G] :

of is the canonical projection from G to its abelianization.

Equations
theorem abelianization.commutator_subset_ker {G : Type u} [group G] {A : Type v} [comm_group A] (f : G →* A) :
f.ker

def abelianization.lift {G : Type u} [group G] {A : Type v} [comm_group A] :
(G →* A)

If f : G → A is a group homomorphism to an abelian group, then lift f is the unique map from the abelianization of a G to A that factors through f.

Equations
@[simp]
theorem abelianization.lift.of {G : Type u} [group G] {A : Type v} [comm_group A] (f : G →* A) (x : G) :
= f x

theorem abelianization.lift.unique {G : Type u} [group G] {A : Type v} [comm_group A] (f : G →* A) (φ : →* A) (hφ : ∀ (x : G), φ = f x) {x : abelianization G} :
φ x = x

theorem abelianization.hom_ext {G : Type u} [group G] {A : Type v} [monoid A] (φ ψ : →* A) :
φ = ψ