module GpdCont.GroupAction.Integer where

open import GpdCont.Prelude
open import GpdCont.GroupAction.Base

open import Cubical.Foundations.HLevels
open import Cubical.Algebra.Group.Base using (Group)
open import Cubical.Algebra.Group.Morphisms using (GroupHom)
open import Cubical.Algebra.Group.MorphismProperties using (idGroupHom)
open import Cubical.HITs.FreeGroup as FG using (freeGroupGroup)

 : Group ℓ-zero
 = freeGroupGroup Unit

1ℤ :   
1ℤ = FG.η tt

ℤ-rec :  {} {G : Group } (g₀ :  G )  GroupHom  G
ℤ-rec g₀ = FG.rec  _  g₀)

ℤ-action :  {} {X : hSet } (σ :  X    X )  Action  X
ℤ-action = GroupHom→Action  ℤ-rec