Section EUTTG_Properties1.
Context {E : Type -> Type} {R1 R2 : Type} (RR : R1 -> R2 -> Prop).
Local Notation euttG := (@euttG E R1 R2 RR).
Variant transL (r: itree E R1 -> itree E R2 -> Prop) (t1: itree E R1) (t2: itree E R2) : Prop :=
| transL_intro t' RR1
(EQL: eqit RR1 true true t1 t')
(EQR: r t' t2)
(LERR: forall x x' y, RR1 x x' -> RR x' y -> RR x y)
: transL r t1 t2
.
Hint Constructors transL.

Lemma transL_closed vclo r
(MON: monotone2 vclo)
(COMP: wcompatible2 (eqit_ RR true true vclo) (transD RR))
(CLOV: forall r (CLOL: transL r <2= r), transL (vclo r) <2= vclo r)
(CLOL: transL r <2= r)
(CLOD: transD RR r <2= r):
transL (gupaco2 (eqit_ RR true true vclo) (transD RR) r)
<2= gupaco2 (eqit_ RR true true vclo) (transD RR) r.