(** If a prime [p] divides [ab] then it divides either [a] or [b] *)

(* Specifications: *)
Lemma prime_mult :
forall p:Z, prime p -> forall a b:Z, (p | a * b) -> (p | a) \/ (p | b).
Lemma not_prime_0: ~ prime 0.
Lemma not_prime_1: ~ prime 1.
Lemma prime_2: prime 2.
Theorem prime_3: prime 3.
Theorem prime_ge_2 p : prime p ->  2 <= p.
Definition prime' p := 1<p /\ (forall n, 1<n<p -> ~ (n|p)).
Lemma Z_0_1_more x : 0<=x -> x=0 \/ x=1 \/ 1<x.
Theorem prime_alt p : prime' p <-> prime p.
Theorem square_not_prime: forall a, ~ prime (a * a).
Theorem prime_div_prime: forall p q,
prime p -> prime q -> (p | q) -> p = q.