Test "perf/unroll-versus-evaluate"
Expected: 馃憤 accept 路 Size: 44.6鈥疜B 路 Lines: 1.2鈥痥 路 lean4export: 3.1.0 路 Lean: 4.29.1 路 Timeout: 50.0鈥痵 路 馃搫 Declaration 路 馃敆 Source
The declaration to check compares
count #(n+1) and N.add (count #n) #1
where #k is the numeral with k successors, and count #k evaluates to #k
in 螛(k虏) reductions.
The head constants differ. Unrolling count once turns the left side into the
right side, leaving a traversal of the shared numeral #n, for 螛(n);
evaluating both sides costs 螛(n虏). The test asks which of two differing
head constants a checker chooses to unfold.
N=1000 in the Lean source. From Courant and Leroy, POPL 2026, 搂2.
| Checker | Result | 鈴憋笍 | 馃 | |||
|---|---|---|---|---|---|---|
| mathgraph | 馃憤 | 2鈥痬s | (梅12) | 48.3鈥疢B | (-26%) | |
| sokonanoda | 馃憤 | 3鈥痬s | (梅12) | 46.2鈥疢B | (-30%) | |
| nanoclo | 馃憤 | 4鈥痬s | (梅8.2) | 56.5鈥疢B | (-14%) | |
| con-ron | 馃憤 | 24鈥痬s | (-22%) | 59.3鈥疢B | (-10%) | |
| lazylean | 馃憤 | 2鈥痬s | (梅20) | 21.3鈥疢B | (梅3.1) | |
| nanoda | 馃憤 | 2鈥痬s | (梅20) | 3.4鈥疢B | (梅19) | |
| nanobruijn | 馃憤 | 2鈥痬s | (梅16) | 9.8鈥疢B | (梅6.7) | |
| con-leche | 馃憤 | 7鈥痬s | (梅4.7) | 27.1鈥疢B | (梅2.4) | |
| eink0rn | 馃憤 | 3鈥痬s | (梅12) | 13.4鈥疢B | (梅4.9) | |
| ind-models | 馃憤 | 65鈥痬s | (脳2.1) | 107.8鈥疢B | (+64%) | |
| official | 馃憤 | 31鈥痬s | (0%) | 65.6鈥疢B | (0%) | |
| lean4lean | 馃憤 | 31鈥痬s | (+2%) | 99.0鈥疢B | (+51%) | |
| tenet | 馃憤 | 134鈥痬s | (脳4.4) | 44.4鈥疢B | (-32%) | |
| nanoclo-fortran | 馃憤 | 9鈥痬s | (梅3.5) | 7.9鈥疢B | (梅8.3) | |
| lean4cobol | 馃憤 | 25鈥痬s | (-20%) | 17.5鈥疢B | (梅3.8) | |
| evmlean | 馃毇 | 1.6鈥痵 | 138.2鈥疢B | |||
| mini | 馃挜 | 49.3鈥痵 | 89.9鈥疢B | |||
| overfull | 馃挜 | 1.6鈥痬 | 48.6鈥疢B | |||
| kiota | 馃憤 | 8鈥痬s | (梅3.9) | 18.4鈥疢B | (梅3.6) | |
| canonical-min | 馃毇 | 390鈥痬s | 1.1鈥疓B | |||
| rpylean | 馃憤 | 1鈥痬s | (梅23) | 6.0鈥疢B | (梅11) | |
| vow-lean-kernel | 馃憤 | 120鈥痬s | (脳3.9) | 9.0鈥疢B | (梅7.3) | |
| official-v4.28.0 | 馃憤 | 38鈥痬s | (+23%) | 73.8鈥疢B | (+12%) | |
| still-nanoda | 馃憤 | 2鈥痬s | (梅21) | 3.3鈥疢B | (梅20) | |
| nyaya | 馃憤 | 6鈥痬s | (梅4.9) | 11.4鈥疢B | (梅5.7) | |
| parse-only | 馃憤 | 30鈥痬s | (-3%) | 65.5鈥疢B | (0%) |