Section FORWARD_TO_BACKWARD.
Context L1 L2 index order match_states (FS: fsim_properties L1 L2 index order match_states).
Hypothesis L1_receptive: receptive L1.
Hypothesis L2_determinate: determinate L2.
(** Exploiting forward simulation *)
Inductive f2b_transitions: state L1 -> state L2 -> Prop :=
| f2b_trans_final: forall s1 s2 s1' r,
Star L1 s1 E0 s1' ->
final_state L1 s1' r ->
final_state L2 s2 r ->
f2b_transitions s1 s2
| f2b_trans_step: forall s1 s2 s1' t s1'' s2' i' i'',
Star L1 s1 E0 s1' ->
Step L1 s1' t s1'' ->
Plus L2 s2 t s2' ->
match_states i' s1' s2 ->
match_states i'' s1'' s2' ->
f2b_transitions s1 s2.
(** 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.

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'').