intros a x y; elim x; simpl.
- intros; contradiction.
- intros a0 l Hrec.
apply set_mem_ind2; auto.
intros H1 H2; case (set_add_elim _ _ _ H2); intros; auto.
rewrite H; trivial.
Qed.

(* Specifications: *)
Lemma set_diff_iff a l l' : In a (set_diff l l') <-> In a l /\ ~In a l'.
Lemma set_diff_nodup l l' : NoDup l -> NoDup (set_diff l l').
Lemma set_diff_trivial : forall (a:A) (x:set), ~ set_In a (set_diff x x).
red; intros a x H.