lean4-htt/src/Lean/Meta/Constructions
Joachim Breitner 5e40f4af52
feat: linear-size noConfusionType construction (#8037)
This PR introduces a `noConfusionType` construction that’s sub-quadratic
in size, and reduces faster.

The previous `noConfusion` construction with two nested `match`
statements is quadratic in size and reduction behavior. Using some
helper definitions, a linear size construction is possible.

With this, processing the RISC-V-AST definition from
https://github.com/opencompl/sail-riscv-lean takes 6s instead of 60s.

The previous construction is still used when processing the early
prelude, and can be enabled elsewhere using `set_option
backwards.linearNoConfusionType false`.
2025-05-22 14:54:05 +00:00
..
BRecOn.lean feat: align lemmas about List.getLast(!?) with Array/Vector.back(!?) (#7205) 2025-02-24 11:48:43 +00:00
CasesOn.lean feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00
NoConfusion.lean feat: linear-size noConfusionType construction (#8037) 2025-05-22 14:54:05 +00:00
NoConfusionLinear.lean feat: linear-size noConfusionType construction (#8037) 2025-05-22 14:54:05 +00:00
RecOn.lean