Lean Kernel Arena / extra-rec

Test "extra-rec"

Expected: ✋ reject · Size: 1.4 KB · Lines: 21 · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration

Proof of False from an extra recursor that no inductive declaration could produce.

The export contains False exactly as the prelude has it — an empty Prop-valued inductive with no constructors — together with its ordinary False.rec. Smuggled into the same inductive group is a second recursor, named rogue, whose type is False itself and which has no motives, no minor premises and no rules. The theorem inconsistent : False is then simply rogue.

A checker must derive the recursors of an inductive group from the inductive declaration and reject any exported recursor that is not one of them; here that fails on the name (rogue is not False.rec) as well as on the type. A checker that instead registers exported recursors as given ends up with an inhabitant of the genuine empty type.

This is a different gap from nat-rec-rules, which perturbs the rules of a legitimate recursor: here an entire recursor constant is fabricated, so validating only the rules of the recursors one expects does not catch it.

Checker Result ⏱️ 🧠
mathgraph 1 ms 29.8 MB
nanoda 0 ms 3.2 MB
nanobruijn 1 ms 3.3 MB
ind-models 58 ms 105.3 MB
official 27 ms 66.1 MB
lean4lean 28 ms 98.2 MB
evmlean 488 ms 133.4 MB
mini 34 ms 75.0 MB
sokonanoda 👍 1 ms 29.9 MB
nanoclo 👍 1 ms 35.5 MB
zignodamus 👍 0 ms 4.0 MB
vow-lean-kernel 43 ms 8.0 MB
official-v4.28.0 34 ms 74.4 MB
still-nanoda 👍 0 ms 3.0 MB
kiota 1 ms 6.9 MB
rpylean 1 ms 8.2 MB
nyaya 👍 2 ms 9.3 MB
parse-only 👍 27 ms 65.3 MB