Commit graph

1174 commits

Author SHA1 Message Date
Gabriel Ebner
385ea13688 feat(kernel/declaration,*): all theorems are delayed, and are revealed on delta-reduction 2016-11-29 11:12:43 -08:00
Gabriel Ebner
a8df381d20 feat(*): parallel compilation 2016-11-29 11:12:40 -08:00
Leonardo de Moura
db3ad3156b chore(src/kernel/declaration): move cell inside declaration 2016-11-07 14:59:37 -08:00
Gabriel Ebner
8eb4bbd0cb fix(kernel/declaration): allow introspection of declarations in GDB
If the declaration::cell struct is not defined in the same header file
as declaration, GDB will show the cells as <incomplete type>.
2016-11-07 14:55:32 -08:00
Leonardo de Moura
1b628930ba feat(kernel/inductive): v_idx ==> ih_idx 2016-10-05 17:13:52 -07:00
Leonardo de Moura
2164b4d553 feat(kernel/type_checker): make sure anonymous binder names are rejected by the kernel 2016-10-03 22:15:49 -07:00
Leonardo de Moura
572751c56e feat(frontends/lean): force user to use meta keyword on meta inductive/structure/class
Before this commit, we were inferring whether an
inductive/structure/class were meta or not. This was bad since the user
had no clue whether the type was trusted (non meta) or not.
Moreover, users could get confused by this behavior and assume the
kernel was allowing trusted code to rely on untrusted one.
2016-09-29 17:56:35 -07:00
Leonardo de Moura
4a5d881c50 feat(library/type_context): better error messages 2016-09-28 15:59:43 -07:00
Leonardo de Moura
d59410cc41 refactor(kernel): support only proof irrelevant mode 2016-09-27 17:18:52 -07:00
Leonardo de Moura
d0d75c0923 refactor(kernel): reduce number of configurations supported in the kernel
Now, eta and impredicativity are assumed to be always true.

Motivation: the rest of the system assumes eta.
Regarding impredicativity, we decided to support only the standard library.
2016-09-27 17:07:01 -07:00
Leonardo de Moura
9ef3ebbd5b refactor(*): delete HoTT support 2016-09-27 16:33:39 -07:00
Leonardo de Moura
9765151156 feat(kernel/inductive): relax restriction on metavariables
This change does not affect correctness of the kernel, since QED only
process terms that do not contain metavariables.
2016-09-13 13:50:04 -07:00
Leonardo de Moura
318c94bfce fix(kernel/inductive/inductive): kernel should reject inductive datatype declaration for I where I occurs in an index 2016-09-10 17:45:58 -07:00
Leonardo de Moura
932d14241b chore(kernel): remove support for mutually inductive datatypes from the kernel 2016-09-10 17:39:17 -07:00
Leonardo de Moura
f7df7dc9a7 refactor(kernel): add reducibility_hints 2016-09-04 16:30:02 -07:00
Leonardo de Moura
80607c8895 perf(kernel/type_checker): use definitional height again at is_def_eq 2016-09-03 16:18:39 -07:00
Daniel Selsam
a9b01991c2 feat(frontends/lean/inductive_cmd): new frontend for the inductive cmd
Conflicts:
	src/frontends/lean/CMakeLists.txt
	src/frontends/lean/structure_cmd.h
