Section EquivalenceUpToTaus.
Context {E : Type -> Type} {R : Type}.
(** The standard [itree] equivalence: "Equivalence Up To Taus", or _weak bisimulation_. *)
Definition eutt : itree E R -> itree E R -> Prop :=
ITree.Eq.Eq.eutt eq.
Infix "≈" := eutt (at level 40).
(** [eutt] is an equivalence relation. *)
Global Instance Equivalence_eutt : Equivalence eutt.

Lemma interp_vis
: forall {E F R} {f : E ~> itree F} U (e: E U) (k: U -> itree E R),
interp f (Vis e k)
≈ ITree.bind (f _ e) (fun x => interp f (k x)).