simple induction x.
simple induction y.
auto.
intros.
right.
unfold not in |- *; intro D; discriminate D.
intros.
induction  y as [| a0 y Hrecy].
right; unfold not in |- *; intro D; discriminate D.
elim (H0 y).
intro.
rewrite a1.
elim (H a a0).
intro.
rewrite a2.
left; auto.
intro.
right.
unfold not in |- *.
unfold not in b.
intro; apply b.
injection H1.
auto.
unfold not in |- *; intro.
right.
intro; apply b.
injection H1.
auto.
Qed.
Hint Resolve Listeq_dec.

(* Specifications: *)
Lemma Prodeq_dec :
forall A B : Set,
(forall x y : A, {x = y} + {x <> y}) ->
(forall v w : B, {v = w} + {v <> w}) ->
forall c d : A * B, {c = d} + {c <> d}.