Ltac unfold_cop2_sem_cmp :=
unfold Clight_Cop2.sem_cmp, Clight_Cop2.sem_cmp_pl, Clight_Cop2.sem_cmp_lp, Clight_Cop2.sem_cmp_pp.

(* Specifications: *)
Lemma eval_binop_relate:
forall {CS: compspecs} Delta (ge: genv) te ve rho b e1 e2 t m
(Hcenv: genv_cenv ge = @cenv_cs CS),
rho = construct_rho (filter_genv ge) ve te ->
typecheck_environ Delta rho ->
((denote_tc_assert (typecheck_expr Delta e1) rho) (m_phi m) ->
Clight.eval_expr ge ve te (m_dry m) e1 (eval_expr e1 rho)) ->
((denote_tc_assert (typecheck_expr Delta e2) rho) (m_phi m) ->
Clight.eval_expr ge ve te (m_dry m) e2 (eval_expr e2 rho)) ->
(denote_tc_assert (typecheck_expr Delta (Ebinop b e1 e2 t)) rho) (m_phi m) ->
Clight.eval_expr ge ve te (m_dry m) (Ebinop b e1 e2 t)
(eval_expr (Ebinop b e1 e2 t) rho).
Lemma valid_pointer_dry0:
forall b ofs m, app_pred (valid_pointer (Vptr b ofs)) (m_phi m) ->
Mem.valid_pointer (m_dry m) b (Ptrofs.unsigned ofs) = true.