Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
@Kha This commit adds auto bound implicits to constructors. I was excited until I tried to define the `Bigstep` type again without `autoBoundImplicitLocal`, and found small typos. Example, I had ``` | ifTrue : eval σ₁ b = true → Bigstep (c₁, σ₁) σ₂ t → Bigstep (cond b c₁ c₂, σ₁) σ₂ (t₁ + 1) ``` where `t₁` should be `t`, but the declaration was accepted. I am wondering whether Isabelle performs some kind of sanity checking, and/or enforces rules such as: auto-bound implicits may only be introduced by hypotheses. Note that this is not an issue for definitions, because the body of the definition will probably not type check when we have this kind of typo in the header. Anyway, I am putting the experiment in this branch for now. That being said, the `Bigstep` declaration is way nicer with `autoBoundImplicitLocal`s. Another option is to add a new option `ctorAutoBoundImplicitLocal` that is false by default, and activates auto implicit locals for constructors when set to true. |
||
|---|---|---|
| .github | ||
| doc | ||
| images | ||
| lean4-mode | ||
| nix | ||
| script | ||
| src | ||
| stage0 | ||
| tests | ||
| tmp | ||
| .gitattributes | ||
| .gitignore | ||
| CMakeLists.txt | ||
| CONTRIBUTING.md | ||
| default.nix | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
| shell.nix | ||
This is the repository for Lean 4, which is currently being released as milestone releases towards a first stable release. Lean 3 is still the latest stable release.
About
Installation
See Setting Up Lean.
Contributing
Please read our Contribution Guidelines first.
Building from Source
See Building Lean.