Section TRACEINF_REACTS.
Variable s0: state L.
Hypothesis reacts:
forall s1 t1, Star L s0 t1 s1 ->
exists s2, exists t2, Star L s1 t2 s2 /\ t2 <> E0.
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.
End TRACEINF_REACTS.

Lemma diverges_forever_silent:
forall s0,
(forall s1 t1, Star L s0 t1 s1 -> exists s2, Step L s1 E0 s2) ->
Forever_silent L s0.