Section BasicProperties.
(** Some old specifications written with boolean equalities. *)
Variable s s' s'': t.
Variable x y z : elt.
(** properties of [mem] *)
(** Properties of [equal] *)
(* Properties of [subset] *)
(** Properties of [choose] *)
(** Properties of [add] *)
(** Properties of [remove] *)
(** Properties of [is_empty] *)
(** Properties of [singleton] *)
(** Properties of [union] *)
(* characterisation of [union] via [subset] *)
(** Properties of [inter] *)
(* characterisation of [union] via [subset] *)
(** Properties of [diff] *)
End BasicProperties.
Hint Immediate empty_mem is_empty_equal_empty add_mem_1
remove_mem_1 singleton_equal_add union_mem inter_mem
diff_mem equal_sym add_remove remove_add : set.
Hint Resolve equal_mem_1 subset_mem_1 choose_mem_1
choose_mem_2 add_mem_2 remove_mem_2 equal_refl equal_equal
subset_refl subset_equal subset_antisym
add_mem_3 add_equal remove_mem_3 remove_equal : set.
(** General recursion principle *)
(** Properties of [fold] *)

Lemma exclusive_set : forall s s' x,
~(In x s/\In x s') <-> mem x s && mem x s'=false.