This PR improves the the `Sym.simp` APIs. It is now easier to reuse the simplifier cache between different simplification steps. We use the APIs to improve the benchmark at #12100. ### Symbolic simulation with simplifier cache reuse (SymM) Problem size `n` corresponds to a program with `2·n + 2` instructions. | n | Tactic time (ms) | Kernel time (ms) | |-----|------------------|------------------| | 10 | 4.53 | 4.29 | | 20 | 5.56 | 6.91 | | 30 | 6.46 | 8.67 | | 40 | 8.07 | 11.20 | | 50 | 9.37 | 13.63 | | 60 | 11.89 | 15.43 | | 70 | 12.43 | 18.28 | | 80 | 14.07 | 20.72 | | 90 | 15.62 | 23.41 | | 100 | 17.39 | 24.80 | | 200 | 30.35 | 48.39 | | 300 | 45.41 | 72.84 | | 400 | 59.17 | 97.67 | | 500 | 79.63 | 138.99 | | 600 | 100.05 | 173.67 | | 700 | 119.77 | 208.80 | <img width="571" height="455" alt="image" src="https://github.com/user-attachments/assets/70da7ea2-b5d2-405e-985c-bfa358455afc" /> |
||
|---|---|---|
| .. | ||
| bench | ||
| bench-radar | ||
| compiler | ||
| elabissues | ||
| ir | ||
| lake | ||
| lean | ||
| pkg | ||
| playground | ||
| plugin | ||
| simpperf | ||
| .gitignore | ||
| common.sh | ||
| lakefile.toml | ||
| lean-toolchain | ||