(* Lemma transl_step_case_Set: forall cenv sz f tfn j m tm e lenv te sp m' lo hi cs k tk xenv x x0 v a chunk addr vaddr (EE1 : Csharpminor.eval_expr ge e lenv m addr vaddr) (EE2 : Csharpminor.eval_expr ge e lenv m a v) (STV : Mem.storev chunk m vaddr v = Some m') (TRF : transl_funbody cenv sz f = OK tfn) (MINJ : Mem.inject j m tm) (MCS : match_callstack j m tm (Frame cenv tfn e lenv te sp lo hi :: cs) (Mem.nextblock m) (Mem.nextblock tm)) (MK : match_cont k tk cenv xenv cs) (EQ : transl_expr cenv addr = OK (x, x0)) x1 x2 (EQ1 : transl_expr cenv a = OK (x1, x2)), exists T2 : state, plus step tge (State tfn (make_store chunk x x1) tk (Vptr sp Int.zero) te tm) E0 T2 /\ match_states (Csharpminor.State f Csharpminor.Sskip k e lenv m') T2.  CASE has disappeared in CompCert 2.0 *)

Lemma transl_step_case_InternalCall:
forall cenv  f j m tm e cs k tk vargs targs x m1 lenv
(Param1: list_norepet (map fst (Csharpminor.fn_vars f)))
(Param2 : list_norepet (Csharpminor.fn_params f))
(Param3 : list_disjoint (Csharpminor.fn_params f) (fn_temps f))
(AlocVars : alloc_variables empty_env m (Csharpminor.fn_vars f) e m1)
(BindParams: bind_parameters (Csharpminor.fn_params f) vargs
(create_undef_temps (fn_temps f)) = Some lenv)
(MINJ : Mem.inject j m tm)
(MCS : match_callstack j m tm cs (Mem.nextblock m) (Mem.nextblock tm))
(MK : match_cont k tk cenv nil cs)
(ISCC : Csharpminor.is_call_cont k)
(ARGSINJ : val_list_inject j vargs targs)
(EQ : transl_function f = OK x),
exists T2 : state,
plus step tge (Callstate (Internal x) targs tk tm) E0 T2 /\
exists j', inject_incr j j' /\
match_statesInj j'
(Csharpminor.State f (Csharpminor.fn_body f) k e lenv m1) T2.