Section Single1.
Variable E : Setoid.
Definition single : E -> part_set E.
intros x.
apply (Build_Predicate (Pred_fun:=fun y : E => Equal y x)).
red in |- *.
intros x0 y H' H'0; try assumption.
apply Trans with x0; auto with algebra.
Defined.
simpl in |- *; auto with algebra.
Qed.
Hint Resolve in_single: algebra.

Lemma single_law : forall x y : E, Equal x y -> Equal (single x) (single y).