Lean Kernel Arena / corner-cases/nested-redex-aux

Test "corner-cases/nested-redex-aux"

Expected: 🤷 either · Size: 43.0 KB · Lines: 755 · lean4export: 3.1.0 · Lean: 4.34.1 · 📄 Declaration · 🔗 Source

A nested inductive whose two nested occurrences differ only by a beta-redex:

| a : List ((fun _ : Bool => NestedRedex) true) → NestedRedex
| b : List NestedRedex → NestedRedex

The official kernel finds nested occurrences syntactically, so these become two auxiliary types and NestedRedex.rec has three motives; the theorem reduces a recursor application that goes through both, and the official kernel accepts it.

A checker that normalises constructor types before it collects nested occurrences merges the two into one auxiliary type, derives a recursor with two motives and rejects the theorem. Whether such a field is a nested occurrence at all is debatable: the elaborator never writes one, and the official kernel's answer follows from its syntactic test rather than from the type theory (see https://github.com/intgrah/sokonanoda/issues/12).

Checker Result ⏱️ 🧠
logos-kernel 👍 0.743 ms 4.6 MB
nano-lean 👍 0.816 ms 28.1 MB
sokonanoda ✋ 1.37 ms 29.8 MB
pestka 👍 1.98 ms 10.8 MB
kefir 👍 4.66 ms 6.7 MB
nanoclo 👍 1.56 ms 47.5 MB
kefir-wasm 👍 283 ms 110.1 MB
con-ron 👍 23.6 ms 39.8 MB
con-agua 👍 20.4 ms 13.8 MB
nanoda 👍 2.11 ms 3.3 MB
lazylean 👍 2.13 ms 21.5 MB
con-leche 👍 7.35 ms 23.1 MB
pestka-wasm 👍 126 ms 108.4 MB
tenet-jvm 👍 173 ms 70.3 MB
eink0rn 👍 5.51 ms 20.0 MB
official 👍 31.6 ms 65.9 MB
ind-models 👍 251 ms 116.7 MB
lean4lean 👍 31.5 ms 97.0 MB
tenet 👍 150 ms 46.0 MB
tenet-hs 👍 4.04 ms 14.7 MB
ocaml4lean 👍 16.6 ms 27.0 MB
lean4cobol 👍 35.2 ms 14.0 MB
evmlean 👍 12.7 s 324.0 MB
overfull ⌛ 0 ms 0 B
vow-lean-kernel 👍 306 ms 14.8 MB
mini 🚫 35.4 ms 73.7 MB
canonical-min 🚫 389 ms 1.1 GB
kiota 👍 2.51 ms 11.0 MB
metalean-slow 👍 47.0 ms 76.1 MB
nanobruijn 👍 3.16 ms 14.5 MB
metalean-fast 👍 34.1 ms 78.6 MB
nanoclo-fortran 👍 3.76 ms 5.0 MB
rpylean 👍 1.46 ms 5.7 MB
mathgraph ✋ 1.02 ms 39.8 MB
parse-only 👍 29.7 ms 65.9 MB