Documentation

Mathlib.GroupTheory.Commutator.Basic

Commutators of Subgroups #

If G is a group and H₁ H₂ : Subgroup G then the commutator ⁅H₁, H₂⁆ : Subgroup G is the subgroup of G generated by the commutators h₁ * h₂ * h₁⁻¹ * h₂⁻¹.

Main definitions #

theorem commutatorElement_eq_one_iff_mul_comm {G : Type u_1} [Group G] {g₁ g₂ : G} :
g₁, g₂ = 1 g₁ * g₂ = g₂ * g₁
theorem addCommutatorElement_eq_zero_iff_add_comm {G : Type u_1} [AddGroup G] {g₁ g₂ : G} :
g₁, g₂ = 0 g₁ + g₂ = g₂ + g₁
theorem commutatorElement_eq_one_iff_commute {G : Type u_1} [Group G] {g₁ g₂ : G} :
g₁, g₂ = 1 Commute g₁ g₂
theorem addCommutatorElement_eq_zero_iff_addCommute {G : Type u_1} [AddGroup G] {g₁ g₂ : G} :
g₁, g₂ = 0 AddCommute g₁ g₂
theorem Commute.commutator_eq {G : Type u_1} [Group G] {g₁ g₂ : G} (h : Commute g₁ g₂) :
g₁, g₂ = 1
theorem AddCommute.addCommutator_eq {G : Type u_1} [AddGroup G] {g₁ g₂ : G} (h : AddCommute g₁ g₂) :
g₁, g₂ = 0
@[simp]
theorem commutatorElement_one_right {G : Type u_1} [Group G] (g : G) :
g, 1 = 1
@[simp]
theorem addCommutatorElement_zero_right {G : Type u_1} [AddGroup G] (g : G) :
g, 0 = 0
@[simp]
theorem commutatorElement_one_left {G : Type u_1} [Group G] (g : G) :
1, g = 1
@[simp]
theorem addCommutatorElement_zero_left {G : Type u_1} [AddGroup G] (g : G) :
0, g = 0
@[simp]
theorem commutatorElement_self {G : Type u_1} [Group G] (g : G) :
g, g = 1
@[simp]
theorem addCommutatorElement_self {G : Type u_1} [AddGroup G] (g : G) :
g, g = 0
@[simp]
theorem commutatorElement_inv {G : Type u_1} [Group G] (g₁ g₂ : G) :
g₁, g₂⁻¹ = g₂, g₁
@[simp]
theorem addCommutatorElement_neg {G : Type u_1} [AddGroup G] (g₁ g₂ : G) :
-g₁, g₂ = g₂, g₁
theorem map_commutatorElement {G : Type u_1} {G' : Type u_2} {F : Type u_3} [Group G] [Group G'] [FunLike F G G'] [MonoidHomClass F G G'] (f : F) (g₁ g₂ : G) :
f g₁, g₂ = f g₁, f g₂
theorem map_addCommutatorElement {G : Type u_1} {G' : Type u_2} {F : Type u_3} [AddGroup G] [AddGroup G'] [FunLike F G G'] [AddMonoidHomClass F G G'] (f : F) (g₁ g₂ : G) :
f g₁, g₂ = f g₁, f g₂
theorem conjugate_commutatorElement {G : Type u_1} [Group G] (g₁ g₂ g₃ : G) :
g₃ * g₁, g₂ * g₃⁻¹ = g₃ * g₁ * g₃⁻¹, g₃ * g₂ * g₃⁻¹
theorem conjugate_addCommutatorElement {G : Type u_1} [AddGroup G] (g₁ g₂ g₃ : G) :
g₃ + g₁, g₂ + -g₃ = g₃ + g₁ + -g₃, g₃ + g₂ + -g₃
@[implicit_reducible]
instance Subgroup.commutator {G : Type u_1} [Group G] :

The commutator of two subgroups H₁ and H₂.

Equations
@[implicit_reducible]

The commutator of two additive subgroups H₁ and H₂.

