Parameter MC_order :  core_data -> core_data -> Prop.Parameter MC_wellfounded: well_founded MC_order.Definition MC_measure (q:CSharpMin_core): nat :=
  match q with
  | CSharpMin_State fn s k e lenv => seq_left_depth s
  | _ => O
  end.

Lemma MS_step_case_Call: forall cenv sz f tfn j m tm e lenv te sp lo hi cs k tk xenv x x0 x1 a vf fd optid vargs bl (EvalA: Csharpminor.eval_expr ge e lenv m a vf) (EvalBL: Csharpminor.eval_exprlist ge e lenv m bl vargs) (FF: Genv.find_funct ge vf = Some fd) (TRF : transl_funbody cenv sz f = OK tfn) (MINJ : Mem.inject j m tm) (MCS : match_callstack prog j m tm (Frame cenv tfn e lenv te sp lo hi :: cs) (Mem.nextblock m) (Mem.nextblock tm)) (MK : match_cont tk k cenv xenv cs) (EQ : transl_expr cenv a = OK (x, x0)) (EQ1 : transl_exprlist cenv bl = OK x1) (*NEW:*) (PG: meminj_preserves_globals ge j), exists c2' : CMin_core, exists m2' : mem, corestep_plus CMin_core_sem tge (CMin_State tfn (Scall optid (Csharpminor.funsig fd) x x1) k (Vptr sp Int.zero) te) tm c2' m2' /\ match_cores (CSharpMin_Callstate fd vargs (Csharpminor.Kcall optid f e lenv tk)) j (CSharpMin_Callstate fd vargs (Csharpminor.Kcall optid f e lenv tk)) m c2' m2'.