Leonardo de Moura
1534f17a89
feat(library/compiler/lcnf): add better support for complete-transition used in the equation compiler and x@ patterns
2018-09-20 21:38:57 -07:00
Leonardo de Moura
f556e0947b
fix(library/compiler/lcnf): bug, minor premise must have a lambda for each field in LCNF
2018-09-20 21:38:57 -07:00
Sebastian Ullrich
b859560a83
feat(library/init/lean/parser/term): @/@@ notation
2018-09-20 09:40:21 -07:00
Sebastian Ullrich
0a8d0a6870
feat(library/init/lean/parser/term): projection notation
2018-09-20 09:40:21 -07:00
Sebastian Ullrich
b8bd0cc5e6
feat(library/init/lean/parser/term): parentheses and tuples
2018-09-20 09:40:21 -07:00
Sebastian Ullrich
6f68a0d1eb
feat(library/init/lean/parser/basic): check for conflicting tokens
2018-09-20 09:40:21 -07:00
Sebastian Ullrich
b7f7f257c5
feat(library/init/lean/parser/declaration): inductive, structure
2018-09-20 09:38:10 -07:00
Sebastian Ullrich
623a6603cb
feat(library/init/lean/parser/term): lambda, pi, arrow
2018-09-19 12:36:34 -07:00
Sebastian Ullrich
e3afe02786
feat(library/init/lean/parser/declaration): doc comments and axioms
2018-09-19 12:36:34 -07:00
Sebastian Ullrich
80e37aa8c5
chore(library/init/lean/parser): improve error messages
2018-09-19 12:36:34 -07:00
Sebastian Ullrich
1f239c9f2a
feat(library/init/lean/parser/syntax): pretty-print ident nodes
...
Painfully, because `ident.view` is not defined yet
2018-09-17 18:47:50 -07:00
Sebastian Ullrich
fa0148e5b8
feat(library/init/lean/parser): declarations and binders
2018-09-17 18:47:50 -07:00
Sebastian Ullrich
ea4d7af66d
refactor(library/init/lean/parser/command): move out notations
2018-09-17 18:47:50 -07:00
Leonardo de Moura
52d1abf0bc
feat(library/compiler): add cse to new compiler stack
2018-09-14 17:48:18 -07:00
Leonardo de Moura
e8ab46619b
chore(tests/lean/run/new_compiler): fix test
2018-09-14 16:42:53 -07:00
Sebastian Ullrich
ae7df32428
refactor(library/init/lean/parser/syntax): setting source_info.leading is much easier after parsing
2018-09-14 16:33:04 -07:00
Sebastian Ullrich
b95ba21702
chore(library/init/lean/parser): fix syntax_node_kind names
2018-09-14 16:33:04 -07:00
Sebastian Ullrich
0c3a1b07a5
chore(library/init/lean/parser/syntax): hide lean.parser prefix in syntax.to_format
2018-09-14 16:33:04 -07:00
Sebastian Ullrich
5e180cd170
feat(library/init/lean/parser/token): create structure-preserving syntax trees for identifiers
...
Also generalize `raw_symbol` to `raw`
2018-09-14 16:33:04 -07:00
Leonardo de Moura
7174d53820
feat(library/compiler/csimp): distribute application over cases
2018-09-14 15:14:40 -07:00
Leonardo de Moura
31a9a22641
test(tests/lean/run/new_compiler): add test
2018-09-14 13:35:41 -07:00
Leonardo de Moura
5ed05db261
test(tests/lean/run/new_compiler): add test for new compiler stack
2018-09-14 09:46:02 -07:00
Sebastian Ullrich
e6b5598d7b
chore(library/init/lean/parser/term): actually remove Type*
2018-09-13 16:38:40 -07:00
Sebastian Ullrich
98e09c274f
feat(library/init/lean/parser/{pratt,level}): factor out pratt combinator, implement level parsers
2018-09-13 16:38:40 -07:00
Leonardo de Moura
afd54039ab
chore(library): remove >>, we should use *>
2018-09-12 17:31:21 -07:00
Leonardo de Moura
9e305a5f26
chore(library): remove return, we should use pure
2018-09-12 16:51:11 -07:00
Sebastian Ullrich
43e57358af
refactor(library/module_mgr): minor refactorings
2018-09-11 13:55:25 -07:00
Sebastian Ullrich
af55cb13e7
fix(library/messages,library/init/lean/message): wrap message_log in structure, reverse in the end
2018-09-11 13:55:25 -07:00
Sebastian Ullrich
0d865b37dd
feat(library/init/lean/{message,parser}): enhance lean.message
...
Small regression: order of messages flipped, should eventually be sorted by
position
2018-09-08 18:37:58 -07:00
Leonardo de Moura
71dd8653bc
feat(library/init/core): decidable_eq is a proper class
...
We need this to take advantage of the new indexing structure we are
going to add to improve performance.
2018-09-07 16:38:11 -07:00
Leonardo de Moura
ab9e812ac5
chore(tests/lean): fix tests
2018-09-06 18:09:32 -07:00
Sebastian Ullrich
1a53d4444b
feat(library/init/lean/parser): parameterize recursive term parser with rbp
2018-09-06 17:16:22 -07:00
Leonardo de Moura
208b932583
feat(library/constructions/brec_on): add brec_on and binduction_on for new inductive datatype module
...
We don't support these constructions for nested inductive types, but we
do for mutual inductives.
2018-09-05 14:46:03 -07:00
Leonardo de Moura
f335623530
feat(library/constructions/brec_on): add below and ibelow for new inductive datatype module
2018-09-05 14:46:03 -07:00
Leonardo de Moura
afb9584a63
feat(kernel): store at inductive_val whether the type is reflexive or not
2018-09-05 14:46:03 -07:00
Leonardo de Moura
4964ad660f
feat(library/constructions/no_confusion): add no_confusion for new inductive datatype module
2018-09-05 10:27:49 -07:00
Leonardo de Moura
4773a3be5f
feat(library/constructions/no_confusion): add no_confusion_type for new inductive datatype module
2018-09-05 09:55:13 -07:00
Leonardo de Moura
cc5f60c28d
test(tests/lean/run/new_inductive): add new tests
2018-09-04 18:17:13 -07:00
Leonardo de Moura
c121bcf263
chore(tests/lean/smart_unfolding): remove test since it depends on #reduce
2018-09-04 17:22:16 -07:00
Leonardo de Moura
d8e7941116
feat(library/constructions/rec_on): add rec_on for new inductive datatype module
2018-09-04 17:22:16 -07:00
Leonardo de Moura
0f207380c7
test(tests/lean/run/new_inductive): add test for new inductive datatype module
2018-09-04 10:35:28 -07:00
Sebastian Ullrich
93d13ffea3
chore(library/init/lean): lean.parser.reader ~> lean.parser
2018-08-30 16:34:47 -07:00
Sebastian Ullrich
de9d894c14
feat(library/init/lean/parser/reader): use coroutine on the module level
2018-08-29 16:42:24 -07:00
Sebastian Ullrich
2528aee72b
refactor(library/init/lean/parser/reader): use different monad stacks for different parts of the reader
2018-08-29 16:42:24 -07:00
Sebastian Ullrich
cec1ee2564
feat(library/init/lean/parser/parsec): reintroduce parsec_t
2018-08-29 16:42:24 -07:00
Sebastian Ullrich
a178f181a8
chore(library/init/lean/parser/macro): remove old name resolution prototype
2018-08-28 13:13:14 -07:00
Sebastian Ullrich
46f734b1b1
refactor(library/init/lean/parser/reader): replace macro with syntax_node_kind
...
Also make sure that the name inside a node kind is the full name of the
declaration. This way, we cannot have accidentally conflicting node kind names.
2018-08-28 13:13:14 -07:00
Leonardo de Moura
7a47406c4c
chore(library/tactic): remove simp_lemmas
2018-08-23 14:10:36 -07:00
Leonardo de Moura
69734dfb3a
chore(tests/lean): fix tests
2018-08-23 13:49:07 -07:00
Leonardo de Moura
d0f6bbdf02
chore(tests/lean): replace run_cmd with #eval
2018-08-23 13:32:25 -07:00