Equations
theorem Subgroup.commutator_def {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) :
H₁, H₂ = closure {g : G | g₁H₁, g₂H₂, g₁, g₂ = g}
theorem AddSubgroup.addCommutator_def {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) :
H₁, H₂ = closure {g : G | g₁H₁, g₂H₂, g₁, g₂ = g}
theorem Subgroup.commutator_mem_commutator {G : Type u_1} [Group G] {g₁ g₂ : G} {H₁ H₂ : Subgroup G} (h₁ : g₁ H₁) (h₂ : g₂ H₂) :
g₁, g₂ H₁, H₂
theorem AddSubgroup.addCommutator_mem_addCommutator {G : Type u_1} [AddGroup G] {g₁ g₂ : G} {H₁ H₂ : AddSubgroup G} (h₁ : g₁ H₁) (h₂ : g₂ H₂) :
g₁, g₂ H₁, H₂
theorem Subgroup.commutator_le {G : Type u_1} [Group G] {H₁ H₂ H₃ : Subgroup G} :
H₁, H₂ H₃ g₁H₁, g₂H₂, g₁, g₂ H₃
theorem AddSubgroup.addCommutator_le {G : Type u_1} [AddGroup G] {H₁ H₂ H₃ : AddSubgroup G} :
H₁, H₂ H₃ g₁H₁, g₂H₂, g₁, g₂ H₃
theorem Subgroup.commutator_mono {G : Type u_1} [Group G] {H₁ H₂ K₁ K₂ : Subgroup G} (h₁ : H₁ K₁) (h₂ : H₂ K₂) :
H₁, H₂ K₁, K₂
theorem AddSubgroup.addCommutator_mono {G : Type u_1} [AddGroup G] {H₁ H₂ K₁ K₂ : AddSubgroup G} (h₁ : H₁ K₁) (h₂ : H₂ K₂) :
H₁, H₂ K₁, K₂
theorem Subgroup.commutator_eq_bot_iff_le_centralizer {G : Type u_1} [Group G] {H₁ H₂ : Subgroup G} :
H₁, H₂ = H₁ centralizer H₂
theorem Subgroup.commutator_commutator_eq_bot_of_rotate {G : Type u_1} [Group G] {H₁ H₂ H₃ : Subgroup G} (h1 : H₂, H₃, H₁ = ) (h2 : H₃, H₁, H₂ = ) :
H₁, H₂, H₃ =

The Three Subgroups Lemma (via the Hall-Witt identity)

theorem AddSubgroup.addCommutator_addCommutator_eq_bot_of_rotate {G : Type u_1} [AddGroup G] {H₁ H₂ H₃ : AddSubgroup G} (h1 : H₂, H₃, H₁ = ) (h2 : H₃, H₁, H₂ = ) :
H₁, H₂, H₃ =

The Three Subgroups Lemma (via the Hall-Witt identity)

