(* ======================================================== 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_eq:forall(s1 s2:set)(z:dart),
(exds s1 z /\ ~exds s2 z) <-> exds (set_minus s1 s2) z.