Test "bugs/nested-unused-param"
Expected: ✋ reject · Size: 59.2 KB · Lines: 1.1 k · lean4export: 3.1.0 · Lean: 4.29.1 · 📄 Declaration · 🔗 Source
Checks that the parameters of a nested inductive application are type-checked even when they do not appear in the auxiliary type generated during nested-inductive compilation.
When an inductive E has a constructor whose type contains a nested
application L (E w) b, the elaboration of nested inductives replaces that
occurrence with an auxiliary type. The argument b does not occur in the
auxiliary declaration, so a checker that only checks the auxiliary type never
sees b. A correct checker must still ensure b is well-typed; this test
rejects if it is not.
Here b is a malformed projection C.0 (C.0 w) (applying a C projection to
a value of the unrelated structure W), disguised by a hash collision. If the
parameter is not checked, the bogus projection slips through and the resulting
E can be used to build an axiom-free proof of False (boom). The
projection is merely the payload; the property under test is that the
nested-inductive parameter is checked.
Origin: reported as leanprover/lean4#14576 by @kiranandcode, with the original source recorded by @xrchz (https://github.com/xrchz/collatzlean); fixed in leanprover/lean4#14577.
| Checker | Result | ⏱️ | 🧠 | |||
|---|---|---|---|---|---|---|
| mathgraph | ✋ | 1 ms | 39.9 MB | |||
| sokonanoda | ✋ | 1 ms | 37.7 MB | |||
| nanoclo | ✋ | 2 ms | 49.6 MB | |||
| con-ron | ✋ | 26 ms | 57.0 MB | |||
| lazylean | ✋ | 3 ms | 21.8 MB | |||
| nanoda | ✋ | 2 ms | 3.1 MB | |||
| nanobruijn | ✋ | 4 ms | 18.0 MB | |||
| con-leche | ✋ | 6 ms | 20.9 MB | |||
| eink0rn | ✋ | 4 ms | 16.4 MB | |||
| ind-models | ✋ | 63 ms | 107.6 MB | |||
| official | ✋ | 31 ms | 66.8 MB | |||
| lean4lean | ✋ | 31 ms | 100.4 MB | |||
| tenet | ✋ | 156 ms | 46.3 MB | |||
| nanoclo-fortran | ✋ | 4 ms | 4.9 MB | |||
| lean4cobol | ✋ | 41 ms | 13.9 MB | |||
| evmlean | ✋ | 13.1 s | 196.8 MB | |||
| mini | 🚫 | 37 ms | 74.1 MB | |||
| overfull | 💥 | 1.8 m | 49.3 MB | |||
| kiota | ✋ | 3 ms | 11.3 MB | |||
| canonical-min | 🚫 | 419 ms | 1.1 GB | |||
| rpylean | ✋ | 2 ms | 7.0 MB | |||
| vow-lean-kernel | ✋ | 310 ms | 8.7 MB | |||
| official-v4.28.0 | 👍 | 39 ms | 73.5 MB | |||
| still-nanoda | ✋ | 2 ms | 3.1 MB | |||
| nyaya | 💥 | 6 ms | 11.0 MB | |||
| parse-only | 👍 | 30 ms | 65.8 MB |