left; apply (even_intro 0 0); auto with arith.
intros y hrec.
elim hrec.
intro eveny.
right; elim eveny.
intros q hy; apply (odd_intro (S y) q).
elim hy.
elim plus_n_Sm.
auto with arith.
intro oddy; left.
elim oddy.
intros q hy; apply (even_intro (S y) (S q)).
rewrite hy.
rewrite plus_n_Sm.
elim (mult_comm (S q) 2).
elim (mult_comm q 2).
elim plus_comm.
auto with arith.
Qed.

(* Specifications: *)
Lemma even_odd : forall a : nat, even a -> ~ odd a.
unfold not in |- *; intros.