Definition cast_pointer_to_bool t1 t2 :=
 match t1 with (Tpointer _ _ | Tarray _ _ _ | Tfunction _ _ _) => 
           match t2 with Tint IBool _ _ => true | _ => false end
 | _ => false
end.

Lemma sem_cast_e1: forall t t1 v1 v m, sem_cast t t1 v = Some v1 -> cast_pointer_to_bool t t1 = false -> tc_val t v -> Cop.sem_cast v t t1 m = Some v1.