2016-08-17 07:34:03 -07:00
Leonardo de Moura
b6472d043e feat(kernel/instantiate): add helper function 2016-08-14 16:16:03 -07:00
Leonardo de Moura
a50e13f538 feat(library/type_context): allow us to control whether binder information is taken into account or not when caching type information 2016-08-01 16:34:07 -07:00
Leonardo de Moura
e33f8ec4d4 feat(library): add formatted_exception base class 2016-07-26 16:06:12 -07:00
Leonardo de Moura
9f8e3752f0 feat(kernel/equiv_manager): use expr_struct_map in the equiv_manager 2016-07-07 07:39:25 -07:00
Leonardo de Moura
fd08a9badf refactor(library/local_context): store pp_name in local_ref's
This commit also removes the now obsolete API get_local_pp_name from abstract_type_context
2016-06-21 10:50:38 -07:00
Leonardo de Moura
62905152f9 feat(kernel/environment): add is_eqp for environment 2016-06-14 12:28:59 -07:00
Leonardo de Moura
f4df90d6ac fix(kernel/declaration): bug at use_untrusted 2016-06-02 17:40:09 -07:00
Leonardo de Moura
df0d39ccee feat(kernel,library/definitional,frontends/lean/structure_cmd): make sure we can define inductive datatypes and structures containing untrusted declarations
If they contain untrusted declarations, then the associated
declarations (e.g., constructors) will be automatically tagged as untrusted.
2016-06-02 16:19:06 -07:00
Leonardo de Moura
e7b47a504e feat(frontends/lean): add meta_definition and meta_constant commands 2016-06-01 09:12:41 -07:00
Leonardo de Moura
53811822d4 chore(*): style 2016-05-25 18:10:15 -07:00
Leonardo de Moura
76942ae150 fix(kernel,library): OSX warnings 2016-05-13 21:33:40 -07:00
Leonardo de Moura
5fc90adf6b feat(kernel): add whnf_cond to kernel type_checker 2016-04-28 16:08:03 -07:00
Leonardo de Moura
0b812bc91d fix(kernel/declaration): typo and restoring trusted flag for constants 2016-04-28 15:59:09 -07:00
Leonardo de Moura
7932872487 feat(kernel/declaration): untrusted constant declarations
This feature is useful for implementing the new tactic framework
2016-04-28 15:16:24 -07:00
Leonardo de Moura
a29eaf0067 feat(kernel): add 'trusted' flag for definitions 2016-04-11 15:49:29 -07:00
Leonardo de Moura
4728b03f20 refactor(kernel/type_checker): do not use definitional depth in the kernel type checker 2016-04-11 14:53:02 -07:00
Leonardo de Moura
29ad781ec2 refactor(kernel): remove converter class
This abstraction is not useful after refactoring.
2016-03-19 15:58:15 -07:00
Leonardo de Moura
856889a08d refactor(kernel): remove dead code from type_checker 2016-03-19 15:28:19 -07:00
Leonardo de Moura
6406d7cf8b refactor(kernel): merge include files that are used only once 2016-03-19 15:20:12 -07:00
Leonardo de Moura
487a1e7f89 refactor(kernel): remove extension_context
We replaced it with abstract_type_context
2016-03-19 15:15:39 -07:00
Leonardo de Moura
63d8a0ed45 refactor(kernel): move justification/constraint/metavar to library
These files will be eventually deleted
2016-03-19 14:39:15 -07:00
Leonardo de Moura
e7f1f409c4 refactor(kernel): simplify kernel type_checker
TODO: cleanup, move justification/metavar/constraints to library
2016-03-18 16:28:42 -07:00
Leonardo de Moura
d8079aa16a refactor(library): create copy of the kernel type_checker in library
Motivation: it will allow us to simplify the kernel type_checker and
make sure it implements the same API provided by type_context
2016-03-18 14:34:10 -07:00
Leonardo de Moura
c679c3a8d4 dev(kernel/abstract_type_context): extend abstract_type_context API 2016-03-08 11:40:36 -08:00
Leonardo de Moura
3c878ecd01 feat(kernel): add let-expressions to the kernel
The frontend is still using the old "let-expression macros".
We will use the new let-expressions to implement the new tactic framework.
2016-02-29 16:40:17 -08:00
Leonardo de Moura
2b1d734544 feat(kernel/expr): remove 'contextual' flag from binder_info 2016-02-29 12:41:43 -08:00
Leonardo de Moura
2fd5347901 refactor(library/blast): ppb is not necessary anymore 2016-02-26 15:51:46 -08:00
Leonardo de Moura
eee74ef1b4 refactor(frontends/lean/pp): use abstract_type_context instead of type_checker 2016-02-26 15:35:29 -08:00
Leonardo de Moura
7d61f640f6 refactor(*): add abstract_type_context class 2016-02-26 14:17:34 -08:00
Leonardo de Moura
c9e9fee76a refactor(*): remove name_generator and use simpler mk_fresh_name 2016-02-11 18:05:57 -08:00
Leonardo de Moura
f67181baf3 chore(*): remove support for Lua 2016-02-11 17:17:55 -08:00
Leonardo de Moura
4324726a8e perf(kernel/expr_eq_fn): minimize number of calls to check_system 2016-02-02 18:16:14 -08:00
Leonardo de Moura
d9294fc164 chore(kernel/expr): remove dead var 2016-01-13 17:36:33 -08:00