Section extensions.
Context {CS: compspecs} {Espec : OracleKind}.

Lemma semax_ifthenelse:
forall Delta P (b: expr) c d R,
bool_type (typeof b) = true ->
semax Espec Delta (fun rho => P rho && !! expr_true b rho) c R ->
semax Espec Delta (fun rho => P rho && !! expr_false b rho) d R ->
semax Espec Delta
(fun rho => tc_expr Delta (Eunop Cop.Onotbool b (Tint I32 Signed noattr)) rho && P rho)
(Sifthenelse b c d) R.