Section CMCONSTR.
Variable cunit: Cminor.program.
Variable hf: helper_functions.
Hypothesis LINK: linkorder cunit prog.
Hypothesis HF: helper_functions_declared cunit hf.
Let HF': helper_functions_declared tprog hf.
Variable sp: val.
Variable e: env.
Variable m: mem.

(* Specifications: *)
Lemma eval_condexpr_of_expr:
forall a le v b,
eval_expr tge sp e m le a v ->
Val.bool_of_val v b ->
eval_condexpr tge sp e m le (condexpr_of_expr a) b.
Lemma eval_load:
forall le a v chunk v',
eval_expr tge sp e m le a v ->
Mem.loadv chunk m v = Some v' ->
eval_expr tge sp e m le (load chunk a) v'.
Lemma eval_store:
forall chunk a1 a2 v1 v2 f k m',
eval_expr tge sp e m nil a1 v1 ->
eval_expr tge sp e m nil a2 v2 ->
Mem.storev chunk m v1 v2 = Some m' ->
step tge (State f (store chunk a1 a2) k sp e m)
E0 (State f Sskip k sp e m').