\import Algebra.Group
\import Algebra.Group.GSet
\import Function
\import Paths
\import Set.SetHom
\record EquivariantMap {G : Group} \extends SetHom {
\override Dom : GSet G
\override Cod : GSet G
| func-** {e : Dom} {g : G} : func (g ** e) = g ** func e
} \where {
\protected \func id {G : Group} {X : GSet G} : EquivariantMap X X \cowith
| func x => x
| func-** => idp
\protected \func \fixl 8 compose \alias \infixl 8 ∘ {G : Group} {X Y Z : GSet G} (g : EquivariantMap Y Z) (f : EquivariantMap X Y) : EquivariantMap X Z \cowith
| func x => g (f x)
| func-** {x} {a} => pmap g func-** *> func-**
}