Module VericSepLogic <: SepTheory.SepTheory.
Definition hprop := mpred.
Definition himp := derives.
Definition heq := fun p1 p2 => derives p1 p2 /\ derives p2 p1.
Definition Refl_himp := derives_refl.
Definition Trans_himp := derives_trans.
Local Notation "a ===> b" := (himp a b) (at level 60).
Local Notation "a <===> b" := (heq a b) (at level 60).
Definition emp := emp.
Definition inj := fun p => (prop p && emp).
Definition star := sepcon.
Definition ex := @exp mpred Nveric.
Ltac sep_solve :=
unfold star, himp, heq, emp, inj, ex in *; intuition; cancel; auto.

(** ex lemmas **)
Lemma himp_ex_p : forall T (P : T -> _) Q,
(forall v, (P v) ===> Q) -> (ex T P) ===> Q.