lean2/src/kernel
Leonardo de Moura 7b15e558a2 refactor(kernel/converter): implement eta in whnf instead of is_def_eq.
Without cumulativity, we do not have problems with Eta at whnf anymore.
When we had cumulativity, we could not not simply reduce
     (fun x : A, f x) ==> f
This step is correct only if domain(f) was definitionally equal to f.
Here is a problematic example for systems with cumulativity
Given, f : Type.{2} -> Bool
     (fun x : Type.{1}, f x)

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-05-12 17:49:53 -07:00
..
abstract.cpp refactor(kernel): replace_fn functional object 2014-03-18 10:27:57 -07:00
abstract.h refactor(kernel): the type in let-exprs is not optional anymore, if the user does not provide it, we use a metavariable 2014-03-18 10:27:55 -07:00
CMakeLists.txt refactor(kernel): remove diff_cnstrs module 2014-05-09 19:58:25 -07:00
constraint.cpp refactor(kernel): remove convertability constraints 2014-05-09 20:25:27 -07:00
constraint.h refactor(kernel): remove convertability constraints 2014-05-09 20:25:27 -07:00
context.cpp refactor(tests/kernel): move tests to new kernel 2014-03-18 10:27:55 -07:00
context.h refactor(kernel): add formatter and simplify contexts 2014-03-18 10:27:55 -07:00
converter.cpp refactor(kernel/converter): implement eta in whnf instead of is_def_eq. 2014-05-12 17:49:53 -07:00
converter.h refactor(kernel/converter): cleanup and remove universe cumulativity support 2014-05-09 20:43:11 -07:00
definition.cpp refactor(kernel): remove level constraints from definitions 2014-05-09 20:11:50 -07:00
definition.h refactor(kernel): remove level constraints from definitions 2014-05-09 20:11:50 -07:00
environment.cpp fix(kernel/environment): is_descendant optimization 2014-05-08 18:48:25 -07:00
environment.h feat(library/kernel_bindings): add add_decl and type_check functions to Lua API 2014-05-08 18:08:32 -07:00
error_msgs.cpp fix(kernel/error_msgs): application type mismatch error message 2014-05-12 14:49:42 -07:00
error_msgs.h feat(kernel/error_msgs): expose pp_indent_expr 2014-05-02 12:03:12 -07:00
expr.cpp feat(kernel): add tag to kernel expressions 2014-05-12 16:33:25 -07:00
expr.h feat(kernel): add tag to kernel expressions 2014-05-12 16:33:25 -07:00
expr_eq_fn.cpp refactor(kernel): store macro arguments in the macro_expr 2014-04-25 15:02:56 -07:00
expr_eq_fn.h refactor(kernel): the type in let-exprs is not optional anymore, if the user does not provide it, we use a metavariable 2014-03-18 10:27:55 -07:00
expr_maps.h refactor(*): uses aliases for unordered_map and unordered_set 2013-12-18 12:30:45 -08:00
expr_sets.h refactor(*): uses aliases for unordered_map and unordered_set 2013-12-18 12:30:45 -08:00
extension_context.h refactor(kernel): define extension_context API for normalizer_extesions and macro_definitions 2014-04-25 15:43:17 -07:00
find_fn.h refactor(kernel/expr): for_each_fn, replace_fn, and find_fn without templates 2014-03-18 10:27:55 -07:00
for_each_fn.cpp refactor(kernel): store macro arguments in the macro_expr 2014-04-25 15:02:56 -07:00
for_each_fn.h fix(kernel): style warnings 2014-03-18 10:27:55 -07:00
formatter.cpp feat(kernel/formatter): adjust simple formatter to the new convention for displaying universe levels 2014-05-12 14:42:01 -07:00
formatter.h refactor(kernel/formatter): add environment as an extra argument to the formatter 2014-04-30 10:28:07 -07:00
free_vars.cpp refactor(kernel): store macro arguments in the macro_expr 2014-04-25 15:02:56 -07:00
free_vars.h feat(kernel): store free variable range in composite expressions 2014-04-17 11:31:48 -07:00
instantiate.cpp refactor(kernel/type_checker): remove trace capability, we get it for free with tags 2014-05-12 16:38:53 -07:00
instantiate.h refactor(kernel/type_checker): remove trace capability, we get it for free with tags 2014-05-12 16:38:53 -07:00
justification.cpp fix(kernel/justification): bug in depends_on 2014-05-02 12:15:01 -07:00
justification.h feat(kernel/justification): add is_eqp predicate 2014-05-02 12:15:29 -07:00
kernel_exception.cpp fix(kernel/kernel_exception): typo 2014-04-28 11:31:39 -07:00
kernel_exception.h refactor(kernel/environment): simplified (functional) environment object 2014-04-18 14:21:49 -07:00
level.cpp feat(kernel/formatter): adjust simple formatter to the new convention for displaying universe levels 2014-05-12 14:42:01 -07:00
level.h feat(kernel/formatter): adjust simple formatter to the new convention for displaying universe levels 2014-05-12 14:42:01 -07:00
max_sharing.cpp refactor(kernel): store macro arguments in the macro_expr 2014-04-25 15:02:56 -07:00
max_sharing.h feat(kernel/max_sharing): add method already_processed 2014-04-22 18:30:07 -07:00
metavar.cpp fix(kernel/metavar): typo 2014-05-01 15:28:34 -07:00
metavar.h fix(kernel/metavar): typo 2014-05-01 15:28:34 -07:00
pos_info_provider.cpp refactor(*): error messages 2014-01-13 16:54:21 -08:00
pos_info_provider.h refactor(kernel): justification objects 2014-03-18 10:27:56 -07:00
replace_fn.cpp refactor(kernel): store macro arguments in the macro_expr 2014-04-25 15:02:56 -07:00
replace_fn.h refactor(kernel/free_vars): use get_free_var_range to improve lift_free_vars and lower_free_vars performance 2014-04-17 12:41:06 -07:00
replace_visitor.cpp refactor(kernel): store macro arguments in the macro_expr 2014-04-25 15:02:56 -07:00
replace_visitor.h refactor(kernel): remove pairs from kernel 2014-04-17 10:52:07 -07:00
type_checker.cpp refactor(kernel/type_checker): remove trace capability, we get it for free with tags 2014-05-12 16:38:53 -07:00
type_checker.h refactor(kernel/type_checker): remove method is_conv 2014-05-09 20:29:35 -07:00