(* The following two lemmas is not now used. but after deep embedded hoare logic (SL_as_Logic) is ported, the frame does not need to be quantified in the semantic definition of semax. Then, these two lemmas can replace the other two afterwards. *)

(* Part 2: Deriving simpler and older version of consequence rules from semax_conseq. *)
Lemma semax'_post_bupd:
forall {CS: compspecs} {Espec: OracleKind} (R': ret_assert) Delta (R: ret_assert) P c,
(forall ek vl rho,  !!(typecheck_environ Delta rho ) &&
proj_ret_assert R' ek vl rho
|-- bupd (proj_ret_assert R ek vl rho)) ->
semax' Espec Delta P c R' |-- semax' Espec Delta P c R.