Leonardo de Moura
4874e25715
feat(kernel): save constructor idx and nfields at constructor_val
2018-09-14 13:45:58 -07:00
Sebastian Ullrich
647f40763c
feat(library/message_builder): pretty-print kernel_exceptions
2018-09-13 16:38:40 -07:00
Leonardo de Moura
b8dceda9b7
chore(kernel): type_checker::context ==> type_checker::state
2018-09-13 14:06:57 -07:00
Leonardo de Moura
20f31c85bf
chore(kernel/type_checker): we don't use the kernel type checker for elaboration anymore
2018-09-12 20:36:32 -07:00
Leonardo de Moura
c49ad19736
refactor(kernel/type_checker): type_checker::cache ==> type_checker::context
...
We also move `environment` and `name_generator` to
`type_checker::context`. Reason: the cache assumes the environment did
not change. The (cache) correctness relies on the fact that we don't
reuse free variable identifiers.
2018-09-12 20:34:30 -07:00
Leonardo de Moura
d814ee612a
chore(kernel/local_ctx): typo
2018-09-11 18:10:10 -07:00
Sebastian Ullrich
904d7c4a88
chore(*): remove old task API and task queues
2018-09-11 13:55:25 -07:00
Leonardo de Moura
4863ca071a
chore(runtime): make sure we use the same naming convention for getters and setters
2018-09-09 10:07:00 -07:00
Leonardo de Moura
03a99986bb
feat(kernel): implement local_decl using runtime
2018-09-08 16:25:43 -07:00
Leonardo de Moura
3b07eeec47
fix(kernel/inductive): name generator was not being consistenly used
2018-09-08 16:21:33 -07:00
Leonardo de Moura
5503bd113b
chore(kernel/type_checker): assume m_cache != nullptr will continue to hold in future versions
2018-09-08 09:13:08 -07:00
Leonardo de Moura
7479d6e55b
refactor(kernel/type_checker): allow type_checker::cache to be reused
2018-09-08 08:43:19 -07:00
Leonardo de Moura
dacc4c9cd6
chore(kernel): move abstract_type_context to library
2018-09-08 08:29:51 -07:00
Leonardo de Moura
3e5f59d6df
chore(kernel): remove expr.quote constructor
...
In Lean4, we will reify expressions.
2018-09-07 22:08:08 -07:00
Leonardo de Moura
4ddd915886
chore(kernel): remove dummy file
2018-09-07 21:43:15 -07:00
Leonardo de Moura
aa3292eb36
feat(kernel/type_checker): remove m_memoize
...
It is always `true`
2018-09-07 20:50:53 -07:00
Leonardo de Moura
88d4a1b0cd
feat(kernel/inductive): inductive_reduce_rec should not throw exception when it finds an unknown constant
...
It should just fail to reduce. This is important when using it in the elaborator.
2018-09-07 17:34:54 -07:00
Leonardo de Moura
1b81577d8b
fix(kernel/inductive): remove unnecessary whnf
...
The frontend is responsible for unfolding reducible definitions before
sending inductive declarations to the kernel.
2018-09-07 17:27:08 -07:00
Leonardo de Moura
6b673d1ca9
chore(util,kernel): consistent constructors for object_ref-like wrappers
2018-09-07 17:06:41 -07:00
Leonardo de Moura
2946174c1e
chore(kernel): remove old_type_checker
2018-09-07 08:55:37 -07:00
Leonardo de Moura
a3d886f1e8
chore(kernel/type_checker): remove leftover
2018-09-07 08:51:21 -07:00
Leonardo de Moura
81bf600973
chore(kernel/type_checker): fix style
2018-09-06 18:12:20 -07:00
Leonardo de Moura
58e91559d0
feat(*): use new inductive datatype module
2018-09-06 18:09:22 -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
9970019f76
fix(kernel/inductive): incorrect assertion
...
It fails on non parametric datatypes with nullary constructors.
2018-09-05 09:52:25 -07:00
Leonardo de Moura
176e0a3ed3
fix(kernel/inductive): typo
2018-09-04 17:32:18 -07:00
Leonardo de Moura
4da40f5d0e
chore(kernel/quot): remove unnecessary include
2018-09-04 17:22:16 -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
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
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
47bc71f4fa
feat(kernel/inductive): postprocess recursors and their rules
2018-09-02 21:06:51 -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
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
101886ffae
feat(kernel): proper constant_info and declaration objects for quot type
2018-08-28 13:46:31 -07:00
Leonardo de Moura
161431e995
feat(kernel): implement new mutual_definition declaration object
...
This commit also removes the old `environment::add_meta` hackish method.
2018-08-28 10:30:44 -07:00