Section FACTOR_BACKWARD_SIMULATION.
Variable L1: semantics.
Variable L2: semantics.
Context index order match_states (sim: bsim_properties L1 L2 index order match_states).
Hypothesis L1single: single_events L1.
Hypothesis L2wb: well_behaved_traces L2.
Inductive fbs_match: index -> state L1 -> (trace * state L2) -> Prop :=
| fbs_match_intro: forall i s1 t s2 s1',
Star L1 s1 t s1' -> match_states i s1' s2 ->
t = E0 \/ output_trace t ->
fbs_match i s1 (t, s2).
End FACTOR_BACKWARD_SIMULATION.
(** Receptiveness of [atomic L]. *)
Record strongly_receptive (L: semantics) : Prop :=
Strongly_receptive {
ssr_receptive: forall s ev1 t1 s1 ev2,
Step L s (ev1 :: t1) s1 ->
match_traces (symbolenv L) (ev1 :: nil) (ev2 :: nil) ->
exists s2, exists t2, Step L s (ev2 :: t2) s2;
ssr_well_behaved:
well_behaved_traces L
}.

Theorem atomic_receptive:
forall L, strongly_receptive L -> receptive (atomic L).