Lean Kernel Arena / perf/irrelevance-before-evaluation

Test "perf/irrelevance-before-evaluation"

Expected: 馃憤 accept 路 Size: 17.5鈥疜B 路 Lines: 388 路 lean4export: 3.1.0 路 Lean: 4.34.1 路 Timeout: 50.0鈥痵 路 馃搫 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 鈴憋笍 馃
sokonanoda 馃憤 1鈥痬s (梅38) 36.2鈥疢B (-45%)
mathgraph 馃憤 1鈥痬s (梅37) 37.8鈥疢B (-43%)
nanoclo 馃憤 1鈥痬s (梅35) 43.6鈥疢B (-34%)
con-ron 馃憤 24鈥痬s (-18%) 60.9鈥疢B (-8%)
nanobruijn 馃憤 1鈥痬s (梅25) 9.3鈥疢B (梅7.1)
nanoda 馃憤 1鈥痬s (梅34) 3.2鈥疢B (梅21)
lazylean 馃憤 1鈥痬s (梅23) 21.6鈥疢B (梅3.1)
con-leche 馃憤 5鈥痬s (梅6.3) 22.2鈥疢B (梅3.0)
eink0rn 馃憤 2鈥痬s (梅16) 12.6鈥疢B (梅5.2)
official 馃憤 29鈥痬s (0%) 66.0鈥疢B (0%)
ind-models 馃憤 105鈥痬s (脳3.6) 106.5鈥疢B (+61%)
lean4lean 馃憤 29鈥痬s (0%) 96.9鈥疢B (+47%)
tenet 馃憤 133鈥痬s (脳4.6) 44.8鈥疢B (-32%)
tenet-hs 馃憤 2鈥痬s (梅15) 10.3鈥疢B (梅6.4)
lean4cobol 馃憤 10鈥痬s (梅2.9) 14.2鈥疢B (梅4.7)
evmlean 馃毇 1.9鈥痵 256.8鈥疢B
mini 馃憤 36鈥痬s (+26%) 73.9鈥疢B (+12%)
overfull 馃憤 51.8鈥痵 (脳1793) 47.9鈥疢B (-27%)
metalean-slow 馃憤 46鈥痬s (+58%) 73.2鈥疢B (+11%)
tenet-jvm 馃憤 118鈥痬s (脳4.1) 65.7鈥疢B (-1%)
nanoclo-fortran 馃憤 1鈥痬s (梅20) 4.6鈥疢B (梅14)
kiota 馃憤 1鈥痬s (梅29) 9.1鈥疢B (梅7.3)
metalean-fast 馃憤 32鈥痬s (+11%) 74.4鈥疢B (+13%)
canonical-min 馃毇 389鈥痬s 1.1鈥疓B
rpylean 馃憤 1鈥痬s (梅38) 4.8鈥疢B (梅14)
vow-lean-kernel 馃憤 128鈥痬s (脳4.4) 11.4鈥疢B (梅5.8)
parse-only 馃憤 28鈥痬s (-2%) 66.3鈥疢B (0%)