A square-free number that is not 1 and not a prime has at least two prime factors
ProvedOddPerfectNumber.Kernel.squarefree_card_ge_two_of_not_one_or_primeLet be a positive square-free natural number. If is neither nor a prime, then has at least two distinct prime factors, i.e. . This is the counterpart of the accepted child OddPerfectNumber.Kernel.squarefree_card_ge_three_of_not_small (64627c09-9af1-4ab3-afc0-a3498abf1dc3) and is written in the same idiom, so the two compose directly. Mathlib in the pinned revision has no lemma of the form , so the bound has to be obtained from the same characterisation the accepted child uses: a square-free number is the product of its distinct prime factors, by . Assuming the cardinality is at most one and splitting on whether it is zero or positive, the empty case makes that product empty and forces , and the singleton case makes it a single prime. Both contradict the hypotheses. This is the step that turns the Dris-index square-free kernel from 'not a square' and 'not a single prime' into a genuine lower bound of two on the number of distinct prime factors, which is the first step of the reduction .
import Mathlib
namespace OddPerfectNumber.Kernel
theorem squarefree_card_ge_two_of_not_one_or_prime {d : Nat} (hdpos : 0 < d)
(hdsf : Squarefree d) (hne1 : d ≠ 1) (hnePrime : ∀ q, q.Prime → d ≠ q) :
2 ≤ d.primeFactors.card := by
sorry
end OddPerfectNumber.Kernel