Faster reduction engine in the kernel
Open
Nobody has claimed this yet.
enhancement
P-medium
- Dominant language
- Lean
- Stars
- 9.2k
- Forks
- 990
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 175
Description
We have only one reduction strategy when checking definitional equality in the kernel. It uses the "lazy unfolding" and it is suboptimal for many applications. Examples:
- Any application that makes heavy use of "proof` by reflection"
- Any application that has to check many ground terms are definitionally equal or not. https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Performance.20issues.20with.20big.20case.20split
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the kernel's definitional-equality checker and its existing lazy-unfolding reduction strategy. Read the linked Zulip discussion for the reported performance cases, including proof by reflection and large ground-term comparisons. Done means a faster reduction strategy is implemented and its performance is validated on those cases.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100