(** * Basic memory assertions. *)
(** Pure logical assertion *)
Program Definition pure (P: Prop) : massert := {|
m_pred := fun m => P;
m_footprint := fun b ofs => False
|}.
Next Obligation.
tauto.
Qed.

(* Specifications: *)
Lemma sep_pure:
forall P Q m, m |= pure P ** Q <-> P /\ m |= Q.