CoFixpoint build_traceinf' (s1: state L) (t1: trace) (ST: Star L s0 t1 s1) : traceinf' :=
match reacts' ST with
| existT s2 (exist t2 (conj A B)) =>
Econsinf' t2
(build_traceinf' (star_trans ST A (eq_refl _)))
B
end.

(* Specifications: *)
Lemma reacts_forever_reactive_rec:
forall s1 t1 (ST: Star L s0 t1 s1),
Forever_reactive L s1 (traceinf_of_traceinf' (build_traceinf' ST)).
Lemma reacts_forever_reactive:
exists T, Forever_reactive L s0 T.
Lemma reacts_forever_reactive_rec:
forall s1 t1 (ST: Star L s0 t1 s1),
Forever_reactive L s1 (traceinf_of_traceinf' (build_traceinf' ST)).
Lemma reacts_forever_reactive:
exists T, Forever_reactive L s0 T.