(** 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 diff_b : mem x (diff s s') = mem x s && negb (mem x s').