Section EXPR.
Variable e: Clight.env.
Variable le: temp_env.
Variable m: mem.
Variable tm: mem. (*Lenb: NEW*)
Variable te: Csharpminor.env.
Variable tle: Csharpminor.temp_env. (*Lenb: NEW*)
Variable j: meminj. (*Lenb: NEW*)
Hypothesis MENV: match_env j e te.
Hypothesis LENV: match_tempenv j le tle. (*Lenb: NEW*)
Hypothesis MINJ: Mem.inject j m tm. (*Lenb: NEW*)
Hypothesis PG: meminj_preserves_globals ge j. (*Lenb: NEW*)

(* Specifications: *)
Lemma deref_loc_inject: forall ty b ofs v
(D:deref_loc ty m b ofs v) tb delta
(J: j b = Some(tb,delta)),
exists tv, val_inject j v tv /\
deref_loc ty tm tb (Int.add ofs (Int.repr delta)) tv.
Lemma transl_expr_lvalue_correct:
(forall a v,
Clight.eval_expr ge e le m a v ->
forall ta (TR: transl_expr a = OK ta),
exists tv, val_inject j v tv /\
Csharpminor.eval_expr tge te tle tm ta tv)
/\(forall a b ofs,
Clight.eval_lvalue ge e le m a b ofs ->
forall ta (TR: transl_lvalue a = OK ta),
exists tv, val_inject j (Vptr b ofs) tv /\
Csharpminor.eval_expr tge te tle tm ta tv).