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 guard_mono: forall Espec ge Delta (P Q: assert) k,
(forall rho, P rho |-- Q rho) ->
guard Espec ge Delta Q k |-- guard Espec ge Delta P k.