Ltac solve_tc_val' H :=
rewrite tc_val_tc_val_PM' in H; inv H.

Lemma tc_val_sem_cmp_binarith': forall sem_int sem_long sem_float sem_single t1 t2 t v1 v2
(TV2: tc_val t2 v2)
(TV1: tc_val t1 v1),
is_numeric_type t1 = true ->
is_numeric_type t2 = true ->
is_int_type t = true ->
tc_val t
(force_val
(Clight_Cop2.sem_binarith
(fun s n1 n2 => Some (Val.of_bool (sem_int s n1 n2)))
(fun s n1 n2 => Some (Val.of_bool (sem_long s n1 n2)))
(fun n1 n2 => Some (Val.of_bool (sem_float n1 n2)))
(fun n1 n2 => Some (Val.of_bool (sem_single n1 n2)))
t1 t2 v1 v2)).