(** The simulation proof *)

(* Specifications: *)
Lemma transl_step:
forall S1 t S2, Clight.step2 ge S1 t S2 ->
forall T1, match_states S1 T1 ->
exists T2, plus step tge T1 t T2 /\ match_states S2 T2.
Lemma transl_initial_states:
forall S, Clight.initial_state prog S ->
exists R, initial_state tprog R /\ match_states S R.
Lemma transl_final_states:
forall S R r,
match_states S R -> Clight.final_state S r -> final_state R r.
Theorem transl_program_correct:
forward_simulation (Clight.semantics2 prog) (Csharpminor.semantics tprog).