Commit graph

3546 commits

Author SHA1 Message Date
Leonardo de Moura
d16a3df7a3 feat(library/tactic/congruence): initialization and pretty printing 2016-12-22 15:18:52 -08:00
Leonardo de Moura
6bc0952dbc feat(library/tactic/congruence/congruence_closure): generate lazy eq_true proofs 2016-12-22 14:44:38 -08:00
Leonardo de Moura
f7dce940b6 feat(library/tactic/congruence/congruence_closure): proof generation 2016-12-22 14:23:33 -08:00
Daniel Selsam
49de5313fa chore(library/tactic/change_tactic.cpp): better formatting for error message 2016-12-22 11:13:54 -08:00
Leonardo de Moura
60d3255577 fix(library/type_context): issue #1258 again
This is yet another fix.
2016-12-22 10:51:16 -08:00
Leonardo de Moura
49e296dee2 fix(library/type_context, library/tactic/induction_tactic): fix for issue #1258 was incorrect
The fix was incorrect because it could produce an invalid local context.
Actually, the regression tests/lean/run/1258.lean was producing an
assertion violation.
2016-12-21 21:13:29 -08:00
Leonardo de Moura
48cd421852 feat(library/tactic/congruence): add congruence closure basics 2016-12-21 20:46:25 -08:00
Leonardo de Moura
cc077554b5 fix(library/tactic/change_tactic): use id_locked in the change tactic to create checkpoint
closes #1260
2016-12-21 11:29:03 -08:00
Leonardo de Moura
fe3ed3d383 fix(library/constructions/induction_on): induction_on was not being marked as aux_recursor 2016-12-20 22:41:50 -08:00
Leonardo de Moura
896bc2c75a chore(*): fix style 2016-12-20 11:31:00 -08:00
Gabriel Ebner
8132957391 fix(library/module_mgr): build olean files with mtimes in correct order 2016-12-20 10:55:34 -08:00
Leonardo de Moura
5f72e37501 chore(library/vm): fix warning 2016-12-20 10:19:20 -08:00
Gabriel Ebner
0550d2a6ac refactor(library/module): import all modules in a single call 2016-12-20 10:15:19 -08:00
Gabriel Ebner
99fc13af98 refactor(library/module_mgr): cache olean imports as well 2016-12-20 10:15:19 -08:00
Gabriel Ebner
370d69de3f refactor(library/module): interface to get task dependencies for modifications 2016-12-20 10:15:19 -08:00
Gabriel Ebner
a2bc967fac feat(library/module): reuse pre-imported init module 2016-12-20 10:15:19 -08:00
Gabriel Ebner
a26e2c9108 feat(library/module): intermediary data structure for environment modifications 2016-12-20 10:15:19 -08:00
Gabriel Ebner
41e8a1712e refactor(library/vm): use global indices for declarations and cases 2016-12-20 10:13:58 -08:00
Leonardo de Moura
4c01cb503c fix(library/native_compiler/native_compiler): memory leak 2016-12-20 10:02:31 -08:00
Leonardo de Moura
127ecff79c fix(attribute_manager): finalization problem
Global variables must be simple types. Reason: the finalization of
global objects in different compilation units is not specified by the
standard. The only exception is the global at src/shared/init.cpp.
It is used to automatically initialize the lean shared library.

Before this commit, attribute_manager used a std::unique_ptr in a global
variable. The test shared_test was crashing in one of my machines
because a different finalization order was being used.
2016-12-20 10:02:31 -08:00
Leonardo de Moura
516f45428d fix(library/tactic/simplify): missing clear cache operation 2016-12-19 21:32:46 -08:00
Leonardo de Moura
db2e3727a6 feat(library/type_context): add yet another approximation to unifier
@avigad I decided to fallback into first-order unification to address
the (a ∉ []) issue.

