Section observing_relations.
Context {E : Type -> Type} {R : Type}.
Variable (eq_ : itree' E R -> itree' E R -> Prop).
Global Instance observing_observe :
Proper (observing eq_ ==> eq_) (@observe E R).
End observing_relations.
(** ** Unfolding lemmas for [bind] *)

Lemma unfold_bind_ {E R S}
(t : itree E R) (k : R -> itree E S) :
observing eq
(ITree.bind t k)
(ITree._bind k (fun t => ITree.bind t k) (observe t)).