Local Open Scope pred.
(* This file contains two parts: 1. Proof of semax_conseq. 2. Deriving simpler and older version of consequence rules from semax_conseq. *)
(* Part 1: Proof of semax_conseq *)

Lemma rguard_mono: forall Espec ge Delta f (P Q: ret_assert) k,
(forall rk vl rho, proj_ret_assert P rk vl rho |-- proj_ret_assert Q rk vl rho) ->
rguard Espec ge Delta f Q k |-- rguard Espec ge Delta f P k.