Identifier
F:nat-coprime-of-lt-minfac
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

For every natural n, m: if m is not 0 and m < minFac(n), then gcd(n, m) = 1.

Formal statement
theorem Nat.coprime_of_lt_min_fac : ((x0 : AxNat) -> ((x1 : AxNat) -> ((x2 : Not (Eq.{1} AxNat x1 AxNat.zero)) -> ((x3 : AxNat.lt x1 (AxNat.minFac x0)) -> Eq.{1} AxNat (AxNat.gcd x0 x1) (AxNat.succ AxNat.zero)))))

Dependencies

The graph shows direct ledger edges. Follow a node to open its artifact page.

Direct dependencies appear to the left. The current fact is in the center. Facts that depend directly on it appear to the right. The natural gcd divides its fir The natural gcd divides its sec gcd(0, a) = a <= on the naturals is antisymme A divisor of a positive natural [generated] kernel theorem Nat. <= cancels a shared successor [generated] kernel theorem Nat. Current fact
16 direct dependencies 0 direct dependents Graph shows the first 8 on each side.

Evidence

kernel-Nat.coprime_of_lt_min_fac

Kind
kernel-term
Status
checked

Supports: Nat.coprime_of_lt_min_fac is admitted by the trusted kernel gate with the type recorded in formal.statement.

Checker command
test "$(cargo run -q --release -p axeyum-lean-kernel --example nat_theorem_inventory -- coprime_of_lt_min_fac 2>/dev/null | grep -Ec '^Nat\.coprime_of_lt_min_fac[[:space:]]')" -ge 1
Evidence notes

`build_nat_prelude` admits this theorem only through the trusted `Kernel::add_declaration` gate, which re-checks the proof term against the stated type. `nat_theorem_inventory` prints nothing for a name that does not exist, and `grep -Ec` consumes the pipe so the tested count decides the exit status. Anchored with `^Nat\.coprime_of_lt_min_fac[[:space:]]` so a future sibling (e.g. a helper of the same shape) cannot satisfy this row. Run `--release`: the debug build SIGABRTs building the full constructed environment (see CLAUDE.md's `prelude_theorem_inventory` gotcha).

compute-Nat.coprime_of_lt_min_fac

Kind
kernel-term
Status
checked

Supports: gcd(25, 4) = 1: 25's least prime factor is 5, and 4 < 5, 4 != 0. m=4 is a DISCRIMINATING witness -- it shares no factor with 25 or with minFac(25)=5, unlike m=2 (also coprime, but would pass even under a broken bound that let m reach minFac(n) itself).

Checker command
cargo test -p axeyum-lean-kernel --lib nat_prelude::nat_prelude_tests::coprime_of_lt_min_fac_applies_at_a_concrete_instance
Evidence notes

Applies `Nat.coprime_of_lt_min_fac` at the concrete instance `(n, m) = (25, 4)`, confirming the admitted type matches `Eq (gcd 25 4) 1`, that `minFac 25` reduces to `5`, and a NEGATIVE control that `gcd 25 5 != 1` -- `m := minFac n` itself is genuinely excluded by the strict bound, not merely untested.

footprint-Nat.coprime_of_lt_min_fac

Kind
instance-pin
Status
checked

Supports: axiom_footprint: [] -- the Nat environment admits no trusted declaration

Checker command
cargo run -q --release -p axeyum-lean-kernel --example nat_axiom_inventory -- --require-axiom-free nat
Evidence notes

Reports `nat: axiom=0 opaque=0 quotient=0 total_trusted=0`, over the FULL trusted surface rather than `Declaration::Axiom` alone. The enumeration is per-environment, not per-theorem; it bounds this theorem's footprint because a proof cannot depend on a trusted declaration the environment does not contain.

Provenance

{
  "date": "2026-08-29",
  "established_by": "axeyum-lean-kernel build_nat_prelude, lane nat-fastfib-minfac",
  "source": "theorem name and canonical type read directly via nat_theorem_inventory, which prints render_lean of the admitted type."
}