End CLC_SEM.
(* extending Clight_sim to event semantics *)
Inductive ev_star ge: state -> mem -> _ -> state -> mem -> Prop :=
| ev_star_refl: forall s m,
ev_star ge s m nil s m
| ev_star_step: forall s1 m1 ev1 s2 m2 ev2 s3 m3,
ev_step (CLC_evsem ge) s1 m1 ev1 s2 m2 -> ev_star ge s2 m2 ev2 s3 m3 ->
ev_star ge s1 m1 (ev1 ++ ev2) s3 m3.

(* Specifications: *)
Lemma ev_star_one:
forall ge s1 m1 ev s2 m2, ev_step (CLC_evsem ge) s1 m1 ev s2 m2 -> ev_star ge s1 m1 ev s2 m2.
Lemma ev_star_two:
forall ge s1 m1 ev1 s2 m2 ev2 s3 m3,
ev_step (CLC_evsem ge) s1 m1 ev1 s2 m2 -> ev_step (CLC_evsem ge) s2 m2 ev2 s3 m3 ->
ev_star ge s1 m1 (ev1 ++ ev2) s3 m3.
Lemma ev_star_trans:
forall ge {s1 m1 ev1 s2 m2}, ev_star ge s1 m1 ev1 s2 m2 ->
forall {ev2 s3 m3}, ev_star ge s2 m2 ev2 s3 m3 -> ev_star ge s1 m1 (ev1 ++ ev2) s3 m3.