(* This code is copyrighted by its authors; it is distributed under  *)
(* the terms of the LGPL license (see LICENSE and description files) *)
(* Contribution to the Coq Library   V6.3 (July 1999)                    *)
(****************************************************************************)
(*                                                                          *)
(*                                                                          *)
(*                   Solange Coupet-Grimal & Line Jakubiec                  *)
(*                                                                          *)
(*                                                                          *)
(*              Laboratoire d'Informatique de Marseille                     *)
(*               CMI-Technopole de Chateau-Gombert                          *)
(*                   39, Rue F. Joliot Curie                                *)
(*                   13453 MARSEILLE Cedex 13                               *)
(*           e-mail:{Solange. Coupet,Line. Jakubiec}@lim.univ-mrs.fr          *)
(*                                                                          *)
(*                                                                          *)
(*                                Coq V5.10                                 *)
(*                              May 30th 1996                               *)
(*                                                                          *)
(****************************************************************************)
(*                            Lib_Div_Even_Odd.v                            *)
(****************************************************************************)
Require Export Lib_Mult.
(****************************** 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.
(************************* quotients and divisors ***********************)
simple induction q.
intro.
absurd (0 = n).
apply lt_O_neq; auto with arith.
rewrite (mult_n_O m); auto with arith.
auto with arith.
Qed.
intros.
rewrite (plus_n_O q).
rewrite H0.
elim plus_mult.
apply plus_lt_compat_l.
apply (no_zero_div n 2 H q H0).
Qed.
Hint Resolve lt_quotient2_n.

Lemma less_div : forall n a b : nat, 0 < n -> n = a * b -> b <= n.