End CLIGHT_SEPARATION_HOARE_LOGIC_CONSEQUENCE.
Module GenConseq
(Def: CLIGHT_SEPARATION_HOARE_LOGIC_DEF)
(CConseq: CLIGHT_SEPARATION_HOARE_LOGIC_COMPLETE_CONSEQUENCE with Module CSHL_Def := Def): CLIGHT_SEPARATION_HOARE_LOGIC_CONSEQUENCE with Module CSHL_Def := Def.
Module CSHL_Def := Def.
Module CConseqFacts := GenCConseqFacts (Def) (CConseq).

(* Specifications: *)
Lemma semax_pre_post : forall {Espec: OracleKind}{CS: compspecs},
forall P' (R': ret_assert) Delta 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.