simple induction f.
simpl in |- *.
elim (Xeq_dec x x); auto.
intro; absurd (x = x); auto.
simpl in |- *.
intros until l.
elim a.
intros until b.
elim (XYeq_dec (x, y) (a0, b)).
simpl in |- *.
elim (Xeq_dec x a0).
intros.
injection a2; intros.
rewrite H1; auto.
intros.
injection a1; intros; absurd (x = a0); auto.
simpl in |- *.
elim (Xeq_dec x a0).
intros.
rewrite a1 in H0.
cut False.
tauto.
apply H0.
apply set_add_intro2; auto.
intros.
apply H.
intro; apply H0; apply set_add_intro1; auto.
Qed.

(* Specifications: *)
Lemma RemEq :
forall (a b : X) (y : Y) (f : set (X * Y)),
a <> b -> PARTFUNC f a = PARTFUNC (set_remove XYeq_dec (b, y) f) a.