Section TranslateFacts.
Context {E F : Type -> Type}.
Context {R : Type}.
Context (h : E ~> F).
Global Instance eq_itree_translate' :
Proper (eq_itree eq ==> eq_itree eq) (@translate _ _ h R).
Global Instance eq_itree_translateF :
Proper (going (eq_itree eq) ==> eq_itree eq)
(translateF h (@translate _ _ h R)).
End TranslateFacts.

Lemma translate_cmpE : forall E F G R (g : F ~> G) (f : E ~> F) (t : itree E R),
translate (f >>> g)%cat t ≅ translate g (translate f t).