lean2/src/kernel
Leonardo de Moura faee08591f fix(*): make sure elaborator and type_checker use the same "rules" for treating opaque definitions
This is a big change because we have to store in constraints whether we can use the "relaxed" rules or not.
The "relaxed" case says that when type checking the value of an opaque definition we can treat other opaque definitions in the same module as transparent.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 12:12:54 -07:00
..
inductive fix(kernel/inductive): use has_expr_metavar_strict instead of has_expr_metavar 2014-07-26 19:57:54 -07:00
abstract.cpp refactor(kernel): store binder_infor in local constants 2014-06-30 11:37:46 -07:00
abstract.h refactor(kernel): store binder_infor in local constants 2014-06-30 11:37:46 -07:00
annotation.cpp feat(kernel): add general purpose 'annotations', they are just a generalization of the 'let'-annotations 2014-07-25 09:33:31 -07:00
annotation.h feat(kernel): add general purpose 'annotations', they are just a generalization of the 'let'-annotations 2014-07-25 09:33:31 -07:00
cache_stack.h perf(kernel/for_each_fn): use cache stack trick at for_each_fn 2014-07-23 19:32:11 -07:00
CMakeLists.txt feat(kernel): add general purpose 'annotations', they are just a generalization of the 'let'-annotations 2014-07-25 09:33:31 -07:00
constraint.cpp fix(*): make sure elaborator and type_checker use the same "rules" for treating opaque definitions 2014-07-27 12:12:54 -07:00
constraint.h fix(*): make sure elaborator and type_checker use the same "rules" for treating opaque definitions 2014-07-27 12:12:54 -07:00
converter.cpp fix(*): make sure elaborator and type_checker use the same "rules" for treating opaque definitions 2014-07-27 12:12:54 -07:00
converter.h fix(*): make sure elaborator and type_checker use the same "rules" for treating opaque definitions 2014-07-27 12:12:54 -07:00
declaration.cpp fix(kernel): set module_idx on theorems, otherwise we are not able to import theorems that use opaque definitions 2014-06-16 16:56:11 -07:00
declaration.h fix(library/module): module index assignment 2014-07-05 23:32:18 -07:00
environment.cpp feat(kernel): add method 'may_reduce_later' to normalizer_extension, and improve unifier 2014-07-03 22:31:05 -07:00
environment.h refactor(*): rename Bool to Prop 2014-07-22 09:43:18 -07:00
error_msgs.cpp feat(kernel/error_msgs): improve cryptic type mismatch error messages where the types may seem identical because key information is being suppressed 2014-07-27 09:41:25 -07:00
error_msgs.h feat(kernel/error_msgs): improve cryptic type mismatch error messages where the types may seem identical because key information is being suppressed 2014-07-27 09:41:25 -07:00
expr.cpp feat(kernel/expr): add has_expr_metavar_strict 2014-07-26 19:54:04 -07:00
expr.h feat(kernel/expr): add has_expr_metavar_strict 2014-07-26 19:54:04 -07:00
expr_eq_fn.cpp fix(kernel/expr_eq_fn): typo 2014-07-10 23:21:24 +01:00
expr_eq_fn.h perf(kernel/expr_eq_fn): delay cache allocation 2014-06-03 17:03:09 -07:00
expr_maps.h feat(kernel/expr): add optional expression caching (aka "partial" hash-consing) 2014-06-03 15:35:47 -07:00
expr_sets.h refactor(*): uses aliases for unordered_map and unordered_set 2013-12-18 12:30:45 -08:00
extension_context.h feat(kernel): add is_def_eq predicate in the extension_context API 2014-05-15 13:53:10 -07:00
find_fn.h refactor(kernel/find_fn): simplify find_fn module 2014-07-23 18:09:58 -07:00
for_each_fn.cpp perf(kernel/for_each_fn): use cache stack trick at for_each_fn 2014-07-23 19:32:11 -07:00
for_each_fn.h refactor(kernel/for_each_fn): simplify module interface 2014-07-23 18:16:41 -07:00
formatter.cpp feat(kernel/error_msgs): improve cryptic type mismatch error messages where the types may seem identical because key information is being suppressed 2014-07-27 09:41:25 -07:00
formatter.h feat(kernel/error_msgs): improve cryptic type mismatch error messages where the types may seem identical because key information is being suppressed 2014-07-27 09:41:25 -07:00
free_vars.cpp refactor(kernel): remove 'let'-expressions 2014-06-24 16:27:27 -07:00
free_vars.h feat(kernel): store free variable range in composite expressions 2014-04-17 11:31:48 -07:00
instantiate.cpp chore(kernel/replace_fn): add syntax sugar for replace function 2014-07-19 12:53:37 +01:00
instantiate.h refactor(kernel/instantiate): rename instantiate_params to instantiate_univ_params 2014-06-29 12:09:55 -07:00
justification.cpp fix(kernel/justification): duplicate position 2014-07-25 21:16:49 -07:00
justification.h refactor(kernel/formatter): add formatter_factory, and simplify formatter interface 2014-07-10 18:32:00 +01:00
kernel_exception.cpp refactor(kernel/formatter): add formatter_factory, and simplify formatter interface 2014-07-10 18:32:00 +01:00
kernel_exception.h refactor(kernel/formatter): add formatter_factory, and simplify formatter interface 2014-07-10 18:32:00 +01:00
level.cpp feat(kernel/level): improve universe level normalization procedure 2014-07-10 13:49:41 +01:00
level.h refactor(*): rename Bool to Prop 2014-07-22 09:43:18 -07:00
metavar.cpp fix(kernel/metavar): make sure instantiate_metavars_fn does not loop on 'fake' recursive dependencies, we say they are fake because they disappear after applying beta-reduction 2014-07-24 12:04:33 -07:00
metavar.h perf(library/unifier): delay the instantiation of metavariables occurring in the types of local constants 2014-07-23 14:31:30 -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 perf(kernel/for_each_fn): use cache stack trick at for_each_fn 2014-07-23 19:32:11 -07:00
replace_fn.h chore(kernel/replace_fn): add syntax sugar for replace function 2014-07-19 12:53:37 +01:00
replace_visitor.cpp refactor(kernel): remove 'let'-expressions 2014-06-24 16:27:27 -07:00
replace_visitor.h refactor(kernel): remove 'let'-expressions 2014-06-24 16:27:27 -07:00
type_checker.cpp fix(*): make sure elaborator and type_checker use the same "rules" for treating opaque definitions 2014-07-27 12:12:54 -07:00
type_checker.h fix(*): make sure elaborator and type_checker use the same "rules" for treating opaque definitions 2014-07-27 12:12:54 -07:00