Leonardo de Moura
52ef17284a
fix(kernel/expr, kernel/level): if caching is enabled during finalization, these modules would register a finalizer after finalization of the main thread
...
The deleted lines were not really needed. They were added before we had
the thread finalization code.
2016-12-01 10:16:05 -08:00
Leonardo de Moura
d40e97b4bc
chore(*): compilation errors, fix style, fix warnings
2016-11-29 11:35:01 -08:00
Gabriel Ebner
3ecfddcbd5
fix(*): fix build
2016-11-29 11:12:43 -08:00
Gabriel Ebner
e448e4e129
refactor(util/task_queue): merge module_task into task and cancel by position
2016-11-29 11:12:43 -08:00
Gabriel Ebner
56f895d6d8
feat(kernel/type_checker): option to disable delayed proof-checking
2016-11-29 11:12:43 -08:00
Gabriel Ebner
26b0138771
refactor(kernel/type_checker): factor out part for definition checking
2016-11-29 11:12:43 -08:00
Gabriel Ebner
4ace7a6328
fix(kernel/type_checker): do not wait for proof
2016-11-29 11:12:43 -08:00
Gabriel Ebner
b6a866addf
fix(kernel/type_checker): fix dangling reference that lead to segfault
2016-11-29 11:12:43 -08:00
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