Test "perf/args-before-unfold"
Expected: 馃憤 accept 路 Size: 44.5鈥疜B 路 Lines: 1.2鈥痥 路 lean4export: 3.1.0 路 Lean: 4.29.1 路 Timeout: 50.0鈥痵 路 馃搫 Declaration 路 馃敆 Source
The declaration to check compares
count #n and count (N.add #(n-1) #1)
where #k is the numeral with k successors, and count #k evaluates to #k
in 螛(k虏) reductions.
N.add #(n-1) #1 reduces to #n in n steps, so the two arguments agree for
螛(n), and the applications agree with them without count ever being
unfolded. Evaluating both applications costs 螛(n虏). The test asks whether
a checker tries the arguments of a shared head constant before unfolding it.
N=1000 in the Lean source. From Courant and Leroy, POPL 2026, 搂10.
| Checker | Result | 鈴憋笍 | 馃 | |||
|---|---|---|---|---|---|---|
| mathgraph | 馃憤 | 2鈥痬s | (梅22) | 44.4鈥疢B | (-32%) | |
| sokonanoda | 馃憤 | 2鈥痬s | (梅22) | 42.5鈥疢B | (-35%) | |
| nanoclo | 馃憤 | 3鈥痬s | (梅13) | 50.4鈥疢B | (-23%) | |
| con-ron | 馃憤 | 28鈥痬s | (-22%) | 68.0鈥疢B | (+4%) | |
| lazylean | 馃憤 | 6鈥痬s | (梅6.3) | 24.5鈥疢B | (梅2.7) | |
| nanoda | 馃憤 | 4鈥痬s | (梅8.4) | 3.8鈥疢B | (梅17) | |
| nanobruijn | 馃憤 | 5鈥痬s | (梅7.5) | 11.0鈥疢B | (梅6.0) | |
| con-leche | 馃憤 | 14鈥痬s | (梅2.5) | 29.3鈥疢B | (梅2.2) | |
| eink0rn | 馃憤 | 4鈥痬s | (梅8.0) | 15.9鈥疢B | (梅4.1) | |
| ind-models | 馃憤 | 70鈥痬s | (+96%) | 109.6鈥疢B | (+67%) | |
| official | 馃憤 | 36鈥痬s | (0%) | 65.7鈥疢B | (0%) | |
| lean4lean | 馃憤 | 43鈥痬s | (+19%) | 99.8鈥疢B | (+52%) | |
| tenet | 馃憤 | 146鈥痬s | (脳4.1) | 48.3鈥疢B | (-27%) | |
| nanoclo-fortran | 馃憤 | 6鈥痬s | (梅5.6) | 7.4鈥疢B | (梅8.8) | |
| lean4cobol | 馃憤 | 118鈥痬s | (脳3.3) | 20.7鈥疢B | (梅3.2) | |
| evmlean | 馃毇 | 1.6鈥痵 | 137.9鈥疢B | |||
| mini | 馃挜 | 50.5鈥痵 | 90.1鈥疢B | |||
| overfull | 馃挜 | 1.7鈥痬 | 48.9鈥疢B | |||
| kiota | 馃憤 | 6鈥痬s | (梅5.7) | 16.4鈥疢B | (梅4.0) | |
| canonical-min | 馃毇 | 390鈥痬s | 1.1鈥疓B | |||
| rpylean | 馃憤 | 5鈥痬s | (梅6.9) | 13.1鈥疢B | (梅5.0) | |
| vow-lean-kernel | 馃憤 | 147鈥痬s | (脳4.1) | 10.8鈥疢B | (梅6.1) | |
| official-v4.28.0 | 馃憤 | 44鈥痬s | (+22%) | 76.0鈥疢B | (+16%) | |
| still-nanoda | 馃憤 | 4鈥痬s | (梅8.3) | 4.1鈥疢B | (梅16) | |
| nyaya | 馃憤 | 20鈥痬s | (-44%) | 13.2鈥疢B | (梅5.0) | |
| parse-only | 馃憤 | 30鈥痬s | (-17%) | 65.9鈥疢B | (0%) |