theorem Subgroup.commutator_comm_le {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) :
H₁, H₂ H₂, H₁
theorem AddSubgroup.addCommutator_comm_le {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) :
H₁, H₂ H₂, H₁
theorem Subgroup.commutator_comm {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) :
H₁, H₂ = H₂, H₁
theorem AddSubgroup.addCommutator_comm {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) :
H₁, H₂ = H₂, H₁
instance Subgroup.commutator_normal {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) [h₁ : H₁.Normal] [h₂ : H₂.Normal] :
H₁, H₂.Normal
instance AddSubgroup.addCommutator_normal {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) [h₁ : H₁.Normal] [h₂ : H₂.Normal] :
H₁, H₂.Normal
theorem Subgroup.commutator_def' {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) [H₁.Normal] [H₂.Normal] :
H₁, H₂ = normalClosure {g : G | g₁H₁, g₂H₂, g₁, g₂ = g}
theorem AddSubgroup.addCommutator_def' {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) [H₁.Normal] [H₂.Normal] :
H₁, H₂ = normalClosure {g : G | g₁H₁, g₂H₂, g₁, g₂ = g}
theorem Subgroup.commutator_le_right {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) [h : H₂.Normal] :
H₁, H₂ H₂
theorem AddSubgroup.addCommutator_le_right {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) [h : H₂.Normal] :
H₁, H₂ H₂
theorem Subgroup.commutator_le_left {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) [H₁.Normal] :
H₁, H₂ H₁
theorem AddSubgroup.addCommutator_le_left {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) [H₁.Normal] :
H₁, H₂ H₁
@[simp]
theorem Subgroup.commutator_bot_left {G : Type u_1} [Group G] (H₁ : Subgroup G) :
@[simp]
@[simp]
theorem Subgroup.commutator_bot_right {G : Type u_1} [Group G] (H₁ : Subgroup G) :
@[simp]
theorem Subgroup.commutator_le_inf {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) [H₁.Normal] [H₂.Normal] :
H₁, H₂ H₁H₂
theorem AddSubgroup.addCommutator_le_inf {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) [H₁.Normal] [H₂.Normal] :
H₁, H₂ H₁H₂
theorem Subgroup.map_commutator {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] (H₁ H₂ : Subgroup G) (f : G →* G') :
map f H₁, H₂ = map f H₁, map f H₂
theorem AddSubgroup.map_addCommutator {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup G'] (H₁ H₂ : AddSubgroup G) (f : G →+ G') :
map f H₁, H₂ = map f H₁, map f H₂
theorem Subgroup.commutator_le_map_commutator {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] {H₁ H₂ : Subgroup G} {f : G →* G'} {K₁ K₂ : Subgroup G'} (h₁ : K₁ map f H₁) (h₂ : K₂ map f H₂) :
K₁, K₂ map f H₁, H₂
theorem AddSubgroup.addCommutator_le_map_addCommutator {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup G'] {H₁ H₂ : AddSubgroup G} {f : G →+ G'} {K₁ K₂ : AddSubgroup G'} (h₁ : K₁ map f H₁) (h₂ : K₂ map f H₂) :
K₁, K₂ map f H₁, H₂
instance Subgroup.commutator_characteristic {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) [h₁ : H₁.Characteristic] [h₂ : H₂.Characteristic] :
instance AddSubgroup.addCommutator_characteristic {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) [h₁ : H₁.Characteristic] [h₂ : H₂.Characteristic] :
theorem Subgroup.commutator_prod_prod {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] (H₁ H₂ : Subgroup G) (K₁ K₂ : Subgroup G') :
H₁.prod K₁, H₂.prod K₂ = H₁, H₂.prod K₁, K₂
theorem AddSubgroup.addCommutator_sum_sum {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup G'] (H₁ H₂ : AddSubgroup G) (K₁ K₂ : AddSubgroup G') :
H₁.prod K₁, H₂.prod K₂ = H₁, H₂.prod K₁, K₂
theorem Subgroup.commutator_pi_pi_le {η : Type u_4} {Gs : ηType u_5} [(i : η) → Group (Gs i)] (H K : (i : η) → Subgroup (Gs i)) :
pi Set.univ H, pi Set.univ K pi Set.univ fun (i : η) => H i, K i

The commutator of direct product is contained in the direct product of the commutators.

See commutator_pi_pi_of_finite for equality given Fintype η.

theorem AddSubgroup.addCommutator_pi_pi_le {η : Type u_4} {Gs : ηType u_5} [(i : η) → AddGroup (Gs i)] (H K : (i : η) → AddSubgroup (Gs i)) :
pi Set.univ H, pi Set.univ K pi Set.univ fun (i : η) => H i, K i

The commutator of direct product is contained in the direct product of the commutators. See commutator_pi_pi_of_finite for equality given Fintype η.

def commutatorSet (G : Type u_1) [Group G] :
Set G

The set of commutator elements ⁅g₁, g₂⁆ in G.

Equations
Instances For
    def addCommutatorSet (G : Type u_1) [AddGroup G] :
    Set G

    The set of additive commutator elements ⁅g₁, g₂⁆ in G.

    Equations
    Instances For
      theorem commutatorSet_def (G : Type u_1) [Group G] :
      commutatorSet G = {g : G | ∃ (g₁ : G) (g₂ : G), g₁, g₂ = g}
      theorem addCommutatorSet_def (G : Type u_1) [AddGroup G] :
      addCommutatorSet G = {g : G | ∃ (g₁ : G) (g₂ : G), g₁, g₂ = g}
      theorem mem_commutatorSet_iff {G : Type u_1} [Group G] {g : G} :
      g commutatorSet G ∃ (g₁ : G) (g₂ : G), g₁, g₂ = g
      theorem mem_addCommutatorSet_iff {G : Type u_1} [AddGroup G] {g : G} :
      g addCommutatorSet G ∃ (g₁ : G) (g₂ : G), g₁, g₂ = g
      theorem commutator_mem_commutatorSet {G : Type u_1} [Group G] (g₁ g₂ : G) :
      theorem addCommutator_mem_addCommutatorSet {G : Type u_1} [AddGroup G] (g₁ g₂ : G) :
      def commutator (G : Type u_1) [Group G] :

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

      Equations
      Instances For
        def addCommutator (G : Type u_1) [AddGroup G] :

        The commutator subgroup of an additive group G is the normal additive subgroup generated by the additive commutators [p,q] = p + q + -p + -q.

        Equations
        Instances For
          @[implicit_reducible]
          instance instNormalCommutator (G : Type u_1) [Group G] :
          Equations
          • =
          @[implicit_reducible]
          Equations
          • =
          @[implicit_reducible]
          Equations
          • =
          @[implicit_reducible]
          Equations
          • =
          theorem Subgroup.commutator_le_self {G : Type u_1} [Group G] (H : Subgroup G) :
          theorem mem_commutatorSet_of_isConj_sq (G : Type u_1) [Group G] {g : G} (hg : IsConj g (g ^ 2)) :

          If g is conjugate to g ^ 2, then g is a commutator

          theorem mem_addCommutatorSet_of_isAddConj_sq (G : Type u_1) [AddGroup G] {g : G} (hg : IsAddConj g (2 g)) :

          If g is conjugate to 2 • g, then g is an additive commutator

          theorem map_commutator_eq (G : Type u_1) [Group G] {H : Type u_4} [Group H] (f : G →* H) :
          theorem map_addCommutator_eq (G : Type u_1) [AddGroup G] {H : Type u_4} [AddGroup H] (f : G →+ H) :
          def commutatorRepresentatives (G : Type u_1) [Group G] :
          Set (G × G)

          Representatives (g₁, g₂) : G × G of commutators ⁅g₁, g₂⁆ ∈ G.

          Equations
          Instances For

            Representatives (g₁, g₂) : G × G of additive commutators ⁅g₁, g₂⁆ ∈ G.

            Equations
            Instances For

              Subgroup generated by representatives g₁ g₂ : G of commutators ⁅g₁, g₂⁆ ∈ G.

              Equations
              Instances For

                Additive subgroup generated by representatives g₁ g₂ : G of additive commutators ⁅g₁, g₂⁆ ∈ G.

                Equations
                Instances For

                  If N is a normal subgroup of G and H a commutative subgroup such that H ⊔ N = ⊤, then N contains commutator G.

                  If N is a normal additive subgroup of G and H a commutative additive subgroup such that H ⊔ N = ⊤, then N contains addCommutator G.