Leonardo de Moura
57ea660963
refactor(*): start process for eliminating of opaque
definitions from the kernel
...
see issue #576
2015-05-08 16:06:04 -07:00
Leonardo de Moura
061e26157e
fix(kernel,library): make sure macros check relevant arguments when kernel is performing full type checking
2015-05-08 12:41:23 -07:00
Leonardo de Moura
45c8cdc626
fix(kernel/default_converter): discard constraints when optimization fails
2015-05-07 15:02:29 -07:00
Leonardo de Moura
16b7bc3922
fix(kernel/default_converter): broken optimization
...
we must also check the universe levels when applying the optimization for
constraints of the form:
f.{l_1 ... l_k} a_1 ... a_n =?= f.{l_1' ... l_k'} b_1 ... b_n
The optimization tries to avoid unfolding f if we can establish that
a_i is definitionally equal to b_i for each i in [1, n]
closes #581
2015-05-06 18:32:41 -07:00
Leonardo de Moura
701b0ae66f
feat(library): export environment in textual format
...
closes #577
2015-05-04 18:05:00 -07:00
Leonardo de Moura
91abba3c3d
refactor(kernel): rename method
2015-04-29 11:46:27 -07:00
Leonardo de Moura
b98c109f73
fix(kernel/hits/hits): bug in reduction rule
...
closes #564
2015-04-29 10:01:46 -07:00
Leonardo de Moura
051615712c
fix(kernel/quotient/quotient): bug in reduction rule
2015-04-29 10:01:17 -07:00
Leonardo de Moura
16f237f042
feat(kernel/inductive): remove problematic check
...
see discussion at issue #563
closes #563
2015-04-28 17:21:41 -07:00
Leonardo de Moura
dcc94dde82
refactor(kernel): rename may_reduce_later to is_stuck, and make is_stuck more precise
...
It now reflects the definition used in the elaboration paper.
2015-04-27 11:20:15 -07:00
Leonardo de Moura
4a157ee676
refactor(kernel/justification): create "wrapper" justification
...
It allows us to provide a different pretty printer.
This is a cleanup, and also helps to address issue #528
2015-04-24 14:49:32 -07:00
Leonardo de Moura
8241863abe
feat(kernel/hits): add two builtin HITs: type_quotient and trunc
2015-04-23 15:32:31 -07:00
Leonardo de Moura
47e37a3353
feat(kernel/metavar): add additional assertions
2015-04-20 17:46:06 -07:00
Leonardo de Moura
969d17fd12
fix(frontends/lean/elaborator): class inference in tactic mode with trunc
...
closes #477
2015-04-05 17:47:14 -07:00
Leonardo de Moura
ed1acd9fb0
feat(library/init): move propext to init/quot, add Jeremy's funext theorem
2015-04-01 12:36:33 -07:00
Leonardo de Moura
b960e123b1
feat(kernel): add experimental support for quotient types
2015-03-31 22:04:16 -07:00
Leonardo de Moura
88495f9d59
fix(*): remove unnecessary null pointer checks
...
closes #514
2015-03-28 12:16:39 -07:00
Leonardo de Moura
223ef58db9
fix(kernel/equiv_manager): typo
2015-03-27 10:44:09 -07:00
Leonardo de Moura
f33ad9d6f4
feat(kernel): add equivalence manager for speeding up is_def_eq
2015-03-27 10:34:54 -07:00
Leonardo de Moura
d69f829337
perf(kernel/justification): avoid redundant justification objects
2015-03-25 19:09:01 -07:00
Leonardo de Moura
f5811d6092
feat(frontends/lean): hide subterms that do not contain metavariables
...
when generating "unresolved metavariables" error message
closes #473
2015-03-13 12:42:57 -07:00
Leonardo de Moura
026622a790
refactor(src/kernel/replace_fn): remove stack-less replace_fn it is slower than the simple one
2015-03-12 16:22:49 -07:00
Leonardo de Moura
4ea323a2b2
refactor(library/tactic): cleanup common pattern
2015-03-12 14:52:41 -07:00
Leonardo de Moura
3e4d849a4a
refactor(kernel/metavar.h): simplify API
2015-03-12 12:50:53 -07:00
Leonardo de Moura
1042bbc06f
fix(kernel/metavar): improve error messages by propagating the tag when we execute instantiate_all
...
This is the real fix for commit ededf4fc6c
2015-03-02 13:01:50 -08:00
Leonardo de Moura
a8554b6ed9
fix(kernel/default_converter): avoid assertion violation when normalizing type incorrect expressions
2015-02-22 16:17:43 -08:00
Leonardo de Moura
fcd67649ed
refactor(kernel): expose may_reduce_later method
2015-02-07 20:36:26 -08:00
Leonardo de Moura
b57f93bad5
refactor(kernel): remove unnecessary procedures
2015-02-07 20:14:19 -08:00
Leonardo de Moura
1bdf7ae55a
feat(kernel/default_converter): make norm_ext virtual
2015-02-07 19:25:56 -08:00
Leonardo de Moura
4c2277fccf
feat(kernel/converter): more cleanup
2015-02-07 19:19:01 -08:00
Leonardo de Moura
73acaca21e
refactor(kernel/default_converter): remove extra_opaque_pred
2015-02-07 19:05:46 -08:00
Leonardo de Moura
a11d1efb42
refactor(kernel/converter): remove mk_default_converter procedures
2015-02-07 19:03:58 -08:00
Leonardo de Moura
a47615009f
refactor(kernel/type_checker): replace mk_default_converter with default_converter
2015-02-07 19:01:59 -08:00
Leonardo de Moura
7823905fc1
fix(kernel/default_converter): use is_opaque at is_delta
2015-02-07 17:30:36 -08:00
Leonardo de Moura
e04250f0d8
refactor(library/tactic/rewrite_tactic): use default_converter
2015-02-07 16:44:51 -08:00
Leonardo de Moura
c04c0e8381
refactor(*): remove transparent_scope hack, replace [strict] with [all-transparent] annotation
2015-02-07 15:19:41 -08:00
Leonardo de Moura
7945b8adab
refactor(kernel/type_checker): remove useless procedures
2015-02-07 14:55:36 -08:00
Leonardo de Moura
12d320fa19
refactor(kernel/default_converter): avoid carrying type_checker and delayed_justification around in the default_converter
2015-02-07 14:10:56 -08:00
Leonardo de Moura
71b9215a70
refactor(kernel/default_converter): cleanup
2015-02-07 13:49:42 -08:00
Leonardo de Moura
3f06f7b6fd
refactor(kernel): move default_converter to its own module
2015-02-07 11:33:37 -08:00
Leonardo de Moura
bc8bb1dbd3
feat(kernel/replace_fn): add use_cache flag to replace function
2015-02-05 10:49:18 -08:00
Leonardo de Moura
fc6d9878c9
refactor(kernel): add expr_cache
...
It is the old instantiate_metavars_cache.
2015-02-03 14:59:55 -08:00
Leonardo de Moura
dbc8e9e13a
refactor(*): add method get_num_univ_params
2015-01-28 17:22:18 -08:00
Leonardo de Moura
ad4c7c20f9
fix(kernel/inductive/inductive): fix assertion violation when K is applied to type incorrect term
2015-01-27 11:22:14 -08:00
Leonardo de Moura
1dbe4b8fb7
feat(kernel/extension_context): add auxiliary method is_def_eq
2015-01-27 11:17:54 -08:00
Leonardo de Moura
c51e2ac428
feat(kernel/type_checker): expose get_arity function
2015-01-20 14:25:07 -08:00
Leonardo de Moura
c43b2c8640
feat(kernel/extension_context): add auxiliary methods
2015-01-20 14:23:10 -08:00
Leonardo de Moura
752b54085b
refactor(kernel/type_checker): type checker should not unfold macros, but sign an error if a untrusted macro is used
...
Now, we unfold untrusted macros outside of the Lean kernel.
2015-01-20 12:36:56 -08:00
Leonardo de Moura
c6290f01d0
perf(kernel/free_vars): improve has_free_var
2015-01-15 18:42:56 -08:00
Leonardo de Moura
f397da111a
perf(kernel/error_msgs): avoid unnecessary work
2015-01-15 18:32:52 -08:00