Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
@kha This commit fixes the bug we discussed on slack. I had to repair one of the tests. The broken test made me realize that if we use the unbundled approach to define something like `is_semiring` ``` class is_semiring (α : Type) (plus : α → α → α) (mul : α → α → α) (zero : out_param α) (one : out_param α) := ... ``` Then, to retrieve a `is_semiring` instance, we need to know `α`, `plus` and `mul`. This is problematic because we may be in a context where one of them cannot be inferred. This would force user to manually provide the missing (input) parameter. We are not considering the unbundled approach for complex algebraic structures such as `semiring`, `ring` and `field`, but I wanted to document this limitation here since we may face it in other type classes. I think it is a bad idea to add back `inout_param` and have both: `inout_param` and `out_param`. The previous `inout_param` created many instabilities and hard to diagnose failures. |
||
|---|---|---|
| .github | ||
| bin | ||
| doc | ||
| extras/latex | ||
| images | ||
| leanpkg | ||
| library | ||
| packages | ||
| script | ||
| src | ||
| tests | ||
| tmp | ||
| .appveyor.yml | ||
| .clang-format | ||
| .codecov.yml | ||
| .gitattributes | ||
| .gitignore | ||
| .travis.yml | ||
| LICENSE | ||
| README.md | ||
| License | Windows | Linux / macOS | Test Coverage | Chat |
|---|---|---|---|---|
![]() |
About
- Homepage
- Theorem Proving in Lean
- Core library
- Change Log
- FAQ
- For HoTT mode, please use Lean2.
Installation
Stable and nightly binary releases of Lean are available on the homepage. For building Lean from source, see the build instructions.
Miscellaneous
- Building Doxygen Documentation:
doxygen src/Doxyfile - Coding Style
- Library Style Conventions
- Git Commit Conventions
- Automatic Builds
- Syntax Highlight Lean Code in LaTeX
- Exporting, and reference type-checkers
