Definition all_assertions_computable  :=
forall (Espec: OracleKind) psi tx vx (Q: assert),
exists k,  assert_safe Espec psi tx vx k = Q.
(* This is not generally true, but could be made true by adding an "assert" operator to the programming language *)

Lemma semax_extensionality0 {CS: compspecs} {Espec: OracleKind}:
TT |--
ALL Delta:tycontext, ALL Delta':tycontext,
ALL P:assert, ALL P':assert,
ALL c: statement, ALL R:ret_assert, ALL R':ret_assert,
((!! tycontext_sub Delta Delta'
&&  (ALL ek: exitkind, ALL  vl : option val, ALL rho: environ,
(proj_ret_assert R ek vl rho >=> proj_ret_assert R' ek vl rho))
&& (ALL rho:environ, P' rho >=> P rho)  && semax' Espec Delta P c R) >=> semax' Espec Delta' P' c R').