(* Lemmas for manipulating with ghost variables *)
Section GhostRules.
Variables (W : world) (A B C : Type).

(* Specifications: *)
(* Weakening of the continuation postcondition *)
Lemma vrf_mono (e : DT this W A) i (r1 r2 : cont A) :
r1 <== r2 -> verify i e r1 -> verify i e r2.
(* Pulling the ghosts out of the specification *)
Lemma ghC (p : B -> pre) (q : B -> A -> pre) :
(forall i x, p x i -> i \In Coh W -> verify i e (q x)) ->
conseq e (logvar (fun x => binarify (p x) (q x))).