kernel-Nat.prime_dvd_factorial_iff_le
- Kind
- kernel-term
- Status
- checked
Supports: ∀ {n p : ℕ}, Nat.Prime p → (p ∣ n.factorial ↔ p ≤ n)
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- prime_dvd_factorial_iff_le 2>/dev/null | grep -Ec '^Nat\.prime_dvd_factorial_iff_le[[:space:]]')" -ge 1 Evidence notes
`declare_prime_dvd_factorial_iff_le` (`nat_prelude/prime_dvd_factorial_lcm.rs`) admits `Nat.prime_dvd_factorial_iff_le` through the trusted `Kernel::add_declaration` gate. Primality is spelled inline (`2 <= p /\ forall d, d | p -> d = 1 \/ d = p`), matching `euclid_lemma`'s convention, since this prelude has no separate `Nat.Prime` predicate. `mpr` is `dvd_factorial_of_le` fed `prime_one_le`; `mp` splits `Nat.lt_or_ge n p` and refutes the `n < p` branch: `Nat.coprime_factorial_of_lt_prime` (`gauss_lemma.rs`) gives `gcd p n! = 1`, `p | n!` (the hypothesis) plus `p | p` (`dvd_refl`) gives `p | gcd p n!` (`dvd_gcd`), transported along the coprimality equation into `p | 1` -- refuted by `prime_not_dvd_one`.