Section Ghosts.
Variables (A : Type) (s : spec A) (p : pre).

Lemma ghE (B : Type) (q : heap -> B -> Prop) (r : B -> post A) :
(forall i, p i -> def i -> exists x, q i x) ->
(forall i x, q i x -> p i -> def i ->
verify s i (fun y m => r x y i m)) ->
conseq s p (fun y i m => forall x, q i x -> r x y i m).