proposition: Theorem OddEvenDec : forall n : Z, {Odd n} + {Even n}.
proof: Proof. intros z; case z; simpl in |- *; auto with zarith. right; apply EvenO. intros p; case p; simpl in |- *; auto with zarith. intros p1; left; exists (Zpos p1); rewrite Zplus_comm; simpl in |- *; auto. intros p1; right; exists (Zpos p1); simpl in |- *; auto. left; apply Odd1. change (forall p : positive, {Odd (- Zpos p)} + {Even (- Zpos p)}) in |- *. intros p; case p; auto with zarith. intros p1; left; apply OddOpp; exists (Zpos p1); rewrite Zplus_comm; simpl in |- *; auto. intros p1; right; apply EvenOpp; exists (Zpos p1); simpl in |- *; auto. left; apply OddOpp, Odd1. Qed.
imports: Reals ZArith List PeanoNat Psatz