(* ======================================================== ALWAYS (multi-)sets ==========================================================*)
(* s1 - s2: *)
Fixpoint set_minus(s1 s2:set){struct s1}:set:=
match s1 with
Vs => Vs
| Is s0 x =>
if exds_dec s2 x then set_minus s0 s2
else Is (set_minus s0 s2) x
end.

Lemma exds_set_minus: forall(s1 s2:set)(z:dart),
exds s1 z -> ~exds s2 z ->
exds (set_minus s1 s2) z.