(** * Backward simulations between two transition semantics. *)

Definition safe (L: semantics) (s: state L) : Prop :=
  forall s',
  Star L s E0 s' ->
  (exists r, final_state L s' r)
  \/ (exists t, exists s'', Step L s' t s'').

(* Specifications: *)
Lemma star_safe: forall (L: semantics) s s', Star L s E0 s' -> safe L s -> safe L s'.
Lemma star_safe: forall (L: semantics) s s', Star L s E0 s' -> safe L s -> safe L s'.