simple induction x.
auto.
intros.
cut ({a = a0} + {a <> a0}).
intro Eq_dec; elim Eq_dec.
intro Eq; rewrite Eq; left; auto with datatypes.
elim H.
auto with datatypes.
unfold not in |- *; intros; right; intro.
elim H0; auto.
auto.
Qed.

Lemma set_mem_ind :
forall (B : Set) (P : B -> Prop) (y z : B) (a : A) (x : set),
(set_In a x -> P y) -> P z -> P (if set_mem a x then y else z).