(* Notation "P '-o' Q" := (ewand P Q) (at level 60, right associativity). *)

(* Specifications: *)
Lemma emp_ewand {A} {JA: Join A}{PA: Perm_alg A}{SA: Sep_alg A}:  forall P, ewand emp P = P.
Lemma exists_sepcon1 {A} {JA: Join A}{PA: Perm_alg A}:
forall T (P: T ->  pred A) Q,  exp P * Q = exp (fun x => P x * Q).
Lemma derives_refl {A: Type}:
forall (P: pred A), (P |-- P).
Lemma emp_ewand {A} {JA: Join A}{PA: Perm_alg A}{SA: Sep_alg A}{AG: ageable A}{XA: Age_alg A}:
forall P, ewand emp P = P.
Lemma pry_apart {A}  {JA: Join A}{PA: Perm_alg A}{SA: Sep_alg A}{CA: Canc_alg A}{DA: Disj_alg A}{CrA: Cross_alg A}{AG: ageable A}{XA: Age_alg A}:
forall G P Q, superprecise G -> P = ewand G (G * P) ->
(P * Q) && (G * TT) |-- (P * G * (ewand G Q)).