(** * Program behaviors for the "atomic" construction *)
Section ATOMIC.
Variable L: semantics.
Hypothesis Lwb: well_behaved_traces L.
Remark atomic_finish: forall s t, output_trace t -> Star (atomic L) (t, s) t (E0, s).

Lemma atomic_star_star_gen:
forall ts1 t ts2, Star (atomic L) ts1 t ts2 ->
exists t', Star L (snd ts1) t' (snd ts2) /\ fst ts1 ** t' = t ** fst ts2.