Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
@kha Trying again :) I started using the prefix `f` for the `Fin` version (e.g., `fswap` and `fswapAt`). So, it seemed natural to use the prefix `f` for the `Fin` versions of `get` and `set`. BTW, is it too crazy to use `a[i]` (without spaces) as notation for `a.get i`? The constraint is to make sure `f a [i]` is not ambiguous. That is, `f a[i]` is `f (a.get i)` and `f a [i]` is `f a (i::nil)`. This is doable with the new parser. Then, we could have `a[i]` as notation for `a.fget i` if `i` is a `Fin`, and `a.get i` if `i` is `Nat`. Similarly, `a[i := v]` would be notation for `a.fset i v` if `i` is `Fin`, and `a.set i` if `i` is `Nat`. It would also be awesome to have ``` let a[i] := v in e ``` as notation for ``` let a := a[i := v] in ``` |
||
|---|---|---|
| .github | ||
| bin | ||
| doc | ||
| gen | ||
| images | ||
| lean4-mode | ||
| library | ||
| script | ||
| src | ||
| tests | ||
| .appveyor.yml | ||
| .clang-format | ||
| .codecov.yml | ||
| .gitattributes | ||
| .gitignore | ||
| .travis.yml | ||
| LICENSE | ||
| README.md | ||
We are currently developing Lean 4. Lean 3 is still the latest official release. This repository contains work in progress.
Important. Unless you are one of our collaborators
- We strongly suggest you use Lean 3.
- Pull requests are not welcome.
- New issues are not welcome, and will be closed without any feedback.