Commit graph

37 commits

Author SHA1 Message Date
Sebastian Ullrich
70232f7ad9 fix: lean4-mode: attributes are not documentation
and in particular should not be spell-checked
2021-03-09 17:41:36 +01:00
Sebastian Ullrich
f7e5fec4d1 feat: lean4-mode: add more suffix characters to word category 2021-02-07 18:27:55 +01:00
Leonardo de Moura
61f1fde40d feat: add register_builtin_option keyword 2021-01-26 17:46:08 -08:00
Leonardo de Moura
9576f4a390 chore: highlight elab 2021-01-09 14:10:11 -08:00
Leonardo de Moura
f4a51ac201 chore: add deriving to keyword lists 2020-12-12 15:42:01 -08:00
Leonardo de Moura
6c4072cd4a chore: add keyword "scoped" 2020-12-04 11:28:40 -08:00
Leonardo de Moura
e21b4a6399 feat: nicer syntax for unification hints 2020-11-27 19:18:18 -08:00
Leonardo de Moura
b72a3c69b6 fix: ambiguity at induction/cases
See efc3a320fe
2020-11-24 14:59:12 -08:00
Leonardo de Moura
6c6595cd9b feat: only allow variables declared with mut to be reassigned 2020-11-07 17:32:13 -08:00
Leonardo de Moura
df2cae4f90 chore: remove some old keywords 2020-11-05 07:05:01 -08:00
Leonardo de Moura
82dc155f0f chore: add builtin_initialize keyword 2020-10-19 15:09:17 -07:00
Leonardo de Moura
66e0ebc120 chore: add #lang to list of keywords 2020-10-14 17:38:17 -07:00
Leonardo de Moura
3f8566f4d1 chore: add initialize to list of keywords 2020-10-10 06:45:28 -07:00
Leonardo de Moura
0a09706b0b chore: add try, catch, and finally to the list of keywords 2020-10-08 19:39:04 -07:00
Leonardo de Moura
ac16393ae9 chore: add break and continue keywords 2020-10-05 15:37:01 -07:00
Leonardo de Moura
3caa683626 chore: add unless to keyword list 2020-10-02 19:16:14 -07:00
Leonardo de Moura
45a98d5739 chore: add "for" to list of keywords 2020-09-26 12:33:11 -07:00
Leonardo de Moura
30a1e0228b chore: add where to list of keywords 2020-09-21 08:27:29 -07:00
Leonardo de Moura
b36bcf3cf1 feat: admit and done 2020-09-15 10:46:40 -07:00
Leonardo de Moura
c3d91e4228 chore: new keywords 2020-09-10 15:18:32 -07:00
Leonardo de Moura
ba4fdce508 feat: expand helper macros 2020-09-10 14:25:07 -07:00
Leonardo de Moura
095e07d52d chore: letrec => let rec
cc @Kha
2020-09-01 13:27:41 -07:00
Leonardo de Moura
d129d93dde chore: add letrec to the list of keywords 2020-08-26 09:37:50 -07:00
Leonardo de Moura
11ed525c69 chore: add new_frontend 2020-06-17 21:28:03 -07:00
Sebastian Ullrich
e5f7334e2d chore: lean4-mode: operators are punctuation, '!' and '?' are symbol parts 2020-03-19 17:18:27 -07:00
Leonardo de Moura
2fee8059b6 feat: add induction tactic parser 2020-02-21 11:30:36 -08:00
Leonardo de Moura
be730fa27f feat: add #check_failure as keyword 2020-02-12 12:52:51 -08:00
Sebastian Ullrich
fdfbb9a435 chore: lean4-mode: remove '.' from symbol table 2020-02-03 16:37:02 +01:00
Leonardo de Moura
5fffecfb53 chore: add macro_syntax syntax highlight 2019-12-17 13:32:52 -08:00
Daniel Selsam
a82266c652 feat(library/init/lean/typeclass): #synth with tabled resolution 2019-10-03 17:23:53 -07:00
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
1f11429f98 feat(frontends/lean): add partial keyword 2019-03-26 16:09:55 -07: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
1a4a69679d chore(lean4-mode): rename files 2018-09-08 18:37:58 -07:00
Renamed from lean4-mode/lean-syntax.el (Browse further)