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.
(** Correctness of instruction selection for operators *)

Lemma eval_sel_unop:
forall le op a1 v1 v,
eval_expr tge sp e m le a1 v1 ->
eval_unop op v1 = Some v ->
exists v', eval_expr tge sp e m le (sel_unop op a1) v' /\ Val.lessdef v v'.