End GenExtrFacts.
Module GenIExtrFacts
(Def: CLIGHT_SEPARATION_HOARE_LOGIC_DEF)
(CConseq: CLIGHT_SEPARATION_HOARE_LOGIC_COMPLETE_CONSEQUENCE with Module CSHL_Def := Def)
(Extr: CLIGHT_SEPARATION_HOARE_LOGIC_EXTRACTION with Module CSHL_Def := Def).
Module Conseq := GenConseq (Def) (CConseq).
Module CConseqFacts := GenCConseqFacts (Def) (CConseq).
Module ExtrFacts := GenExtrFacts (Def) (Conseq) (Extr).

Lemma semax_extract_later_prop:
forall {CS: compspecs} {Espec: OracleKind},
forall Delta (PP: Prop) P c Q,
(PP -> @semax CS Espec Delta P c Q) ->
@semax CS Espec Delta ((|> !!PP) && P) c Q.