Identifier
F:nat-least-divisor-search
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

For naturals a and b: either there is a smallest divisor c of b with c >= 2 such that no natural strictly between 2 and c divides b, or every candidate c with 2 <= c <= a fails to divide b. This is the search-step invariant behind finding the least divisor at least 2 of a natural.

Formal statement
theorem Nat.least_divisor_search : ((x0 : AxNat) -> ((x1 : AxNat) -> Or (Exists.{1} AxNat (fun (x2 : AxNat) => And (AxNat.le (AxNat.succ (AxNat.succ AxNat.zero)) x2) (And (AxNat.dvd x2 x1) (((x3 : AxNat) -> ((x4 : AxNat.le (AxNat.succ (AxNat.succ AxNat.zero)) x3) -> ((x5 : AxNat.lt x3 x2) -> Not (AxNat.dvd x3 x1)))))))) (((x2 : AxNat) -> ((x3 : AxNat.le (AxNat.succ (AxNat.succ AxNat.zero)) x2) -> ((x4 : AxNat.le x2 x0) -> Not (AxNat.dvd x2 x1)))))))

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. [generated] kernel theorem Nat. The computed quotient and remai [generated] kernel theorem Nat. [generated] kernel theorem Nat. <= cancels a shared successor <= on the naturals is transitiv <= splits into < or = No successor is <= zero Current fact Every natural number at least 2
11 direct dependencies 1 direct dependents Graph shows the first 8 on each side.

Evidence

kernel-least_divisor_search

Kind
kernel-term
Status
checked

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

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

`build_nat_prelude` admits this theorem only through the trusted kernel gate, so a successful build IS the type-check; the command both performs it and prints the admitted type, which is copied verbatim into formal.statement.

footprint-least_divisor_search

Kind
instance-pin
Status
checked

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

Checker command
cargo run -q -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-25",
  "established_by": "axeyum-lean-kernel build_nat_prelude",
  "source": "theorem name and canonical type read directly via nat_theorem_inventory, which prints render_lean of the admitted type."
}