Section prime_rect.
Variables (P : nat -> Type)
(HP0 : P 0)
(HP1 : P 1)
(HPp : forall p, prime p -> P p)
(HPm : forall x y, P x -> P y -> P (x*y)).
End prime_rect.

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.