End ForwardSimulations.
Arguments fsim_properties: clear implicits.
Inductive forward_simulation (L1 L2: semantics) : Prop :=
Forward_simulation (index: Type)
(order: index -> index -> Prop)
(match_states: index -> state L1 -> state L2 -> Prop)
(props: fsim_properties L1 L2 index order match_states).
Arguments Forward_simulation {L1 L2 index} order match_states props.
(** An alternate form of the simulation diagram *)

Lemma fsim_simulation':
forall L1 L2 index order match_states, fsim_properties L1 L2 index order match_states ->
forall i s1 t s1', Step L1 s1 t s1' ->
forall s2, match_states i s1 s2 ->
(exists i', exists s2', Plus L2 s2 t s2' /\ match_states i' s1' s2')
\/ (exists i', order i' i /\ t = E0 /\ match_states i' s1' s2).