Section EVAL_EXPR.
Variables e te: env.
Variables le tle: temp_env.
Variables m tm: mem.
Variable f: meminj.
Variable cenv: compilenv.
Variables lo hi tlo thi: block.
Hypothesis MATCH: match_envs f cenv e le m lo hi te tle tlo thi.
Hypothesis MEMINJ: Mem.inject f m tm.
Hypothesis GLOB: exists bound, match_globalenvs f bound.

Lemma eval_simpl_exprlist:
forall al tyl vl,
eval_exprlist ge e le m al tyl vl ->
compat_cenv (addr_taken_exprlist al) cenv ->
val_casted_list vl tyl /\
exists tvl,
eval_exprlist tge te tle tm (simpl_exprlist cenv al) tyl tvl
/\ Val.inject_list f vl tvl.