Corollary no_common_prime_is_coprime x y : x <> 0 -> (forall p, prime p -> p <d x -> p <d y -> False) -> is_gcd x y 1.Fact is_rel_prime_mult p q l : is_gcd p q 1 -> is_gcd p l 1 -> is_gcd p (q*l) 1.Fact is_rel_prime_expo p q l : is_gcd p q 1 -> is_gcd p (mscal mult 1 l q) 1.(* Every positive number is the product of a list of primes *)

  Notation lprod := (fold_right mult 1).Fact lprod_ge_1 l : Forall prime l -> 1 <= lprod l.Fact lprod_app l m : lprod (l++m) = lprod l * lprod m.

(* Specifications: *)
Theorem prime_decomp n : n <> 0 -> { l | n = lprod l /\ Forall prime l }.