Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
I made a modification to the `mkLambdaFVars` function, adding a `etaReduce : Bool` parameter that determines whether a new lambda of the form `fun x => f x` should be replaced by `f`. I then set this option to true at `isDefEq` when processing metavariable assignments. This means that many unnecessary eta unreduced expression are now reduced. This is beneficial for users, so that they do not have to deal with such unreduced expressions. It is also beneficial for performance, leading to a 0.6% improvement in build instructions. Most notably, `Mathlib.Algebra.DirectLimit`, previously a top 50 slowest file, has sped up by 40%. Quite a number of proof in mathlib broke. Many of these involve removing a now unnecessary `simp only`. In other cases, a simp or rewrite doesn't work anymore, such as a `simp_rw [mul_comm]` that was used to rewrite `fun x => 2*x`, but now this term has turned into `HMul.hMul 2`. Closes #4386 |
||
|---|---|---|
| .github | ||
| doc | ||
| images | ||
| nix | ||
| releases_drafts | ||
| script | ||
| src | ||
| stage0 | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| .ignore | ||
| CMakeLists.txt | ||
| CMakePresets.json | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| flake.lock | ||
| flake.nix | ||
| lean-toolchain | ||
| lean.code-workspace | ||
| LICENSE | ||
| LICENSES | ||
| README.md | ||
| RELEASES.md | ||
This is the repository for Lean 4.
About
- Quickstart
- Homepage
- Theorem Proving Tutorial
- Functional Programming in Lean
- Manual
- Release notes starting at v4.0.0-m3
- Examples
- External Contribution Guidelines
- FAQ
Installation
See Setting Up Lean.
Contributing
Please read our Contribution Guidelines first.
Building from Source
See Building Lean (documentation source: doc/make/index.md).