End BoolSpec.
(** * [E.eq] and [Equal] are setoid equalities *)
#[global]
Instance E_ST : Equivalence E.eq.
#[global]
Instance Equal_ST : Equivalence Equal.
#[global]
Instance In_m : Proper (E.eq ==> Equal ==> iff) In.
#[global]
Instance is_empty_m : Proper (Equal==> Logic.eq) is_empty.
#[global]
Instance Empty_m : Proper (Equal ==> iff) Empty.
#[global]
Instance mem_m : Proper (E.eq ==> Equal ==> Logic.eq) mem.
#[global]
Instance singleton_m : Proper (E.eq ==> Equal) singleton.
#[global]
Instance add_m : Proper (E.eq==>Equal==>Equal) add.
#[global]
Instance remove_m : Proper (E.eq==>Equal==>Equal) remove.
#[global]
Instance union_m : Proper (Equal==>Equal==>Equal) union.
#[global]
Instance inter_m : Proper (Equal==>Equal==>Equal) inter.
#[global]
Instance diff_m : Proper (Equal==>Equal==>Equal) diff.
#[global]
Instance Subset_m : Proper (Equal==>Equal==>iff) Subset.
#[global]
Instance subset_m : Proper (Equal ==> Equal ==> Logic.eq) subset.
#[global]
Instance equal_m : Proper (Equal ==> Equal ==> Logic.eq) equal.
(* [Subset] is a setoid order *)

(* Specifications: *)
Lemma Subset_refl : forall s, s[<=]s.
Add Morphism Empty with signature Subset --> Basics.impl as Empty_s_m.