End EXPR.
(** ** Semantic preservation for statements *)
(** The simulation diagram for the translation of statements and functions is a "plus" diagram of the form << I S1 ------- R1 |          | t |        + | t v          v S2 ------- R2 I                         I >>  The invariant [I] is the [match_states] predicate that we now define. *)
Inductive match_transl: stmt -> cont -> stmt -> cont -> Prop :=
| match_transl_0: forall ts tk,
match_transl ts tk ts tk
| match_transl_1: forall ts tk,
match_transl (Sblock ts) tk ts (Kblock tk).
(* Lemma match_transl_step: forall ts tk ts' tk' f te le m, match_transl (Sblock ts) tk ts' tk' -> star (clight_corestep tge (CL_core f ts' tk' te le) m E0 (State f ts (Kblock tk) te le m). *)

Lemma match_transl_effstep:
forall ts tk ts' tk' f te le m,
match_transl (Sblock ts) tk ts' tk' ->
effstep_star csharpmin_eff_sem  tge EmptyEffect
(CSharpMin_State f ts' tk' te le) m
(CSharpMin_State f ts (Kblock tk) te le) m.