(****************************** even/odd *********************************)

Inductive even (n : nat) : Prop :=
    even_intro : forall q : nat, n = 2 * q -> even n.(****************************** even/odd *********************************)

Inductive even (n : nat) : Prop :=
    even_intro : forall q : nat, n = 2 * q -> even n.Inductive odd (n : nat) : Prop :=
    odd_intro : forall q : nat, n = 2 * q + 1 -> odd n.Inductive odd (n : nat) : Prop :=
    odd_intro : forall q : nat, n = 2 * q + 1 -> odd n.

(* Specifications: *)
Lemma no_zero_div : forall n m : nat, 0 < n -> forall q : nat, n = m * q -> 0 < q.
Lemma lt_quotient2_n : forall n : nat, 0 < n -> forall q : nat, n = 2 * q -> q < n.
Lemma less_div : forall n a b : nat, 0 < n -> n = a * b -> b <= n.
Lemma even_or_odd : forall n : nat, {even n} + {odd n}.
Lemma even_odd : forall a : nat, even a -> ~ odd a.
Lemma odd_even : forall a : nat, odd a -> ~ even a.
Lemma plus_even_even : forall a b : nat, even a -> even b -> even (a + b).
Lemma S_odd_even : forall a : nat, odd a -> even (S a).
Lemma pred_odd_even : forall a : nat, odd a -> even (pred a).
Lemma plus_even_odd : forall a b : nat, even a -> odd b -> odd (a + b).
Lemma plus_odd_even : forall a b : nat, odd a -> even b -> odd (a + b).
Lemma S_even_odd : forall a : nat, even a -> odd (S a).
Lemma plus_odd_odd : forall a b : nat, odd a -> odd b -> even (a + b).
Lemma mult_even : forall a b : nat, even a -> even (a * b).
Lemma mult_odd_odd : forall a b : nat, odd a -> odd b -> odd (a * b).