This PR adds support for simplifying lambda expressions in `Sym.simp`. It is much more efficient than standard simp for very large lambda expressions with many binders. The key idea is to generate a custom function extensionality theorem for the type of the lambda being simplified. This technique is compatible with the standard `simp` tactic, and will be ported in a separate PR. <img width="581" height="455" alt="image" src="https://github.com/user-attachments/assets/5911dc6c-03f0-48ed-843b-b8cb4f67ee61" /> ### `lambda` benchmark summary | Lambda size | MetaM (ms) | SymM (ms) | Speedup | |-------------|------------|-----------|---------| | 50 | 22.7 | 0.74 | ~31× | | 100 | 120.5 | 1.75 | ~69× | | 150 | 359.6 | 2.90 | ~124× | | 200 | 809.5 | 4.51 | ~180× | |
||
|---|---|---|
| .. | ||
| bench | ||
| bench-radar | ||
| compiler | ||
| elabissues | ||
| ir | ||
| lake | ||
| lean | ||
| pkg | ||
| playground | ||
| plugin | ||
| simpperf | ||
| .gitignore | ||
| common.sh | ||
| lakefile.toml | ||
| lean-toolchain | ||