Hint Resolve make_intconst_correct make_floatconst_correct make_longconst_correct
make_floatofint_correct make_intoffloat_correct
make_longofint_correct
make_floatoflong_correct make_longoffloat_correct
eval_Eunop eval_Ebinop: cshm.
Hint Extern 2 (@eq trace _ _) => traceEq: cshm.

(* Specifications: *)
Lemma make_cmp_ne_zero_correct:
forall e le m a n,
eval_expr ge e le m a (Vint n) ->
eval_expr ge e le m (make_cmp_ne_zero a) (Vint (if Int.eq n Int.zero then Int.zero else Int.one)).
Lemma make_cast_int_correct:
forall e le m a n sz si,
eval_expr ge e le m a (Vint n) ->
eval_expr ge e le m (make_cast_int a sz si) (Vint (cast_int_int sz si n)).
Lemma make_cast_float_correct:
forall e le m a n sz,
eval_expr ge e le m a (Vfloat n) ->
eval_expr ge e le m (make_cast_float a sz) (Vfloat (cast_float_float sz n)).