Module GenCConseqFacts
(Def: CLIGHT_SEPARATION_HOARE_LOGIC_DEF)
(CConseq: CLIGHT_SEPARATION_HOARE_LOGIC_COMPLETE_CONSEQUENCE with Module CSHL_Def := Def).

Lemma semax_pre_post_bupd:
forall {CS: compspecs} {Espec: OracleKind} (Delta: tycontext),
forall P' (R': ret_assert) P c (R: ret_assert) ,
local (tc_environ Delta) && P |-- |==> P' ->
local (tc_environ Delta) && RA_normal R' |-- |==> RA_normal R ->
local (tc_environ Delta) && RA_break R' |-- |==> RA_break R ->
local (tc_environ Delta) && RA_continue R' |-- |==> RA_continue R ->
(forall vl, local (tc_environ Delta) && RA_return R' vl |-- |==> RA_return R vl) ->
@semax CS Espec Delta P' c R' -> @semax CS Espec Delta P c R.