Inductive ev_plus ge: state -> mem -> _ -> state -> mem -> Prop :=
  | ev_plus_left: 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_plus ge s1 m1 (ev1 ++ ev2) s3 m3.Inductive ev_plus ge: state -> mem -> _ -> state -> mem -> Prop :=
  | ev_plus_left: 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_plus ge s1 m1 (ev1 ++ ev2) s3 m3.

Lemma Clight_new_ev_sim : forall ge c1 m ev c1' m', event_semantics.ev_step (@semSem (Clight_newSem ge)) c1 m ev c1' m' -> forall c2, match_states c1 (fst (CC'.CC_state_to_CC_core c2)) -> exists c2', ev_plus ge c2 m ev c2' m' /\ match_states c1' (fst (CC'.CC_state_to_CC_core c2')).