Section CORESTEPS.
Variable cenv : compilenv.
Variable sz : Z.
Variable f : Csharpminor.function.
Variable tfn : function.
Variable mu : SM_Injection.
Variable m tm : mem.
Variable e : Csharpminor.env.
Variable lenv : temp_env.
Variable te : env.
Variable sp lo hi: Values.block.
Variable cs : callstack.
Variable s : Csharpminor.stmt.
Variable k : Csharpminor.cont.
Variable tk : cont.
Variable xenv : exit_env.
Variable PRE: REACH_closed m (vis mu) /\
meminj_preserves_globals ge (as_inj mu) /\
(forall b, isGlobalBlock ge b = true -> frgnBlocksSrc mu b = true) /\
sm_valid mu m tm /\ SM_wd mu /\
Mem.inject (as_inj mu) m tm.
Variable TRF : transl_funbody cenv sz f = OK tfn.
*)
(* Lemma MS_step_case_Builtin: forall x t ef optid vres m' bl vargs (EvalArgs: Csharpminor.eval_exprlist ge e lenv m bl vargs) (ExtCall: Events.external_call ef ge vargs m t vres m') (MCS : structured_match_callstack mu m tm (Frame cenv tfn e lenv te sp lo hi :: cs) (Mem.nextblock m) (Mem.nextblock tm)) (EQ : transl_exprlist cenv bl = OK x), exists c2' : CMin_core, exists m2' mu', corestep_plus CMin_core_sem tge (CMin_State tfn (Sbuiltin optid ef x) tk (Vptr sp Int.zero) te) tm c2' m2' /\ intern_incr mu mu' /\ sm_inject_separated mu mu' m tm /\ sm_locally_allocated mu mu' m tm m' m2' /\ Match_cores (CSharpMin_State f Csharpminor.Sskip k e (set_optvar optid vres lenv)) mu' (CSharpMin_State f Csharpminor.Sskip k e (set_optvar optid vres lenv)) m' c2' m2' /\ SM_wd mu' /\ sm_valid mu' m' m2'. *)
End CORESTEPS.

Lemma eff_make_store_correct:
forall f sp te tm addr tvaddr rhs tvrhs chunk m vaddr vrhs m' fn k,
eval_expr tge sp te tm addr tvaddr ->
eval_expr tge sp te tm rhs tvrhs ->
Mem.storev chunk m vaddr vrhs = Some m' ->
Mem.inject f m tm ->
val_inject f vaddr tvaddr ->
val_inject f vrhs tvrhs ->
exists tm', exists tvrhs',
cmin_effstep tge (StoreEffect tvaddr (encode_val chunk tvrhs')) (CMin_State fn (make_store chunk addr rhs) k sp te) tm
(CMin_State fn Sskip k sp te) tm'
/\ Mem.storev chunk tm tvaddr tvrhs' = Some tm'
/\ Mem.inject f m' tm'.