(** * Some properties of operator semantics *)
(** This section collects some common-sense properties about the type classification and semantic functions above.  Some properties are used in the CompCert semantics preservation proofs.  Others are not, but increase confidence in the specification and its relation with the ISO C99 standard. *)
(** Relation between Boolean value and casting to [_Bool] type. *)

(* Specifications: *)
Lemma cast_bool_bool_val:
forall v t m,
sem_cast v t (Tint IBool Signed noattr) m =
match bool_val v t m with None => None | Some b => Some(Val.of_bool b) end.
Lemma cast_bool_bool_val:
forall v t m,
sem_cast v t (Tint IBool Signed noattr) m =
match bool_val v t m with None => None | Some b => Some(Val.of_bool b) end.