Definition tc_numeric_val (v: val) (t: type) : Prop :=
match v,t with
| Vint _, Tint _ _ _ => True
| Vlong _, Tlong _ _ => True
| Vfloat _, Tfloat F64 _ => True
| _, _ => False
end.

Lemma tc_val_cmp_eqne_ip:
forall op v1 t1 v2 t0 a0 i2 s0 a1,
match op with Ceq => True | Cne => True | _ => False end ->
match v1,t1 with
| Vint i, Tint _ _ _ => Int.eq i Int.zero = true
| Vlong i, Tlong _ _ => Int64.eq (Int64.repr (Int64.unsigned i)) Int64.zero = true
| _, _ => False
end ->
tc_val (Tpointer t0 a0) v2 ->
tc_val (Tint i2 s0 a1)
(force_val (Clight_Cop2.sem_cmp op t1 (Tpointer t0 a0) v1 v2)).