kernel-Nat.prime_not_coprime_iff_dvd
- Kind
- kernel-term
- Status
- checked
Supports: ∀ {m n : ℕ}, ¬m.Coprime n ↔ ∃ p, Nat.Prime p ∧ p ∣ m ∧ p ∣ n
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- prime_not_coprime_iff_dvd 2>/dev/null | /usr/bin/grep -Ec '^Nat\.prime_not_coprime_iff_dvd[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits `Nat.prime_not_coprime_iff_dvd` through the trusted `Kernel::add_declaration` gate, which re-checks the proof term against the stated type, so producing this row at all is a machine-checked proof. `nat_theorem_inventory` exits non-zero for a name that does not exist (verified against a fabricated name), and the anchored `grep -c` count (tested `-ge 1`, not piped into `grep -q`) requires the admitted declaration to actually be printed. Primality is spelled inline (`2 ≤ p ∧ ∀ c, c ∣ p → c = 1 ∨ c = p`, matching `prime_even_iff`/`euclid_lemma`'s own convention) rather than through a named `Nat.Prime` predicate, since this prelude has none, and the existential witness pairs primality with `dvd p m ∧ dvd p n` (right-associated, matching Mathlib's `Prime p ∧ p ∣ m ∧ p ∣ n`) -- this repository's established precedent for flipping a Mathlib `Nat.Prime` mirror (`prime_even_iff`, `prime_odd_of_ne_two`, `prime_dvd_of_dvd_pow` already do the same substitution).