Section JOIN_EQUIV.
(** The "equivalance" or discrete SA.  In this SA, every element of an arbitrary set is made an idempotent element.  We do not add this as a global Instance, because it is too widely applicable in cases where we do not desire it. *)
Instance Join_equiv (A: Type) : Join A := fun x y z => x=y/\y=z.
Instance Perm_equiv (A: Type) :  @Perm_alg A (Join_equiv A).
Instance Sep_equiv (A: Type): Sep_alg A.

Lemma join_equiv_refl: forall A (v: A), @join A (Join_equiv A) v v v.