Section Modular.
Variables A X: Type.
Variable TX: reduction_t A X.
Let F  := Comp (chaining_l (expand TX TX)) (chaining_r (bisim TX TX)).
Let G  := Comp (star (X:=X)) (Union2 (identity (X:=X) (Y:=X)) (constant (bisim TX TX))).
intros R; unfold G, Comp, Union2, identity, constant.
eapply eeq_trans; [ apply inv_star | apply star_eeq ].
eapply eeq_trans; [ apply inv_union2 | apply union2_eeq; auto ].
split; intros x y H; apply (bisim_sym H).
Qed.
Variable R: relation X.
Hypothesis HRt: evolve_t TX TX R (F R).
Hypothesis HRa: evolve_a TX TX R (G R).
Hypothesis HRt': evolve_t TX TX (trans R) (F (trans R)).
Hypothesis HRa': evolve_a TX TX (trans R) (G (trans R)).

(** Theorem 2.5 *)
Theorem upto: incl R (bisim TX TX).