Require Export VST.veric.environ_lemmas.
Require Export VST.veric.expr_lemmas3.
Require Export VST.veric.expr_lemmas4.

(* Lemma typecheck_environ_update_te: forall rho c Delta, typecheck_temp_environ (te_of rho) (temp_types (update_tycon Delta c)) -> typecheck_temp_environ  (te_of rho) (temp_types Delta)  with typecheck_ls_update_te : forall Delta ty b id l, (temp_types Delta) ! id = Some (ty, b) -> exists b2, (temp_types (join_tycon_labeled l Delta)) ! id = Some (ty, b2).  Lemma typecheck_environ_update_ve : forall (rho : environ) (c : statement) (Delta : tycontext), typecheck_var_environ (ve_of rho) (var_types (update_tycon Delta c)) -> typecheck_var_environ (ve_of rho) (var_types Delta).   Lemma typecheck_environ_update_ge : forall (rho : environ) (c : statement) (Delta : tycontext), typecheck_glob_environ (ge_of rho) (glob_types (update_tycon Delta c)) -> typecheck_glob_environ (ge_of rho) (glob_types Delta).  Lemma typecheck_environ_update: forall rho c Delta, typecheck_environ (update_tycon Delta c) rho -> typecheck_environ Delta rho. *)
Lemma tc_bool_val:
forall v t,
tc_val t v ->
bool_type t = true ->
exists b, strict_bool_val v t = Some b.