unfold add_part in |- *.
intros.
apply Trans with (union A (union (single x) (single y))); auto with algebra.
apply Trans with (union A (union (single y) (single x))); auto with algebra.
Qed.
Hint Immediate add_part_com: algebra.

(* Specifications: *)
Lemma add_in :
forall (A : part_set E) (x : E), in_part x A -> Equal (add_part A x) A.