Hint Resolve check_cast_sound check_bool_sound: ty.

(* Specifications: *)
Lemma check_arguments_sound:
forall el tl x, check_arguments el tl = OK x -> wt_arguments el tl.
Lemma check_rval_sound:
forall a x, check_rval a = OK x -> expr_kind a = RV.
Lemma check_lval_sound:
forall a x, check_lval a = OK x -> expr_kind a = LV.
Lemma binarith_type_cast:
forall t1 t2 m t,
binarith_type t1 t2 m = OK t -> wt_cast t1 t /\ wt_cast t2 t.
Lemma typeconv_cast:
forall t1 t2, wt_cast (typeconv t1) t2 -> wt_cast t1 t2.
Lemma wt_cast_int:
forall i1 s1 a1 i2 s2 a2, wt_cast (Tint i1 s1 a1) (Tint i2 s2 a2).
Lemma type_combine_cast:
forall t1 t2 t,
type_combine t1 t2 = OK t ->
match t1 with Tarray _ _ _ => False | Tfunction _ _ _ => False | _ => True end ->
match t2 with Tarray _ _ _ => False | Tfunction _ _ _ => False | _ => True end ->
wt_cast t1 t /\ wt_cast t2 t.
Lemma type_conditional_cast:
forall t1 t2 t,
type_conditional t1 t2 = OK t -> wt_cast t1 t /\ wt_cast t2 t.