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).