Commit graph

14516 commits

Author SHA1 Message Date
Leonardo de Moura
1dfcea58f9 chore(*): remove some references to old inductive datatype module 2018-09-04 10:45:17 -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
Leonardo de Moura
a0283bf2a0 fix(library/constructions/cases_on): bugs 2018-09-04 10:33:56 -07:00
Leonardo de Moura
10a7eccecd feat(library/constructions/cases_on): add cases_on for new inductive datatype module 2018-09-04 09:26:16 -07:00
Leonardo de Moura
5972a3038d chore(library): remove defeq_canonizer 2018-09-03 17:48:01 -07:00
Leonardo de Moura
b1fb1b069e chore(library/constructions): remove constructor (dead code) 2018-09-03 17:41:19 -07:00
Leonardo de Moura
af8f3c7bb4 chore(library/constructions): remove injective
It was mainly used to perform dependent elimination with nested
inductive datatypes produced by the inductive compiler.
2018-09-03 17:38:13 -07:00
Leonardo de Moura
cc748c0b17 chore(library/constructions): remove drec (dead code) 2018-09-03 17:32:16 -07:00
Leonardo de Moura
0285579893 fix(kernel/inductive): bug at inductive_reduce_rec 2018-09-03 17:05:13 -07:00
Leonardo de Moura
d325a4dd1d feat(library/type_context, kernel/type_checker): use inductive_reduce_rec 2018-09-03 16:52:53 -07:00
Leonardo de Moura
ccfcd8279f fix(kernel/inductive): bug 2018-09-03 16:41:51 -07:00
Leonardo de Moura
d54b86d16b chore(library/type_context): remove reduce_large_elim_recursor 2018-09-03 16:21:00 -07:00
Leonardo de Moura
799c133326 feat(kernel/inductive): add inductive_is_stuck 2018-09-03 16:06:29 -07:00
Leonardo de Moura
59fa70616a feat(kernel/inductive): add reduce 2018-09-03 15:22:15 -07:00
Leonardo de Moura
dd03747d22 chore(kernel): univ_param vs lparam, level_param_names ==> names, and other inconsistencies 2018-09-03 13:05:42 -07:00
Leonardo de Moura
7928dbb239 chore(kernel): get_constructor ==> get_cnstr 2018-09-03 12:30:49 -07:00
Leonardo de Moura
5e6d3511f4 chore(frontends/lean/print_cmd): display rule info 2018-09-03 12:27:25 -07:00
Leonardo de Moura
47bc71f4fa feat(kernel/inductive): postprocess recursors and their rules 2018-09-02 21:06:51 -07:00
Leonardo de Moura
498cfa84fd fix(util/object_ref): typo 2018-09-02 21:06:51 -07:00
Sebastian Ullrich
76741ae695 feat(frontends/lean/elaborator): fall back to approximate position in errors 2018-09-02 18:34:57 -07:00
Sebastian Ullrich
ae70158c09 fix(frontends/lean/elaborator): position information for callees 2018-09-02 18:08:41 -07:00
Sebastian Ullrich
39cdae50ee feat(library,frontends/lean): use mdata instead of hacky cache for position information in preterms 2018-09-02 18:08:41 -07:00
Sebastian Ullrich
0220af69b8 feat(library/print): print mdata
Not sure if helpful or annoying for the future...
2018-09-02 18:08:41 -07:00
Sebastian Ullrich
3090826326 chore(bin/lean-gdb): update lean::expr printer 2018-09-02 18:08:41 -07:00
Leonardo de Moura
f9d87e7a98 feat(kernel/inductive): add inductive postprocessor
We still need to restore recursors and their rules
2018-09-02 17:44:19 -07:00
Leonardo de Moura
41a87f6856 feat(kernel/inductive): normalize parameter names 2018-09-02 16:40:31 -07:00
Leonardo de Moura
7d4097818b feat(kernel/inductive): add recursor rules 2018-09-02 15:55:29 -07:00
Leonardo de Moura
f30cb0635f chore(kernel/inductive): cleanup 2018-09-02 09:26:58 -07:00
Leonardo de Moura
98f035088c chore(kernel/inductive): cleanup 2018-08-31 18:01:26 -07:00
Leonardo de Moura
517923d362 feat(kernel/inductive): generate recursors in the new inductive datatype module 2018-08-31 17:47:22 -07:00
Leonardo de Moura
2fb677f1d0 feat(kernel/inductive): add positivity check to new inductive datatype module 2018-08-31 09:52:38 -07:00
Leonardo de Moura
706d7045c3 feat(kernel/inductive): add nested => mutual preprocessor 2018-08-30 18:05:43 -07:00
Leonardo de Moura
f1105e108a fix(kernel/inductive): bug at check_inductive_types 2018-08-30 18:05:43 -07:00
Sebastian Ullrich
93d13ffea3 chore(library/init/lean): lean.parser.reader ~> lean.parser 2018-08-30 16:34:47 -07:00
Sebastian Ullrich
d60e3a66ce refactor(library/init/lean/parser/reader): make monad stack not reducible 2018-08-30 15:59:38 -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
3bdc0db397 feat(library/derive_attribute): allow implicit parameters in class signature 2018-08-29 16:42:24 -07:00
Sebastian Ullrich
f4a9798f9b fix(library/derive_attribute): avoid segfault on sorry input 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
bb01787ccf chore(bin/lean-gdb): disable broken pretty printers 2018-08-29 16:42:24 -07:00
Leonardo de Moura
b79794e601 feat(frontends/lean/print_cmd): add basic support for testing new inductive datatype module 2018-08-29 09:36:47 -07:00
Leonardo de Moura
863355c6a0 feat(kernel/inductive): continue new inductive datatype module
Add more validation, and create new inductive_val and constant_val objects.
2018-08-29 09:27:06 -07:00
Leonardo de Moura
f765eec626 fix(kernel/type_checker): typo in error message 2018-08-29 09:21:35 -07:00
Leonardo de Moura
d1d56776ad feat(kernel): invoke add_inductive for inductive datatype declarations 2018-08-28 15:54:46 -07:00
Leonardo de Moura
5d41046170 refactor(library/init/core): remove exists_unique
We never used it in the corelib. Users can define it if they need it.
2018-08-28 14:01:33 -07:00
Leonardo de Moura
101886ffae feat(kernel): proper constant_info and declaration objects for quot type 2018-08-28 13:46:31 -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
Sebastian Ullrich
47bff1ddcd fix(library/init/core): ∃! should not accept multiple binders 2018-08-28 13:13:14 -07:00