Lean Kernel Arena / perf/refute-cheap-first

Test "perf/refute-cheap-first"

Expected: ✋ reject · Size: 20.7 KB · Lines: 439 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source

The declaration to check claims

(false, count #n) = (true, count #(n+1))

and must be rejected. Both sides are constructor applications, so comparing components is the only route, and either component refutes on its own: false against true for Θ(1), the numerals for Θ(n²) (count #k evaluates to #k in Θ(k²) reductions). The test asks in which order a checker visits the components. refute-cheap-last.lean swaps them, and the ratio between the two files is what that order costs.

N=200 in the Lean source. From Courant and Leroy, POPL 2026, §10, where the two orders cost Rocq 4 × 10⁻⁶ s and 0.61 s.

Checker Result ⏱️ 🧠
mathgraph 1 ms 31.9 MB
ind-models 72 ms 107.1 MB
official-nightly 37 ms 64.4 MB
evmlean 🚫 1.9 s 135.2 MB
nanoda 1 ms 3.1 MB
mini 💥 1.6 m 78.9 MB
lean4lean 79 ms 103.3 MB
sokonanoda 1 ms 32.1 MB
zignodamus 1 ms 5.1 MB
nanoclo 1 ms 49.6 MB
nanobruijn 2 ms 11.9 MB
kiota 1 ms 9.1 MB
official 42 ms 64.8 MB
vow-lean-kernel 7.4 s 16.8 MB
rpylean 4 ms 16.9 MB
official-v4.28.0 49 ms 70.7 MB
still-nanoda 1 ms 3.0 MB
nyaya 3 ms 10.4 MB
parse-only 👍 28 ms 61.1 MB