Test "constlevels"
Expected: ✋ reject · Size: 15.3 KB · Lines: 283 · lean4export: 3.1.0 · Lean: 4.29.0-rc2 · 📄 Declaration
Regression test for undefined behavior in lazy_delta_reduction_step in the official kernel
In the function lazy_delta_reduction_step, the official kernel expects unfold_definition
to always succeed. However, if the constant has an incorrect number of level parameters, it
actually fails, which leads to memory corruption in lazy_delta_reduction_step.
This test is to check that the official kernel and also other kernels that closely follow the logic of the official kernel correctly handle this unfolding failure.
The issue in the official kernel was originally reported as https://github.com/leanprover/lean4/issues/10577.
| Checker | Result | ⏱️ | 🧠 | ||
|---|---|---|---|---|---|
| nanoda | ✋ | 2 ms | 3.0 MB | ||
| nanobruijn | ✋ | 7 ms | 11.7 MB | ||
| official-nightly | ✋ | 32 ms | 56.9 MB | ||
| official | 💥 | 33 ms | 65.0 MB | ||
| official-v4.28.0 | 💥 | 39 ms | 69.7 MB | ||
| lean4lean | 🚫 | 26 ms | 13.0 MB | ||
| mini | ✋ | 40 ms | 70.3 MB | ||
| always-decline | 🚫 | 1 ms | 2.8 MB | ||
| always-reject | ✋ | 1 ms | 2.8 MB | ||
| rpylean | ✋ | 4 ms | 7.2 MB | ||
| parse-only | 👍 | 38 ms | 70.0 MB | ||
| always-accept | 👍 | 1 ms | 2.8 MB |