Documentation

Mathlib.GroupTheory.Abelianization.Defs

The abelianization of a group #

This file defines the commutator and the abelianization of a group. It furthermore prepares for the result that the abelianization is left adjoint to the forgetful functor from abelian groups to groups, which can be found in Mathlib/Algebra/Category/Grp/Adjunctions.lean.

Main definitions #

def Abelianization (G : Type u) [Group G] :

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

Equations
    Instances For

      of is the canonical projection from G to its abelianization.

      Equations
        Instances For
          @[simp]
          theorem Abelianization.mk_eq_of {G : Type u} [Group G] (a : G) :
          @[simp]
          def Abelianization.lift {G : Type u} [Group G] {A : Type v} [CommGroup 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
            Instances For
              @[simp]
              theorem Abelianization.lift_apply_of {G : Type u} [Group G] {A : Type v} [CommGroup A] (f : G →* A) (x : G) :
              (lift f) (of x) = f x
              @[deprecated Abelianization.lift_apply_of (since := "2025-07-23")]
              theorem Abelianization.lift.of {G : Type u} [Group G] {A : Type v} [CommGroup A] (f : G →* A) (x : G) :

              Alias of Abelianization.lift_apply_of.

              theorem Abelianization.coe_lift_symm {G : Type u} [Group G] {A : Type v} [CommGroup A] :
              lift.symm = fun (x : Abelianization G →* A) => x.comp of
              @[simp]
              theorem Abelianization.lift_symm_apply {G : Type u} [Group G] {A : Type v} [CommGroup A] (f : Abelianization G →* A) :
              theorem Abelianization.lift_unique {G : Type u} [Group G] {A : Type v} [CommGroup A] (f : G →* A) (φ : Abelianization G →* A) ( : ∀ (x : G), φ (of x) = f x) {x : Abelianization G} :
              φ x = (lift f) x
              @[deprecated Abelianization.lift_unique (since := "2025-07-23")]
              theorem Abelianization.lift.unique {G : Type u} [Group G] {A : Type v} [CommGroup A] (f : G →* A) (φ : Abelianization G →* A) ( : ∀ (x : G), φ (Abelianization.of x) = f x) {x : Abelianization G} :
              φ x = (lift f) x

              Alias of Abelianization.lift_unique.

              theorem Abelianization.hom_ext {G : Type u} [Group G] {A : Type v} [Monoid A] (φ ψ : Abelianization G →* A) (h : φ.comp of = ψ.comp of) :
              φ = ψ

              See note [partially-applied ext lemmas].

              theorem Abelianization.hom_ext_iff {G : Type u} [Group G] {A : Type v} [Monoid A] {φ ψ : Abelianization G →* A} :
              φ = ψ φ.comp of = ψ.comp of
              def Abelianization.map {G : Type u} [Group G] {H : Type v} [Group H] (f : G →* H) :

              The map operation of the Abelianization functor

              Equations
                Instances For
                  @[simp]
                  theorem Abelianization.lift_of_comp {G : Type u} [Group G] {H : Type v} [Group H] (f : G →* H) :
                  lift (of.comp f) = map f

                  Use map as the preferred simp normal form.

                  @[simp]
                  theorem Abelianization.map_of {G : Type u} [Group G] {H : Type v} [Group H] (f : G →* H) (x : G) :
                  (map f) (of x) = of (f x)
                  @[simp]
                  theorem Abelianization.map_comp {G : Type u} [Group G] {H : Type v} [Group H] (f : G →* H) {I : Type w} [Group I] (g : H →* I) :
                  (map g).comp (map f) = map (g.comp f)
                  @[simp]
                  theorem Abelianization.map_map_apply {G : Type u} [Group G] {H : Type v} [Group H] (f : G →* H) {I : Type w} [Group I] {g : H →* I} {x : Abelianization G} :
                  (map g) ((map f) x) = (map (g.comp f)) x

                  Equivalent groups have equivalent abelianizations

                  Equations
                    Instances For
                      @[simp]
                      theorem abelianizationCongr_of {G : Type u} [Group G] {H : Type v} [Group H] (e : G ≃* H) (x : G) :
                      @[simp]
                      theorem abelianizationCongr_trans {G : Type u} [Group G] {H : Type v} [Group H] {I : Type v} [Group I] (e : G ≃* H) (e₂ : H ≃* I) :

                      An Abelian group is equivalent to its own abelianization.

                      Equations
                        Instances For
                          @[simp]
                          theorem Abelianization.equivOfComm_apply {H : Type u_1} [CommGroup H] (a : H) :
                          Equations