Commit graph

2756 commits

Author SHA1 Message Date
Gabriel Ebner
8554b8eac1 fix(frontends/lean/pp): insert line breaks in notations 2017-05-01 13:13:07 +02:00
Gabriel Ebner
ca2eab3a2f fix(frontends/lean/structure_cmd): instantiate universe levels in projections to parents 2017-04-29 15:00:17 +02:00
Johannes Hölzl
9535a14e94 fix(frontent/lean/elaborator): check if field is found in structure update
Fixes #1549
2017-04-28 17:42:07 +02:00
Sebastian Ullrich
0ca6e2c96f refactor(library/{type_context,compiler/preprocess},frontends/lean/elaborator): use opaque, general type class instead of special app elaboration for eval_expr 2017-04-27 16:04:59 -07:00
Gabriel Ebner
271d8ca47a fix(frontends/lean/definition_cmds): make sure auxiliary definitions introduced by abstract do not clash 2017-04-27 16:04:18 -07:00
Gabriel Ebner
5324f8c3d3 fix(frontends/lean/definition_cmds): use real name as prefix for abstracted proofs 2017-04-27 16:04:18 -07:00
Gabriel Ebner
a7d58008ac fix(frontends/lean/parser): show exception message in import errors 2017-04-27 16:04:18 -07:00
Leonardo de Moura
f4ebd38ce3 feat(frontends/lean/builtin_exprs): improve infix paren notation
After this commit, `(+)` is notation for (add) instead of `(fun x y, add x y)`.
This change is relevant when defining type class instances such as

