Global Instance diff_ok : forall s s' `(Ok s, Ok s'), Ok (diff s s').

(* Specifications: *)
Lemma diff_spec  :
forall (s s' : t) (x : elt) {Hs : Ok s} {Hs' : Ok s'},
In x (diff s s') <-> In x s /\ ~In x s'.
Lemma subset_spec :
forall (s s' : t) {Hs : Ok s} {Hs' : Ok s'},
subset s s' = true <-> Subset s s'.
Lemma equal_spec :
forall (s s' : t) {Hs : Ok s} {Hs' : Ok s'},
equal s s' = true <-> Equal s s'.
Lemma choose_spec1 :
forall (s : t) (x : elt), choose s = Some x -> In x s.
Lemma choose_spec2 : forall s : t, choose s = None -> Empty s.
Lemma cardinal_spec :
forall (s : t) {Hs : Ok s}, cardinal s = length (elements s).
Lemma filter_spec' : forall s x f,
In x (filter f s) -> In x s.
Lemma filter_spec :
forall (s : t) (x : elt) (f : elt -> bool),
Proper (X.eq==>eq) f ->
(In x (filter f s) <-> In x s /\ f x = true).