Section SUTT_facts.
Context {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop).

(** Generalized heterogeneous version of [eutt_bind] *)
Lemma sutt_bind' {E R1 R2 S1 S2} {RR: R1 -> R2 -> Prop} {SS: S1 -> S2 -> Prop}:
forall t1 t2,
sutt RR t1 t2 ->
forall s1 s2, (forall r1 r2, RR r1 r2 -> sutt SS (s1 r1) (s2 r2)) ->
@sutt E _ _ SS (ITree.bind t1 s1) (ITree.bind t2 s2).