apply divides_le; auto.
apply sym_not_eq; auto with arith.
Qed.
(********************************************************************)
Inductive prime : nat -> Prop :=
primeDef :
forall a : nat,
a <> 1 -> (forall b : nat, divides b a -> b <> 1 -> a = b) -> prime a.

(* Specifications: *)
Lemma not_prime_O : ~ prime 0.
Lemma not_prime_1 : ~ prime 1.
Hint Resolve div_ref all_divides_O SO_divides_all not_prime_O not_prime_1.
Lemma lt_prime : forall p : nat, prime p -> 1 < p.
Inductive is_gcd (a b c : nat) : Prop :=
is_gcd_intro :
divides c a ->
divides c b ->
(forall d : nat, divides d a -> divides d b -> divides d c) ->
is_gcd a b c.