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 conj_eq_commutatorElement_mul {G : Type u_1} [Group G] {g₁ g₂ : G} :
(MulAut.conj g₁) g₂ = ⁅g₁, g₂⁆ * g₂
theorem addConj_eq_addCommutatorElement_add {G : Type u_1} [AddGroup G] {g₁ g₂ : G} :
(AddAut.addConj g₁) g₂ = ⁅g₁, g₂⁆ + g₂
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₁⁆
@[simp]
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₂⁆
@[simp]
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₃⁆
theorem commutatorElement_mul_left_eq_conj_mul {G : Type u_1} [Group G] (a b c : G) :
⁅a * b, c⁆ = a * ⁅b, c⁆ * a⁻¹ * ⁅a, c⁆
theorem addCommutatorElement_add_left_eq_addConj_add {G : Type u_1} [AddGroup G] (a b c : G) :
⁅a + b, c⁆ = a + ⁅b, c⁆ + -a + ⁅a, c⁆
theorem commutatorElement_mul_right_eq_mul_conj {G : Type u_1} [Group G] (a b c : G) :
⁅a, b * c⁆ = ⁅a, b⁆ * b * ⁅a, c⁆ * b⁻¹
theorem addCommutatorElement_add_right_eq_add_addConj {G : Type u_1} [AddGroup G] (a b c : G) :
⁅a, b + c⁆ = ⁅a, b⁆ + b + ⁅a, c⁆ + -b
theorem commutatorElement_inv_left {G : Type u_1} [Group G] (a b : G) :
theorem addCommutatorElement_neg_left {G : Type u_1} [AddGroup G] (a b : G) :
⁅-a, b⁆ = -a + ⁅b, a⁆ + a
theorem commutatorElement_inv_right {G : Type u_1} [Group G] (a b : G) :
theorem addCommutatorElement_neg_right {G : Type u_1} [AddGroup G] (a b : G) :
⁅a, -b⁆ = -b + ⁅b, a⁆ + b

The Hall-Witt identity

The Hall-Witt identity

The Hall-Witt identity

The Hall-Witt identity

The Hall-Witt identity

The Hall-Witt identity

The Hall-Witt identity

The Hall-Witt identity

theorem commutatorElement_mul_left_mul {G : Type u_1} [Group G] (a b c : G) :
⁅a * b, c⁆ * ⁅c * a, b⁆ * ⁅b * c, a⁆ = 1
theorem addCommutatorElement_add_left_add {G : Type u_1} [AddGroup G] (a b c : G) :
⁅a + b, c⁆ + ⁅c + a, b⁆ + ⁅b + c, a⁆ = 0
theorem commutatorElement_mul_right_mul {G : Type u_1} [Group G] (a b c : G) :
⁅a, b * c⁆ * ⁅b, c * a⁆ * ⁅c, a * b⁆ = 1
theorem addCommutatorElement_add_right_add {G : Type u_1} [AddGroup G] (a b c : G) :
⁅a, b + c⁆ + ⁅b, c + a⁆ + ⁅c, a + b⁆ = 0
@[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.commutator_eq_bot_of_disjoint {G : Type u_1} [Group G] {H₁ H₂ : Subgroup G} [H₁.Normal] [H₂.Normal] (h : Disjoint H₁ H₂) :
⁅H₁, H₂⁆ = ⊥
theorem Subgroup.commutator_le_sup {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) :
⁅H₁, H₂⁆ ≤ H₁ ⊔ H₂
theorem AddSubgroup.addCommutator_le_sup {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) :
⁅H₁, H₂⁆ ≤ H₁ ⊔ H₂
theorem Subgroup.normalizer_commutator_ge_left {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) :
H₁ ≤ normalizer ↑⁅H₁, H₂⁆
theorem AddSubgroup.normalizer_addCommutator_ge_left {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) :
H₁ ≤ normalizer ↑⁅H₁, H₂⁆
theorem Subgroup.normalizer_commutator_ge_right {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) :
H₂ ≤ normalizer ↑⁅H₁, H₂⁆
instance Subgroup.normal_subgroupOf_commutator_sup {G : Type u_1} [Group G] (H₁ H₂ : Subgroup G) :
(⁅H₁, H₂⁆.subgroupOf (H₁ ⊔ H₂)).Normal
instance AddSubgroup.normal_addSubgroupOf_addCommutator_sup {G : Type u_1} [AddGroup G] (H₁ H₂ : AddSubgroup G) :
(⁅H₁, H₂⁆.addSubgroupOf (H₁ ⊔ H₂)).Normal
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
          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.