Hint Rewrite sem_cast_neutral_int using
  (auto;
   match goal with H: is_int ?i ?s ?v |- isVint ?v => apply (is_int_is_Vint i s v H) end) : norm.

(* Specifications: *)
Lemma sizeof_tuchar: forall {cs: compspecs}, sizeof tuchar = 1%Z.
Lemma eval_expr_Etempvar: forall {cs: compspecs} i t, eval_expr (Etempvar i t) = eval_id i.
Lemma eval_expr_binop: forall {cs: compspecs} op a1 a2 t, eval_expr (Ebinop op a1 a2 t) = `(eval_binop op (typeof a1) (typeof a2)) (eval_expr a1) (eval_expr a2).
Lemma eval_expr_unop: forall {cs: compspecs} op a1 t, eval_expr (Eunop op a1 t) = lift1 (eval_unop op (typeof a1)) (eval_expr a1).
Lemma eval_expr_Etempvar' : forall {cs: compspecs} i t, eval_id i = eval_expr (Etempvar i t).
Lemma eval_var_env_set: forall i t j v (rho: environ), eval_var i t (env_set rho j v) = eval_var i t rho.
Lemma deref_noload_tarray: forall ty n, deref_noload (tarray ty n) = (fun v => v).
Lemma deref_noload_Tarray: forall ty n a, deref_noload (Tarray ty n a) = (fun v => v).
Lemma isptr_is_pointer_or_null: