Instance list_order A : @PCM_order (list_PCM (discrete_PCM A)) list_incl.
Instance set_PCM A : Ghost := { valid := fun _ : Ensemble A => True;
Join_G a b c := Disjoint a b /\ c = Union a b }.

(* Specifications: *)
Lemma ghost_set_subset : forall {A} g (s s' : Ensemble A)
(Hdec : forall a, In s' a \/ ~In s' a),
Included s' s -> ghost_set g s = ghost_set g s' * ghost_set g (Setminus s s').
Corollary ghost_set_remove : forall {A} g a (s : Ensemble A) (Hdec : forall b, b = a \/ b <> a),
In s a -> ghost_set g s = ghost_set g (Singleton a) * ghost_set g (Subtract s a).