```lean
instance semigroup_to_is_associative [semigroup α] : is_associative α (*) :=
⟨mul_assoc⟩
```
2017-04-27 12:33:33 -07:00
Sebastian Ullrich
cfbc449769 refactor(frontends/lean/structure_cmd): some more cleanup 2017-04-26 14:22:46 -07:00
Sebastian Ullrich
d968b9a1c8 fix(frontends/lean/structure_cmd): remove evil Pi overload that accidentally abstracted constants in structure decls 2017-04-26 14:22:36 -07:00
Sebastian Ullrich
0d02136a09 fix(frontends/lean/inductive_cmds): do not whnf pre-exprs
Fixes #1507
2017-04-25 17:47:29 -07:00
Sebastian Ullrich
dd1f3e5f8c fix(frontends/lean/structure_cmd): reject internal field names
Fixes #1539
2017-04-25 17:47:08 -07:00
Sebastian Ullrich
e9a6c544af refactor(frontends/lean/{elaborator,structure_cmd}): compile structure inheritance to nested fields 2017-04-24 19:35:15 +02:00
Sebastian Ullrich
b26d15b9e9 fix(frontends/lean/elaborator): error message 2017-04-24 19:31:15 +02:00
Sebastian Ullrich
6ab0a008f9 feat(frontends/lean/{builtin_cmds,interactive}): complete namespace/section after end 2017-04-23 11:26:31 -07:00
Sebastian Ullrich
a54514fead feat(frontends/lean/print_cmd): complete identifiers after #print 2017-04-23 11:26:31 -07:00
Sebastian Ullrich
5b17c3cbd9 fix(frontends/lean/interactive): fall back to elaborator info when not an interactive tactic
Fixes #1530
2017-04-23 11:26:31 -07:00
Gabriel Ebner
c2068dae46 fix(frontends/lean/tactic_notation): show error for unsolved focused goals at the end
Fixes #1531.
2017-04-23 11:23:08 -07:00
Gabriel Ebner
489b3304bd fix(frontends/lean/parser): allow enabling profiler via set_option 2017-04-23 11:22:50 -07:00
Gabriel Ebner
9424e6fa24 refactor(frontends/lean/definition_cmds): make profiling threshold configurable 2017-04-23 11:22:41 -07:00
Sebastian Ullrich
b3884d5f42 refactor(init/meta/interactive,frontends/lean/token_table): introduce generalizing keyword in Lean 2017-04-16 15:11:49 -07:00
Sebastian Ullrich
8ea2bc08cb feat(init/meta/interactive): add generalizing parameter to induction 2017-04-11 17:07:28 -07:00
Gabriel Ebner
e2fa363423 feat(library/system/io,shell/lean): add --run switch 2017-04-11 16:41:30 -07:00
Gabriel Ebner
01a7efc007 fix(library/module_mgr): do not crash on missing imports
Fixes #1506.
2017-04-04 19:56:33 +02:00
Gabriel Ebner
98fb21eab4 chore(frontends/lean/{parser_state,parser_pos_provider}): compiler warnings 2017-04-01 20:23:33 +02:00
Gabriel Ebner
cde946f293 fix(frontends/lean/scanner): fix assertion 2017-04-01 16:38:02 +02:00
Leonardo de Moura
b7c3d5a9f5 fix(frontends/lean/scanner): assertion 2017-03-31 19:39:13 -07:00
Sebastian Ullrich
3f87755a2a fix(frontends/lean/pp): qualify constant shadowed by local 2017-03-31 09:40:49 -07:00
Sebastian Ullrich
669c4130b1 fix(frontends/lean/builtin_expr): no field notation after @/@@ 2017-03-31 09:40:49 -07:00
Sebastian Ullrich
cd013f22c0 chore(*): replace "'^.' notation" with "field notation", pretty print using "." 2017-03-31 09:40:49 -07:00
Sebastian Ullrich
93fdfdc4b6 feat(frontends/lean/elaborator): better error message on field notation that was probably supposed to be a single ident 2017-03-31 09:40:49 -07:00
Sebastian Ullrich
3c8e176fb0 fix(frontends/lean/interactive): fix info on new field notation 2017-03-31 09:40:49 -07:00
Sebastian Ullrich
add8836ab2 fix(frontends/lean/{elaborator,parser}): use position of '.' for field notation position
Note that flycheck will still highlight the entire word...
2017-03-31 09:40:49 -07:00
Sebastian Ullrich
b92af074c0 feat(kernel/pos_info_provider): add save_pos_info
Allows the elaborator to contribute new info locations
2017-03-31 09:40:48 -07:00
Gabriel Ebner
f9c1ceb717 fix(frontends/lean/scanner): correctly handle positions in empty files 2017-03-31 09:40:15 -07:00
Leonardo de Moura
84bfd3e298 chore(frontends/lean): update keywords
Remark: "as" doesn't need to be a keyword.
So, we can now write patterns such as (a::as).
2017-03-30 16:51:08 -07:00
Sebastian Ullrich
7a147eab12 fix(frontends/lean/decl_util): truly fix top-level do pattern names race 2017-03-30 06:04:00 +02:00
Sebastian Ullrich
e7f01b7490 fix(frontends/lean/decl_util): bad reset in scope destructor 2017-03-30 06:04:00 +02:00
Leonardo de Moura
ad859817b1 feat(frontends/lean): allow local decls to shadow namespaces 2017-03-29 16:09:45 -07:00
Leonardo de Moura
cb049f42b7 fix(frontends/lean/elaborator): resolve_local_name 2017-03-28 17:57:13 -07:00
Leonardo de Moura
71685e4dd6 feat(frontends/lean): add support for t.<id> and t.<idx> when t is a composite term
Replace `^.` with `.` in the stdlib
2017-03-28 17:47:49 -07:00
Leonardo de Moura
4fa3d31c95 fix(frontends/lean/elaborator): as_atomic at resolve_local_name 2017-03-28 16:21:14 -07:00
Leonardo de Moura
87932f1c56 feat(frontends/lean): change notation for inaccessible patterns
The following are accepted
 .(t)
 ._

We don't accept .t anymore because it will conflict with the field
access notation.
2017-03-28 16:09:15 -07:00
Leonardo de Moura
6183c7676e feat(frontends/lean): use . for field access 2017-03-28 15:29:54 -07:00
Leonardo de Moura
8e2dcb8ad8 chore(frontends/lean): remove ^. variants (~> and )
This modification was motivated by a discussion at slack.
2017-03-28 12:23:33 -07:00
Leonardo de Moura
cefe1dd294 chore(frontends/lean/parser): update comments 2017-03-28 12:10:11 -07:00
Leonardo de Moura
092985f777 fix(frontends/lean/util): fixes #1495
We should freeze only constants
2017-03-28 11:55:11 -07:00
Leonardo de Moura
07c29c0779 chore(library/abstract_parser,frontends/lean/parser): remove dead code 2017-03-28 11:51:50 -07:00
Leonardo de Moura
9a4e04b8ca feat(frontends/lean/structure_cmd): add equational lemma for auxiliary default values 2017-03-27 21:37:31 -07:00
Leonardo de Moura
71bf0bcc5d fix(frontends/lean/builtin_exprs): fixes #1493 2017-03-27 17:57:13 -07:00