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.

Lemma himp_ex_star : forall T (P : T -> _) Q,
(star (ex T P) Q) ===> (ex T (fun x => star (P x) Q)).