Skip to content

Classical.Structures.Group.Commutator

Commutators

This is the Classical.Structures.Group.Commutator module of the Agda Universal Algebra Library.

For elements x and y of a group, the commutator [ x ⸴ y ] = x ∙ y ∙ x ⁻¹ ∙ y ⁻¹ is a measure of the failure of x and y to commute: it is the identity exactly when x ∙ y ≈ y ∙ x.

This module defines the commutator and the commuting relation, and encodes the small algebra the normal-subgroup structure theory of powers consumes; these are the following:

  • Commutes and [_⸴_], with their congruence lemmas;
  • the two absorption laws: a commutator with the identity in either slot is the identity;
  • the equivalence between [ x ⸴ y ] ≈ ε and Commutes x y, in both directions.

The absorption laws are the engine of the support-shrinking argument for subgroups of a power above the diagonal: a commutator of two tuples vanishes at every coordinate where either tuple vanishes, so iterated commutators cut a member's support down to a prescribed block while the equivalence keeps a designated coordinate away from the identity.

{-# OPTIONS --cubical-compatible --exact-split --safe #-}

module Classical.Structures.Group.Commutator where

open import Agda.Primitive using () renaming ( Set to Type )

-- Imports from the Agda Standard Library ---------------------------------------
open import Data.Product     using  ( _,_ )
open import Level            using  ( Level )
open import Relation.Binary  using  ( Setoid )
open import Relation.Nullary using  ( ¬_ )

import Algebra.Properties.Group as GroupProperties
import Relation.Binary.Reasoning.Setoid as SetoidReasoning

-- Imports from the Agda Universal Algebra Library ------------------------------
open import Classical.Bundles.Group           using  ( ⟨_⟩ᵍᵖ )
open import Classical.Structures.Group.Basic  using  ( Group ; module Group-Op )
open import Setoid.Algebras.Basic             using  ( 𝕌[_] ; 𝔻[_] )

The commutator and the commuting relation

Commutator𝒢 packages the two notions and their algebra for a fixed group.

module Commutator {α ρ : Level} (𝒢@(𝑮 , _) : Group α ρ) where
  open Setoid 𝔻[ 𝑮 ]            using  ( _≈_ ) renaming  ( refl to ≈refl )
  open SetoidReasoning 𝔻[ 𝑮 ]
  open Group-Op 𝒢               using  ( _∙_ ; ε ; _⁻¹ ; ∙-cong ; ⁻¹-cong ; assoc-law
                                        ; idˡ-law ; idʳ-law ; invˡ-law ; invʳ-law )
  open GroupProperties  𝒢 ⟩ᵍᵖ  using  ( ε⁻¹≈ε )

The commuting relation: x and y commute when the two products agree.

  -- The commuting relation.
  Commutes : 𝕌[ 𝑮 ]  𝕌[ 𝑮 ]  Type ρ
  Commutes x y = x  y  y  x

The relation is a congruence in each slot separately; the right-slot form is the one the finite searches below the diagonal transport along an enumeration.

  -- Commuting is preserved by ≈ in the right slot.
  Commutes-congʳ :  {x y y'}  y  y'  Commutes x y  Commutes x y'
  Commutes-congʳ {x} {y} {y'} e c = begin
    x  y'  ≈˘⟨ ∙-cong ≈refl e 
    x  y   ≈⟨ c 
    y  x   ≈⟨ ∙-cong e ≈refl 
    y'  x  

The commutator, in the left-normed convention x ∙ y ∙ x ⁻¹ ∙ y ⁻¹.

  -- The commutator of two elements.
  [_⸴_] : 𝕌[ 𝑮 ]  𝕌[ 𝑮 ]  𝕌[ 𝑮 ]
  [ x  y ] = x  y  x ⁻¹  y ⁻¹

The commutator is a congruence in both slots at once, by the congruences of the two group operations.

  -- The commutator respects ≈ in both slots.
  commutator-cong :  {x x' y y'}  x  x'  y  y'  [ x  y ]  [ x'  y' ]
  commutator-cong ex ey = ∙-cong (∙-cong (∙-cong ex ey) (⁻¹-cong ex)) (⁻¹-cong ey)

The absorption laws

A commutator with the identity in the left slot collapses: the two x-factors become ε and ε ⁻¹, and what remains is y ∙ y ⁻¹.

  -- A commutator with the identity on the left is the identity.
  commutator-εˡ :  {x} y  x  ε  [ x  y ]  ε
  commutator-εˡ {x} y x≈ε = begin
    x  y  x ⁻¹  y ⁻¹  ≈⟨ ∙-cong (∙-cong (∙-cong x≈ε ≈refl) (⁻¹-cong x≈ε)) ≈refl 
    ε  y  ε ⁻¹  y ⁻¹  ≈⟨ ∙-cong (∙-cong (idˡ-law y) ε⁻¹≈ε) ≈refl 
    y  ε  y ⁻¹         ≈⟨ ∙-cong (idʳ-law y) ≈refl 
    y  y ⁻¹             ≈⟨ invʳ-law y 
    ε                    

Symmetrically for the right slot, where what remains is x ∙ x ⁻¹.

  -- A commutator with the identity on the right is the identity.
  commutator-εʳ :  x {y}  y  ε  [ x  y ]  ε
  commutator-εʳ x {y} y≈ε = begin
    x  y  x ⁻¹  y ⁻¹  ≈⟨ ∙-cong (∙-cong (∙-cong ≈refl y≈ε) ≈refl) (⁻¹-cong y≈ε) 
    x  ε  x ⁻¹  ε ⁻¹  ≈⟨ ∙-cong (∙-cong (idʳ-law x) ≈refl) ε⁻¹≈ε 
    x  x ⁻¹  ε         ≈⟨ idʳ-law (x  x ⁻¹) 
    x  x ⁻¹             ≈⟨ invʳ-law x 
    ε                    

The commutator detects commuting

Multiplying the commutator by y ∙ x on the right telescopes back to x ∙ y, so a trivial commutator forces the products to agree.

  -- A trivial commutator means the elements commute.
  commutator≈ε→commutes :  x y  [ x  y ]  ε  Commutes x y
  commutator≈ε→commutes x y h = begin
    x  y                          ≈˘⟨ idʳ-law (x  y) 
    x  y  ε                      ≈˘⟨ ∙-cong ≈refl (invˡ-law x) 
    x  y  (x ⁻¹  x)             ≈˘⟨ assoc-law (x  y) (x ⁻¹) x 
    x  y  x ⁻¹  x               ≈˘⟨ ∙-cong (idʳ-law (x  y  x ⁻¹)) ≈refl 
    x  y  x ⁻¹  ε  x           ≈˘⟨ ∙-cong (∙-cong ≈refl (invˡ-law y)) ≈refl 
    x  y  x ⁻¹  (y ⁻¹  y)  x  ≈˘⟨ ∙-cong (assoc-law (x  y  x ⁻¹) (y ⁻¹) y) ≈refl 
    x  y  x ⁻¹  y ⁻¹  y  x    ≈⟨ assoc-law [ x  y ] y x 
    [ x  y ]  (y  x)            ≈⟨ ∙-cong h ≈refl 
    ε  (y  x)                    ≈⟨ idˡ-law (y  x) 
    y  x                          

The contrapositive is the form the support-shrinking iteration consumes: a non-commuting pair of coordinate values keeps the commutator of the tuples away from the identity at that coordinate.

  -- Non-commuting elements have a nontrivial commutator.
  ¬commutes→commutator≉ε :  x y  ¬ Commutes x y  ¬ [ x  y ]  ε
  ¬commutes→commutator≉ε x y nc h = nc (commutator≈ε→commutes x y h)

The forward direction closes the equivalence; it is the same telescope read backwards, recorded so that consumers never redo the rearrangement.

  -- Commuting elements have a trivial commutator.
  commutes→commutator≈ε :  x y  Commutes x y  [ x  y ]  ε
  commutes→commutator≈ε x y c = begin
    x  y  x ⁻¹  y ⁻¹        ≈⟨ ∙-cong (∙-cong c ≈refl) ≈refl 
    y  x  x ⁻¹  y ⁻¹        ≈⟨ ∙-cong (assoc-law y x (x ⁻¹)) ≈refl 
    y  (x  x ⁻¹)  y ⁻¹      ≈⟨ ∙-cong (∙-cong ≈refl (invʳ-law x)) ≈refl 
    y  ε  y ⁻¹               ≈⟨ ∙-cong (idʳ-law y) ≈refl 
    y  y ⁻¹                   ≈⟨ invʳ-law y 
    ε