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