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.