Test "level-index-out-of-order"
Expected: 👍 accept · Size: 328 B · Lines: 6 · 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 the kernel doesn't require internaliation-table
references to be presented in ascending order. If the level referenes 2 and
1 were swapped, this would be the expected encoding of axiom foo : Sort 2.
This encoding should be equivalent.
| Checker | Result | ⏱️ | 🧠 | |||
|---|---|---|---|---|---|---|
| nanoda | 🚫 | 1 ms | 2.9 MB | |||
| nanobruijn | 👍 | 2 ms | 3.1 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.3 MB | |||
| mini | 👍 | 37 ms | 70.8 MB | |||
| vow-lean-kernel | 👍 | 50 ms | 7.8 MB | |||
| evmlean | 👍 | 475 ms | 125.9 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 |