Lean Kernel Arena / bugs/level-imax-leq

Test "bugs/level-imax-leq"

Expected: ✋ reject · Size: 5.6 KB · Lines: 93 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration

Proof of False via incorrect universe level comparison for imax.

A correct kernel must reject leq(imax(u,v)+1, imax(u,v)), since at u=0, v=0 this becomes leq(1, 0) which is false. However, a checker that only compares the imax arguments structurally (without accounting for an accumulated successor offset) will incorrectly accept it.

This allows defining a universe-collapsing identity function down.{u,v} : Sort (succ (imax u v)) → Sort (imax u v), which is used to cast between True and False via Bool.rec at Sort (imax 0 0) = Prop.

Nanoda incorrectly accepted this proof until it was fixed.

Checker Result ⏱️ 🧠
sokonanoda ✋ 1 ms 38.3 MB
mathgraph ✋ 1 ms 30.0 MB
nanoclo ✋ 1 ms 45.7 MB
con-ron ✋ 1 ms 12.0 MB
nanobruijn ✋ 1 ms 5.5 MB
nanoda ✋ 1 ms 3.4 MB
lazylean ✋ 1 ms 21.7 MB
con-leche ✋ 3 ms 19.3 MB
eink0rn ✋ 1 ms 12.1 MB
official ✋ 28 ms 67.4 MB
ind-models ✋ 100 ms 102.6 MB
lean4lean ✋ 74 ms 105.8 MB
tenet ✋ 134 ms 44.9 MB
tenet-hs ✋ 1 ms 9.0 MB
lean4cobol ✋ 3 ms 13.5 MB
evmlean ✋ 1.2 s 276.4 MB
mini ✋ 34 ms 74.0 MB
overfull ✋ 9.6 s 46.1 MB
metalean-slow ✋ 30 ms 71.2 MB
tenet-jvm ✋ 108 ms 66.4 MB
nanoclo-fortran ✋ 1 ms 4.5 MB
kiota ✋ 1 ms 7.2 MB
metalean-fast ✋ 30 ms 72.3 MB
canonical-min ✋ 387 ms 1.1 GB
rpylean ✋ 1 ms 4.5 MB
vow-lean-kernel ✋ 79 ms 8.7 MB
parse-only 👍 28 ms 66.3 MB