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 |
|
Leonardo de Moura
|
ce0b1d17a2
|
perf(kernel/free_vars): improve has_free_var
|
2015-01-15 18:31:43 -08:00 |
|
Leonardo de Moura
|
907f90096e
|
feat(kernel): add memory consumption checks at replace_fn and for_each_fn
|
2015-01-15 16:54:55 -08:00 |
|
Leonardo de Moura
|
8ab775bd6f
|
feat(*): distinguish between logical and runtime exceptions.
Now, we use throwable as the new base class for all Lean exceptions, and
exception is the subclass for "logical" exceptions.
|
2015-01-15 16:54:55 -08:00 |
|
Leonardo de Moura
|
7a75325416
|
feat(kernel/abstract): add new abstract_local procedure
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2014-12-20 11:31:48 -08:00 |
|
Leonardo de Moura
|
8b3e97d285
|
feat(kernel/type_checker): add ensure_type variant
|
2014-12-11 17:32:17 -08:00 |
|
Leonardo de Moura
|
bc7ee2958f
|
fix(library/tactic/inversion_tactic): bug in mutually recursive case
|
2014-12-01 18:32:38 -08:00 |
|
Leonardo de Moura
|
4e572fac4e
|
feat(kernel/inductive): store whether an inductive datatype supports dependent elimination or not
|
2014-11-27 10:36:15 -08:00 |
|
Leonardo de Moura
|
5fff3113a9
|
refactor(library/tactic/inversion_tactic): add 'cases_on' step to inversion_tactic
|
2014-11-27 00:06:26 -08:00 |
|
Leonardo de Moura
|
ffdeb0edc4
|
fix(frontends/lean/elaborator): unsolved metavariables, fix #329
|
2014-11-26 11:56:39 -08:00 |
|
Leonardo de Moura
|
ef75cac1c0
|
feat(kernel/expr): change the rules for inferring implicit arguments, closes #344
|
2014-11-25 12:54:07 -08:00 |
|
Leonardo de Moura
|
e81d9c9184
|
perf(kernel/level): apply two simple normalization rules at mk_max
They are variations of:
max l1 (max l1 l2) == (max l1 l2)
|
2014-11-16 18:16:57 -08:00 |
|
Leonardo de Moura
|
67de3b06f3
|
feat(kernel/level): improve universe level pretty printer
Example: produce `l+2` instead of `succ (succ l)`.
|
2014-11-14 14:51:03 -08:00 |
|
Leonardo de Moura
|
ffffabad95
|
feat(kernel/level): improve is_geq procedure for universe levels
Now, it also returns true for
(succ^k1 a) =?= k2
where k1 >= k2
|
2014-11-14 14:20:35 -08:00 |
|