@dselsam Have you experienced similar problems in the ICML project?
The new comment at type_context.cpp explains the problem and hack to
workaround it. The issue is yet another instance where using "first-order
unification" produces imprecision, but generates the solution we want.
2016-12-19 20:34:07 -08:00
Leonardo de Moura
45efccd53e fix(library/tactic/tactic_state): goal pp problem reported by Jared 2016-12-19 20:32:44 -08:00
Leonardo de Moura
47e6f8fa9e fix(library/type_context): do not revert auxiliary local declarations introduced by the recursive equation notation
see #1258
2016-12-19 11:06:50 -08:00
Leonardo de Moura
0492436c42 chore(library/scoped_ext,tests/lean): fix issues raised by @kha 2016-12-19 10:03:16 -08:00
Leonardo de Moura
b65c774f5b chore(library/init/meta): opened_namespaces ==> open_namespaces 2016-12-18 23:55:45 -08:00
Sebastian Ullrich
d3f57c6497 fix(library/tactic/tactic_state): include implicitly opened namespaces in opened_namespaces 2016-12-18 23:49:00 -08:00
Leonardo de Moura
aa0abd5cef fix(library/equations_compiler/structural_rec): bug in decoder 2016-12-18 22:51:02 -08:00
Leonardo de Moura
6b416b4618 feat(library/vm): use native representation for int in the VM 2016-12-18 15:04:02 -08:00
Leonardo de Moura
060a554db1 feat(library/tactic): add norm_num_tactic 2016-12-17 16:48:40 -08:00
Leonardo de Moura
eda7870b38 fix(library/tactic/simp_lemmas): missing case 2016-12-17 12:53:39 -08:00
Leonardo de Moura
ac1af2dfda feat(library/tactic/simplify): trace prove failures 2016-12-17 11:53:44 -08:00
Leonardo de Moura
8683ea4f60 feat(library/tactic/simp_lemmas): add simp_lemmas.pp 2016-12-17 11:53:02 -08:00
Leonardo de Moura
5572d7f3ec perf(kernel,library/module): enable expr caching when deserializing .olean files 2016-12-16 18:33:46 -08:00
Gabriel Ebner
6ed538a705 fix(library/module_mgr): finally fix invalidation 2016-12-16 18:18:00 -08:00
Leonardo de Moura
b0d27d6d92 feat(library/tactic/simplify): simplify_core calls itself to discharge hypothese 2016-12-16 10:26:44 -08:00
Leonardo de Moura
8b43314e23 feat(library/aliases,frontends/lean/parser): take local_ref's into account when defining new aliases; use get_local_ref at id_to_expr; use get_local_ref at resolve_local_name
see #1251
2016-12-15 14:10:44 -08:00
Leonardo de Moura
384cf04efd refactor(library/aliases,frontends/lean/local_ref_info): merge aliases and local_ref_info modules 2016-12-15 13:24:30 -08:00
Gabriel Ebner
d89512b6fc fix(util/task_queue): fix undefined behavior with null references 2016-12-15 09:48:57 -08:00
Leonardo de Moura
e248577e1c feat(library/vm): allow vm bytecode to invoke native closures 2016-12-14 19:16:55 -08:00
Leonardo de Moura
bd2f9bce05 fix(library/compiler/erase_irrelevant): issue created by elim_unused_lets optimization 2016-12-14 18:51:53 -08:00
Leonardo de Moura
b0ce461fcd feat(library/vm): native closures that do not depend on vm_state
Remark: native_closures are used in the C++ code generator.
2016-12-14 18:51:24 -08:00
Daniel Selsam
317989bf9e feat(tactic/exact_tactic): exact_core that takes transparency 2016-12-13 08:27:21 -08:00
Leonardo de Moura
b2c1ea6fdb fix(library/type_context): failure cache
The new regression test exposes the problem being fixed.
2016-12-13 07:50:03 -08:00
Daniel Selsam
fc7410633f feat(library/type_context): cache failures at is_def_eq 2016-12-13 07:01:12 -08:00
Gabriel Ebner
0c8c41bd07 fix(library/module_mgr): make more robust 2016-12-12 12:40:40 -08:00
Gabriel Ebner
67e3c383ac fix(library/module_mgr): fix invalidation 2016-12-12 12:40:40 -08:00
Gabriel Ebner
902df5d134 feat(shell/server,emacs): show list of currently running tasks 2016-12-12 12:40:40 -08:00
Leonardo de Moura
6e3959de2f feat(library/compiler): create declarations for nested values 2016-12-12 10:37:58 -08:00
Leonardo de Moura
fe3396e1ae perf(library/vm/vm): cache the result of 0-ary vm_decls 2016-12-12 09:12:06 -08:00