Commit graph

17 commits

Author SHA1 Message Date
Leonardo de Moura
b221b09ad5 chore(library/init, frontends/lean): ensure old and new parser use the same command for initializing quotient module 2019-07-31 17:07:05 -07:00
Leonardo de Moura
b2e1ff8b3e feat(library/init): use new "empty match" syntax 2019-07-15 16:25:14 -07:00
Leonardo de Moura
cf19cb0790 chore(lean4-mode/lean4-input): fix \cdot 2019-07-02 08:13:50 -07:00
Leonardo de Moura
1f11429f98 feat(frontends/lean): add partial keyword 2019-03-26 16:09:55 -07:00
Sebastian Ullrich
88af3c948a fix(lean4-mode/lean4-flycheck): update lean4-bootstrapped-checker 2019-03-24 20:55:20 +01:00
Sebastian Ullrich
e27bffabef fix(lean4-mode/lean4-flycheck): allow changing lean4-extra-arguments without restart 2019-03-23 23:09:55 +01:00
Leonardo de Moura
0b7d987699 feat(frontends/lean, library/init/lean): opaque constants
@kha I have added support for opaque constants to the old C++ frontend,
and made sure the new frontend can still parse `library/init/core.lean`.
The kernel should enforce that opaque constants are really opaque, and
the following example should fail
```
constant x : nat := 0
theorem foo : x = 0 := rfl
```
If it doesn't, it is a bug.

Here are some remaining issues:
1- `environment.mk_empty` is currently an axiom because we cannot create
an inhabitant of an opaque type. A possible solution is to use
`option environment` instead of `environment`.

2- There is no support for opaque constants in the new
frontend. However, I modified it to handle axioms, and fixed the literal
values with decl_cmd_kind. I tried to mark some of my changes with
comments, but it is probably much easier for you to just check the
commit change list.

3- I did not add any support for automatically constructing `e`
at `constant x : t := e`. I think we can do this later
after we replace the old frontend with the new one. BTW, it took only a
few minutes to provide the inhabitants manually.
2019-03-15 17:41:44 -07:00
Leonardo de Moura
ecdb9d6df0 feat(library/init, frontends/lean): add abbreviation for abbreviation 2019-03-15 16:01:25 -07:00
Leonardo de Moura
0888dee25e chore(*): meta ==> unsafe 2019-03-15 15:04:40 -07:00
Sebastian Ullrich
4c0f836305 chore(shell/lean): reduce lean interface to taking a single file, assuming all dependencies have already been built 2019-01-25 18:27:38 +01:00
Sebastian Ullrich
72274870ef feat(lean4-mode/lean4-flycheck): add lean4-bootstrapped-checker 2018-12-20 14:28:18 +01:00
Sebastian Ullrich
febeaad5bb feat(lean4-mode/lean4-flycheck): store .olean of dependencies 2018-09-11 16:35:25 -07:00
Sebastian Ullrich
52d4cc10ad feat(shell/lean,lean4-mode/lean4-flycheck): use stdin for communication
no more `flycheck_` files
2018-09-11 16:35:25 -07:00
Sebastian Ullrich
845c496a07 fix(lean4-mode/lean4-util): (lean4-setup-rootdir) returns the wrong path 2018-09-08 18:37:58 -07:00
Sebastian Ullrich
1a4a69679d chore(lean4-mode): rename files 2018-09-08 18:37:58 -07:00
Sebastian Ullrich
11f8e24136 chore(lean4-mode): change lean- prefixes to lean4- 2018-09-08 18:37:58 -07:00
Sebastian Ullrich
f2cb01bbf0 chore(lean-mode): rename to lean4-mode 2018-09-08 18:37:58 -07:00