Test "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 | 37.8 MB | |||
| ind-models | ✋ | 63 ms | 104.4 MB | |||
| official-nightly | ✋ | 31 ms | 64.7 MB | |||
| evmlean | ✋ | 13.1 s | 196.5 MB | |||
| nanoda | ✋ | 2 ms | 3.3 MB | |||
| mini | 🚫 | 37 ms | 75.2 MB | |||
| lean4lean | ✋ | 31 ms | 95.1 MB | |||
| sokonanoda | ✋ | 1 ms | 39.8 MB | |||
| zignodamus | ✋ | 37 ms | 27.0 MB | |||
| nanoclo | ✋ | 2 ms | 51.5 MB | |||
| nanobruijn | ✋ | 4 ms | 14.5 MB | |||
| kiota | ✋ | 2 ms | 10.9 MB | |||
| official | ✋ | 31 ms | 64.8 MB | |||
| vow-lean-kernel | ✋ | 310 ms | 8.7 MB | |||
| rpylean | ✋ | 2 ms | 10.9 MB | |||
| official-v4.28.0 | 👍 | 39 ms | 69.1 MB | |||
| still-nanoda | ✋ | 2 ms | 3.4 MB | |||
| nyaya | 💥 | 6 ms | 11.4 MB | |||
| parse-only | 👍 | 30 ms | 61.8 MB |