kernel-Nat.coprime_two_left
- Kind
- kernel-term
- Status
- checked
Supports: ∀ {n : ℕ}, Nat.Coprime 2 n ↔ Odd n
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- coprime_two_left 2>/dev/null | grep -Ec '^Nat\.coprime_two_left[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits `Nat.coprime_two_left` 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, and the `grep -c` count (tested `-ge 1`, not piped into `grep -q`) requires the admitted declaration to actually be printed. Route: `2` is prime (a private `prime_two` helper rebuilding `prime_condition(2)`, since a divisor of `2` is `1` or `2`), so `coprime_or_dvd_of_prime` splits `gcd 2 n = 1 ∨ dvd 2 n`, and `prime_dvd_iff_not_coprime` relates `dvd 2 n` to `Not (gcd 2 n = 1)`. A private bridge connects `dvd 2 n` and `Even n` via the `2*k = k+k` identity, and `even_or_odd_exists`/`even_not_odd` rule out the even case in each direction of the `Iff`. A concrete-witness swap-detecting test (`coprime_two_left_applies_at_a_concrete_odd_witness_and_is_axiom_free`) round-trips a hand-built `Odd 5` through `mpr` then `mp` and confirms it lands back on `Odd 5`, which only type-checks if `mp`/`mpr` were wired to `iff_intro` in the correct order.