(** Useful tactic for simplifying expressions like [In y (add x (union s s'))] *)
Ltac set_iff :=
repeat (progress (
rewrite add_iff || rewrite remove_iff || rewrite singleton_iff
|| rewrite union_iff || rewrite inter_iff || rewrite diff_iff
|| rewrite empty_iff)).
(**  * Specifications written using boolean predicates *)
Section BoolSpec.
Variable s s' s'' : t.
Variable x y z : elt.

Lemma elements_b : mem x s = existsb (eqb x) (elements s).
Variable f : elt->bool.