Corollary backward_simulation_same_safe_behavior:
  forall L1 L2, backward_simulation L1 L2 ->
  (forall beh, program_behaves L1 beh -> not_wrong beh) ->
  (forall beh, program_behaves L2 beh -> program_behaves L1 beh).Remark atomic_finish: forall s t, output_trace t -> Star (atomic L) (t, s) t (E0, s).

(* Specifications: *)
Lemma step_atomic_plus: forall s1 t s2, Step L s1 t s2 -> Plus (atomic L) (E0,s1) t (E0,s2).
Lemma star_atomic_star: forall s1 t s2, Star L s1 t s2 -> Star (atomic L) (E0,s1) t (E0,s2).
Lemma atomic_forward_simulation: forward_simulation L (atomic L).
Lemma atomic_star_star: forall s1 t s2, Star (atomic L) (E0,s1) t (E0,s2) -> Star L s1 t s2.
Lemma atomic_forever_silent_forever_silent: forall s, Forever_silent (atomic L) s -> Forever_silent L (snd s).
Lemma step_atomic_plus: forall s1 t s2, Step L s1 t s2 -> Plus (atomic L) (E0,s1) t (E0,s2).
Lemma star_atomic_star: forall s1 t s2, Star L s1 t s2 -> Star (atomic L) (E0,s1) t (E0,s2).
Lemma atomic_forward_simulation: forward_simulation L (atomic L).
Lemma atomic_star_star: forall s1 t s2, Star (atomic L) (E0,s1) t (E0,s2) -> Star L s1 t s2.
Lemma atomic_forever_silent_forever_silent: forall s, Forever_silent (atomic L) s -> Forever_silent L (snd s).