Lean Kernel Arena / tutorial/073_BogusRecursor

Test "tutorial/073_BogusRecursor"

Expected: ✋ reject · Size: 1.8 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source

A kernel must not blindly trust the recursors it is handed. If we write

inductive BogusRecursor : Type where
  | mk : BogusRecursor

then the recursor BogusRecursor.rec will be correctly derived with type {motive : BogusRecursor → Sort u} → motive .mk → (t : BogusRecursor) → motive t.

This test instead claims that the recursor is a constant of type False, and then uses it to prove bogusRecursorFalse : False. A kernel that validates the recursors it is handed rejects the bogus recursor itself; a kernel that ignores them and derives the recursors anew rejects the proof of False (the derived recursor neither has type False nor zero universe parameters). Either way, this test must be rejected.

Checker Result ⏱️ 🧠
mathgraph ✋ 1 ms 31.8 MB
sokonanoda ✋ 1 ms 31.7 MB
nanoclo ✋ 1 ms 43.6 MB
con-ron ✋ 1 ms 10.1 MB
lazylean ✋ 1 ms 21.2 MB
nanoda ✋ 0 ms 2.9 MB
nanobruijn ✋ 1 ms 3.4 MB
con-leche ✋ 3 ms 17.2 MB
eink0rn ✋ 1 ms 11.3 MB
ind-models ✋ 58 ms 103.8 MB
official ✋ 27 ms 66.4 MB
lean4lean ✋ 28 ms 96.6 MB
tenet ✋ 127 ms 43.7 MB
nanoclo-fortran ✋ 1 ms 4.7 MB
lean4cobol ✋ 2 ms 13.6 MB
evmlean ✋ 525 ms 132.7 MB
mini ✋ 34 ms 73.0 MB
overfull ✋ 3.0 s 45.7 MB
kiota ✋ 1 ms 6.8 MB
canonical-min 🚫 387 ms 1.1 GB
rpylean ✋ 0 ms 4.3 MB
vow-lean-kernel 👍 65 ms 8.4 MB
official-v4.28.0 ✋ 34 ms 73.7 MB
still-nanoda ✋ 0 ms 3.2 MB
nyaya 👍 2 ms 8.9 MB
parse-only 👍 27 ms 65.1 MB