Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
Find a file
Leonardo de Moura 8e4dc5bcf6 fix: longestMatchFn
Several combinators (e.g., `checkNoWsBefore`) access the "leading
term" by retrieving the element on the top of the syntax stack.
However, the `longestMatchFn` was accumulating successful matches on
the syntax stack too. This commit makes sure the `longestMatchFn`
always push the "leading term" before trying a parser.

This commit also eliminates the `orelseFn` hack at `trailingLoopStep`.
Now, we use `longestMatchFn` for all parsers. Note that we have to add
a new combinator (`checkWsBeforeIfSymbol`) to make sure that `a[i]`
cannot be parsed by the `app` parsing rule.
Before removing the hack from `trailingLoopStep`,
`a[i]` was correctly parsed as an `arrayRef`. After the change,
the `app` parser is tried and it succeeds (IF we don't use
`checkWsBeforeIfSymbol`). It is an application using the list literal
`[i]`.
The `checkWsBeforeIfSymbol` ensures that `a[i]` is not a valid `app`.

cc @Kha
2020-06-11 12:21:16 -07:00
.github chore: de-Nix-ify macOS binary 2020-06-10 21:30:38 +02:00
doc doc: reference correct default stage 2020-05-18 14:52:10 +02:00
images
lean4-mode doc: further elaborate on elan and Emacs setup 2020-05-18 11:00:29 +02:00
nix chore: building static executables is hopeless, do mostly static instead 2020-06-10 21:30:38 +02:00
script chore: update CI 2020-06-10 21:30:38 +02:00
src fix: longestMatchFn 2020-06-11 12:21:16 -07:00
stage0 chore: use notationItem to remove $noprec* hack 2020-06-10 16:59:44 -07:00
tests chore: fix test 2020-06-10 16:43:44 -07:00
tmp proto: checkpoint 2020-04-03 15:20:54 -07:00
.clang-format feat(library/vm/process): add basic process support 2017-03-28 18:08:06 -07:00
.codecov.yml fix(.codecov.yml): do not fail github ci if coverage drops by 0.01% 2017-06-25 10:35:02 +02:00
.gitattributes chore(.gitattributes): use union merge strategy for doc/changes.md 2017-12-11 12:49:10 +01:00
.gitignore chore: move bin/ and .oleans into build directory 2020-05-14 14:47:54 +02:00
CMakeLists.txt chore: bump minimum cmake version 2020-06-10 21:30:38 +02:00
default.nix chore: add separate "Linux release" CI job using Nix channel with older glibc for compatibility 2020-06-10 21:30:38 +02:00
LICENSE
README.md chore(README): update 2019-04-24 11:40:46 -07:00
shell.nix chore: add separate "Linux release" CI job using Nix channel with older glibc for compatibility 2020-06-10 21:30:38 +02:00

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.