(***** All the additional conditions in the above auxiliary lemmas were needed for proving the condition Events.inject_separated j j' m tm in his lemma; otherwise, the claim is as before, just updated by replacing star step by corestep_star, as ususal*)

(*NEW:*) (PG: meminj_preserves_globals ge j), exists (c2' : CMin_core) (m2' : mem), corestep_plus CMin_core_sem tge (CMin_Callstate (AST.Internal x) targs tk) tm c2' m2' /\ exists (j' : meminj), inject_incr j j' /\ inject_separated j j' m tm /\ match_cores (CSharpMin_State f (Csharpminor.fn_body f) k e lenv) j' (CSharpMin_State f (Csharpminor.fn_body f) k e lenv) m1 c2' m2'.  (******************End of updated section for internal call rule*****************************)
(************************************************************************************)
Lemma MS_step_case_Return:
forall j m tm cs f e lenv k tk cenv v tv optid
(MINJ : Mem.inject j m tm)
(MCS : match_callstack prog j m tm cs (Mem.nextblock m) (Mem.nextblock tm))
(MK : match_cont (Csharpminor.Kcall optid f e lenv k) tk cenv nil cs)
(RESINJ : val_inject j v tv)