Test "sparse-name-index"
Expected: 👍 accept · Size: 292 B · Lines: 4 · lean4export: 0.1.0 · Lean: 4.29.1 · 📄 Declaration
Lean4export will create internalization-table references contiguously in
order: in references for names, il references for levels, and ie
references for expressions all work this way.
However, the spec merely requires that these are integers. It's reasonable for an implementation to assume these are approximately dense (and to treat them as array indices instead of hashtable entries), but a kernel should handle skipped indices or out-of-order indices.
This test checks that a kernel doesn't require internalization-table
references to be assigned sequentially starting from 1. If the "2" and "4"
were replaced by "1" and "0", respectively, this would be the expected
encoding of axiom foo : Prop. This encoding should be equivalent.
| Checker | Result | ⏱️ | 🧠 | |||
|---|---|---|---|---|---|---|
| nanoda | 🚫 | 1 ms | 2.9 MB | |||
| nanobruijn | 👍 | 2 ms | 3.0 MB | |||
| official-nightly | 👍 | 31 ms | 56.0 MB | |||
| official | 👍 | 31 ms | 66.2 MB | |||
| official-v4.28.0 | 👍 | 37 ms | 70.4 MB | |||
| lean4lean | 👍 | 56 ms | 84.7 MB | |||
| mini | 👍 | 38 ms | 70.9 MB | |||
| vow-lean-kernel | 👍 | 50 ms | 7.8 MB | |||
| evmlean | 👍 | 472 ms | 127.0 MB | |||
| always-decline | 🚫 | 1 ms | 2.9 MB | |||
| sokonanoda | 👍 | 1 ms | 2.9 MB | |||
| rpylean | 👍 | 2 ms | 7.6 MB | |||
| still-nanoda | ✋ | 1 ms | 2.9 MB | |||
| always-reject | ✋ | 1 ms | 2.9 MB | |||
| parse-only | 👍 | 37 ms | 71.0 MB | |||
| always-accept | 👍 | 1 ms | 2.9 MB |