(** Exploiting determinacy *)
Remark silent_or_not_silent:
forall t, t = E0 \/ t <> E0.
Remark not_silent_length:
forall t1 t2, (length (t1 ** t2) <= 1)%nat -> t1 = E0 \/ t2 = E0.

(* Specifications: *)
Lemma f2b_determinacy_inv:
forall s2 t' s2' t'' s2'',
Step L2 s2 t' s2' -> Step L2 s2 t'' s2'' ->
(t' = E0 /\ t'' = E0 /\ s2' = s2'')
\/ (t' <> E0 /\ t'' <> E0 /\ match_traces (symbolenv L1) t' t'').
Lemma f2b_determinacy_star:
forall s s1, Star L2 s E0 s1 ->
forall t s2 s3,
Step L2 s1 t s2 -> t <> E0 ->
Star L2 s t s3 ->
Star L2 s1 t s3.
Lemma f2b_determinacy_inv:
forall s2 t' s2' t'' s2'',
Step L2 s2 t' s2' -> Step L2 s2 t'' s2'' ->
(t' = E0 /\ t'' = E0 /\ s2' = s2'')
\/ (t' <> E0 /\ t'' <> E0 /\ match_traces (symbolenv L1) t' t'').
Lemma f2b_determinacy_star:
forall s s1, Star L2 s E0 s1 ->
forall t s2 s3,
Step L2 s1 t s2 -> t <> E0 ->
Star L2 s t s3 ->
Star L2 s1 t s3.