End INIT_MEM.

(* Specifications: *)
Lemma init_mem_exists:
forall m, Genv.init_mem p = Some m ->
exists tm, Genv.init_mem tp = Some tm.
Theorem init_mem_inject:
forall m,
Genv.init_mem p = Some m ->
exists f tm, Genv.init_mem tp = Some tm /\ Mem.inject f m tm /\ meminj_preserves_globals f.
Lemma transf_initial_states:
forall S1, initial_state p S1 -> exists S2, initial_state tp S2 /\ match_states S1 S2.
Lemma transf_final_states:
forall S1 S2 r,
match_states S1 S2 -> final_state S1 r -> final_state S2 r.
Lemma transf_program_correct_1:
forward_simulation (semantics p) (semantics tp).