Module Type PRACTICAL_CLIGHT_SEPARATION_HOARE_LOGIC.
Declare Module CSHL_MinimumLogic: MINIMUM_CLIGHT_SEPARATION_HOARE_LOGIC.
(*MOVED TO MINIMUM Axiom semax_Delta_subsumption: forall {CS: compspecs} {Espec: OracleKind}, forall Delta Delta' P c R, tycontext_sub Delta Delta' -> @semax CS Espec Delta P c R -> @semax CS Espec Delta' P c R.*)

Axiom semax_loop_unroll1:
forall {CS: compspecs} {Espec: OracleKind} Delta P P' Q body incr R,
@semax CS Espec Delta P body (loop1_ret_assert P' R) ->
@semax CS Espec Delta P' incr (loop2_ret_assert Q R) ->
@semax CS Espec Delta Q (Sloop body incr) R ->
@semax CS Espec Delta P (Sloop body incr) R.