kernel-Nat.coprime_of_lt_prime
- Kind
- kernel-term
- Status
- checked
Supports: ∀ {n p : ℕ}, n ≠ 0 → n < p → Nat.Prime p → p.Coprime n
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- coprime_of_lt_prime 2>/dev/null | grep -Ec '^Nat\.coprime_of_lt_prime[[:space:]]')" -ge 1 Evidence notes
`build_nat_prelude` admits `Nat.coprime_of_lt_prime` 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. This declaration (`declare_coprime_of_lt_prime`, `nat_prelude/primes.rs`) already existed in the kernel before this lane started (landed in an earlier commit, `de2e39eee`), proving `∀ p a, prime_condition p → 0 < a → a < p → gcd a p = 1` directly from primality's divisor clause plus `gcd_dvd_right`/`gcd_dvd_left`/`le_of_dvd`/`lt_irrefl` -- a route that does NOT go through `coprime_or_dvd_of_prime` despite that being this fact's recorded `depends_on` edge (the dependency listing predates the direct proof and was not revisited). `Nat.Coprime p n` and `gcd n p = 1` are the same proposition up to argument order and Coprime's standard unfolding; this prelude spells coprimality directly as a `gcd = 1` equation, matching `coprime_of_bezout_one`'s convention noted in the declaration's own doc comment.