Skip to content
docs
Arxo ↗

Lean: the divisibility-instances run

For LLMs6 sections

Result: 14 divisibility cases were checked on 2 October 2026 with Lean 4.33.0 (toolchain leanprover/lean4:v4.33.0) on one side and the Arxo package mathlib.divisibility with law 0.1.1 on the other: 10 match, 3 not comparable, 0 mismatch, 1 not checked. The Lean side ran on the core library; mathlib statements were not executed. The mathlib statements themselves are pinned at revision db584cd6d46c92f209a44c0f1c829460d327499d, and the Arxo side anchors its provenance to that same pin at the text level — but no mathlib file was executed on either side in this run. The numbers belong to these versions and to these 14 cases only.

The reference is a set of mathlib theorem statements about divisibility and order (dvd_trans, dvd_refl, a semigroup projection, le_trans, le_of_lt, le_less_trans), pinned at the revision above. The two sides do deliberately different work with them. Lean proves each numeric instance with its kernel: a term the kernel accepts, with the axioms printed and inspected. Arxo applies the imported statement to the data and returns an evaluation document with a proof graph reaching the pinned mathlib text — the proof itself stays in the source; what Arxo certifies is the application of an accepted result to the facts at hand. The public pages of the two references are Lean and mathlib.

A case matches when both sides settle the same instance: Lean with an accepted proof term, Arxo with a supporting evaluation document — or when both sides honestly refuse it. A case is not comparable when the two sides answer different questions by contract design: Arxo permission facts have no counterpart in Lean, so those cases cannot meet. Pairwise equality of proof objects is never required; what is compared is the verdict on the instance, plus the honesty of refusals.

CaseInstanceLean 4.33.0 coreArxoOutcome
N-01transitivity with witnessesproved (Nat.dvd_trans with witnesses)TRUE_ONLYmatch
N-02reflexivity at 5proved (Nat.dvd_refl 5)TRUE_ONLYmatch
N-03semigroup projectionnot executed (no core analogue)TRUE_ONLYnot checked
N-04missing premiserefusal shown by unclosed-placeholder analogueNEITHER with reasonmatch as honest-refusal class
N-05missing premiserefusal shown by the same analogueNEITHER with reasonmatch as honest-refusal class
N-06permission fact absentproved as N-01 (Lean has no permission mechanism)NEITHER with reasonnot comparable by design
N-07permission fact absentproved as N-02 (Lean has no permission mechanism)NEITHER with reasonnot comparable by design
N-08small instance by computationproved by decideTRUE_ONLYmatch: both sides compute the witnesses
N-094 divides 6 (false)positive goal refuted; negation provedNEITHER with reasonmatch as honest-refusal class
N-100 divides 6 (false)positive goal unprovable; negation provedNEITHER with reasonmatch as honest-refusal class
N-11order transitivityproved (Nat.le_trans), no axiomsTRUE_ONLYmatch
N-12less-implies-less-or-equalproved (Nat.le_of_lt), no axiomsTRUE_ONLYmatch
N-13composed order stepproved by omega (core has no name for it)TRUE_ONLYmatch, with the naming note
N-14permission fact absentproved as N-11 (Lean has no permission mechanism)NEITHER with reasonnot comparable by design

Nowhere in the run is there a placeholder axiom or a native-code shortcut: sorry and native decision procedures were not used, and every printed axiom list shows core and standard axioms only.

There are no mismatches; the systematic difference is structural. Lean has no permission mechanism, so the three permission cases (N-06, N-07, N-14) are proved on the Lean side exactly like their unguarded twins while Arxo answers NEITHER for the missing permission fact — by contract design these cases are not comparable rather than decided. Refusals also differ in form while agreeing as a class: an elaborator error on the Lean side (N-04, N-05) and a rejected positive goal with a proved negation (N-09, N-10) stand next to an Arxo NEITHER with a stated reason. The contract counts the class, not the shape.

The mathlib file of the stand (dvd_trans, dvd_refl, the semigroup projection, the order lemmas at the pinned revision) was written and its texts were checked against the package sources, but it was never executed: a full mathlib checkout with its build cache (about 6 to 10 GB) did not fit the shared machine, so it was not downloaded. That is the one recorded deviation of the run, and case N-03 carries its cost as not checked — the projection has no core-library analogue. Beyond that: only natural-number instances were exercised, and no timing or memory figures were taken. Agreement on 14 instances is not a claim about either language as a whole.

Pin both sides: Lean toolchain leanprover/lean4:v4.33.0 with the core stand files (the core file must succeed; the refusals file must fail to elaborate — that failure is the expected observation), and Arxo package mathlib.divisibility with law 0.1.1, whose case package answers all 14 cases. Pin the text both sides point at: mathlib revision db584cd6d46c92f209a44c0f1c829460d327499d. A full mathlib execution of the stand remains a separate task for a machine with a free disk; until then N-03 stays not checked.

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.