Section SIMPLE_EVAL.
Variable f: function.
Variable k: cont.
Variable e: env.
Variable m: mem.
Proof (proj1 eval_simple_steps).
Proof (proj2 eval_simple_steps).

Lemma simple_can_eval:
forall a from C,
simple a = true -> context from RV C -> safe (ExprState f (C a) k e m) ->
match from with
| LV => exists b, exists ofs, eval_simple_lvalue e m a b ofs
| RV => exists v, eval_simple_rvalue e m a v
end.