Coercion nat_pred_of_nat (p : nat) : nat_pred := pred1 p.Definition pnat : pred nat := fun m => (m > 0) && all (mem pi) (primes m).Implicit Types (n p : nat) (pi rho : nat_pred).

(* Specifications: *)
Lemma sorted_divisors n : sorted leq (divisors n).
Lemma divisors_uniq n : uniq (divisors n).
Lemma sorted_divisors_ltn n : sorted ltn (divisors n).
Lemma totient_gt0 n : (0 < totient n) = (0 < n).
Lemma totient_coprime m n : coprime m n -> totient (m * n) = totient m * totient n.