proposition: 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)).
proof: Proof. intros; rewrite InterpFacts.interp_vis; setoid_rewrite tau_eutt; reflexivity. Qed.
imports: Coq(Setoid Morphisms) ITree(Eq.Shallow) ITree.Core.ITreeDefinition ITree.Basics.Basics ITree.Indexed.Sum ITree.Interp.Interp ITree.Interp.Recursion ITree(Eq.Eqit Eq.UpToTaus Interp.InterpFacts Interp.RecursionFacts)