Groups.Symmetric.Inclusion

We show that there is an inclusion from any group into into the Symmetric group of its underlying set.

Module header

{-# OPTIONS --safe --cubical #-}

open import Cubical.Algebra.Group

module Groups.Symmetric.Inclusion {} (𝓖 : Group ) where

open import Cubical.Data.Sigma
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.Structure
open import Cubical.Functions.FunExtEquiv
open import Groups.Function.Inverse
open import Groups.Symmetric

open GroupStr (𝓖 .snd)

SymGroup : Group 
SymGroup = Symmetric-Group  𝓖  is-set

The inclusion takes g to the function λ x → g · x with inverse λ x → g ⁻¹ · x

inc :  𝓖    SymGroup 
inc g =  x  g · x) ,  x  inv g · x) , i , ii
  where
    i : (b x :  𝓖 )  x  inv g · b  g · x  b
    i b x p =
      g · x          ≡⟨ cong (g ·_) p 
      g · (inv g · b) ≡⟨ ·Assoc g (inv g) b 
      (g · inv g) · b ≡⟨ cong ( b) (·InvR g) 
      1g · b          ≡⟨ ·IdL b 
      b 

    ii : (a y :  𝓖 )  y  g · a  inv g · y  a
    ii a y p =
      inv g · y       ≡⟨ cong (inv g ·_) p 
      inv g · (g · a) ≡⟨ ·Assoc (inv g) g a 
      (inv g · g) · a ≡⟨ cong ( a) (·InvL g) 
      1g · a          ≡⟨ ·IdL a 
      a 

Inclusion properties

The inclusion can be shown to be injective and a group homomorphism.

inc-injective : (x y :  𝓖 )  inc x  inc y  x  y
inc-injective x y p =
  x     ≡⟨ sym (·IdR x) 
  x · 1g ≡⟨ cong  a  fst a 1g) p 
  y · 1g ≡⟨ ·IdR y 
  y 

open GroupStr (SymGroup .snd) using () renaming (_·_ to _·′_; 1g to 1gs; inv to invs)
inc-homo : (x y :  𝓖 )  inc (x · y)  (inc x) ·′ (inc y)
inc-homo x y = inverse-equality-lemma _ _ is-set is-set
  λ g  sym (·Assoc x y g)

inc-pres1 : inc 1g  1gs
inc-pres1 = inverse-equality-lemma (inc 1g) 1gs is-set is-set ·IdL

inc-pres-inv : (g :  𝓖 )  inc (inv g)  invs (inc g)
inc-pres-inv g = inverse-equality-lemma (inc (inv g)) (invs (inc g)) is-set is-set  x  refl)