Lean Kernel Arena / other/orphan-ctor

Test "other/orphan-ctor"

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

Proof of False from a constructor of an inductive type that does not exist.

The export contains False exactly as the prelude has it — an empty Prop-valued inductive with no constructors, its ctors field is the empty list — together with its ordinary False.rec. Smuggled into the same inductive block is a constructor named rogue, of type False, with no parameters and no fields, whose induct field names Orphan, a name for which the export has no declaration at all. The theorem inconsistent : False is then simply rogue.

A checker must derive the constructors of an inductive group from the inductive declarations and reject any exported constructor that is not one of them; here that fails because False has no constructors, and the inductive type rogue claims to come from does not exist. A checker that instead registers exported constructors as given — or that only checks constructors whose induct field points at a declaration it knows — ends up with an inhabitant of the genuine empty type.

This is the constructor-side counterpart of bugs/orphan-rec: in both cases the bogus declaration escapes by not being attached to any inductive declaration that the checker verifies, rather than by disagreeing with one.

Checker Result ⏱️ 🧠
sokonanoda ✋ 1 ms 9.5 MB
mathgraph ✋ 1 ms 31.7 MB
nanoclo ✋ 1 ms 37.6 MB
con-ron ✋ 1 ms 12.0 MB
nanobruijn ✋ 0 ms 3.4 MB
nanoda ✋ 0 ms 3.0 MB
lazylean ✋ 1 ms 21.6 MB
con-leche ✋ 3 ms 19.4 MB
eink0rn ✋ 1 ms 11.5 MB
official ✋ 28 ms 66.1 MB
ind-models ✋ 100 ms 102.2 MB
lean4lean ✋ 28 ms 96.7 MB
tenet ✋ 119 ms 44.4 MB
tenet-hs ✋ 1 ms 8.4 MB
lean4cobol ✋ 2 ms 13.6 MB
evmlean ✋ 1.0 s 269.2 MB
mini ✋ 34 ms 74.5 MB
overfull ✋ 2.3 s 46.0 MB
metalean-slow ✋ 30 ms 70.9 MB
tenet-jvm ✋ 95 ms 64.5 MB
nanoclo-fortran ✋ 1 ms 4.3 MB
kiota ✋ 1 ms 7.0 MB
metalean-fast ✋ 30 ms 71.3 MB
canonical-min 🚫 386 ms 1.1 GB
rpylean ✋ 0 ms 4.3 MB
vow-lean-kernel 👍 57 ms 8.5 MB
parse-only 👍 27 ms 65.7 MB