Test "perf/irrelevance-before-evaluation"
Expected: 馃憤 accept 路 Size: 17.5鈥疜B 路 Lines: 389 路 lean4export: 3.1.0 路 Lean: 4.29.1 路 馃搫 Declaration 路 馃敆 Source
The declaration to check is
slowTriv (count #n) = True.intro
proved by Eq.refl, where slowTriv m : True recurses over m, so forcing
it to a constructor evaluates the numeral in 螛(n虏) reductions.
Checking compares the two proofs as arguments of Eq, whose head is rigid:
nothing can be unfolded instead. Proof irrelevance settles the proofs by
their type for 螛(1); evaluating the left one to a constructor costs
螛(n虏) and yields the answer irrelevance already gave. The test asks
whether a checker consults proof irrelevance before it reduces.
N=200 in the Lean source.
| Checker | Result | 鈴憋笍 | 馃 | |||
|---|---|---|---|---|---|---|
| mathgraph | 馃憤 | 1鈥痬s | (梅40) | 31.8鈥疢B | (-48%) | |
| ind-models | 馃憤 | 63鈥痬s | (脳2.2) | 105.4鈥疢B | (+72%) | |
| official-nightly | 馃憤 | 29鈥痬s | (+1%) | 63.3鈥疢B | (+3%) | |
| evmlean | 馃毇 | 1.4鈥痵 | 135.5鈥疢B | |||
| nanoda | 馃憤 | 1鈥痬s | (梅34) | 3.2鈥疢B | (梅19) | |
| mini | 馃憤 | 37鈥痬s | (+27%) | 74.0鈥疢B | (+21%) | |
| lean4lean | 馃憤 | 29鈥痬s | (+1%) | 91.9鈥疢B | (+50%) | |
| sokonanoda | 馃憤 | 1鈥痬s | (梅40) | 31.8鈥疢B | (-48%) | |
| zignodamus | 馃憤 | 1鈥痬s | (梅46) | 4.9鈥疢B | (梅13) | |
| nanoclo | 馃憤 | 1鈥痬s | (梅28) | 45.5鈥疢B | (-26%) | |
| nanobruijn | 馃憤 | 1鈥痬s | (梅22) | 11.7鈥疢B | (梅5.2) | |
| kiota | 馃憤 | 3鈥痬s | (梅11) | 11.0鈥疢B | (梅5.6) | |
| official | 馃憤 | 29鈥痬s | (0%) | 61.4鈥疢B | (0%) | |
| vow-lean-kernel | 馃憤 | 128鈥痬s | (脳4.5) | 11.0鈥疢B | (梅5.6) | |
| rpylean | 馃憤 | 1鈥痬s | (梅32) | 8.8鈥疢B | (梅7.0) | |
| official-v4.28.0 | 馃憤 | 35鈥痬s | (+23%) | 72.4鈥疢B | (+18%) | |
| still-nanoda | 馃憤 | 1鈥痬s | (梅34) | 3.0鈥疢B | (梅21) | |
| nyaya | 馃憤 | 3鈥痬s | (梅8.3) | 10.7鈥疢B | (梅5.7) | |
| parse-only | 馃憤 | 28鈥痬s | (-2%) | 61.5鈥疢B | (0%) |