Commit graph

968 commits

Author SHA1 Message Date
Leonardo de Moura
414bdc1abb refactor(library): move 'meta' to 'init' folder
Motivation: tactic framework should be always available.
2016-06-06 19:08:07 -07:00
Leonardo de Moura
9c4017e59e feat(library/meta/base_tactic): add base_tactic 2016-06-06 15:26:14 -07:00
Leonardo de Moura
fb6c9f2879 feat(library/vm/vm_expr): add more functions to 'expr' API 2016-06-06 11:26:19 -07:00
Leonardo de Moura
a55a936db2 feat(library/vm): expose C++ 'expr' object 2016-06-05 21:13:00 -07:00
Leonardo de Moura
792040b1a5 feat(library/init/bool): mark bor, band and cond as inline
The idea is to get short-circuit evaluation for Boolean operators.
2016-06-05 13:03:33 -07:00
Leonardo de Moura
1f8c58415e feat(library/vm): expose C++ 'level' object 2016-06-05 12:55:57 -07:00
Leonardo de Moura
dac2c39646 feat(library/meta/rb_map): add has_to_string and has_to_format type class instances for rb_map 2016-06-03 17:34:49 -07:00
Leonardo de Moura
1834cab3f2 feat(library/meta): add has_cmp type class 2016-06-03 14:06:46 -07:00
Leonardo de Moura
9a14f7543c feat(library/vm): expose rb_map object 2016-06-03 13:45:06 -07:00
Sebastian Ullrich
9561b45af1 fix(frontends/lean): uniform handling of declaration compound names
* allow compound names in `namespace` and `structure`
* adjust error messages

Conflicts:
	src/frontends/lean/builtin_tactics.cpp
2016-06-02 18:13:50 -07:00
Leonardo de Moura
3b57246a62 feat(library/meta/format): add 'pp' helper function 2016-06-02 17:57:29 -07:00
Leonardo de Moura
06cb26176c feat(library/vm): expose C++ options object 2016-06-02 11:46:17 -07:00
Leonardo de Moura
5382a5a556 feat(frontends/lean): allow unbounded recursion in meta_definitions 2016-06-01 09:55:07 -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
d763ea1abf chore(tests/lean/run/IO3): remove unnecessary 'open' 2016-05-25 16:05:39 -07:00
Leonardo de Moura
4b002e5bf0 test(tests/lean/run): add IO test 2016-05-25 16:04:54 -07:00
Leonardo de Moura
0239860ad6 test(tests/lean/run): add another IO test 2016-05-25 15:47:02 -07:00
Leonardo de Moura
2a16b58324 test(tests/lean/run): add another IO test 2016-05-25 14:23:57 -07:00
Leonardo de Moura
e82cb6393f test(tests/lean/run): add IO test 2016-05-25 13:46:05 -07:00
Leonardo de Moura
bf2d2b9feb fix(library/vm,library/compiler,frontends/lean): IO monad support 2016-05-25 13:30:43 -07:00
Leonardo de Moura
4c8360efd8 test(tests/lean/run/vm_eval1): test for efficient interpreter 2016-05-24 12:26:25 -07:00
Leonardo de Moura
18b2b51c8b test(tests/lean/run): make sure well_founded.fix works before optimizing its compilation 2016-05-23 16:50:44 -07:00
Leonardo de Moura
f573ebd0a4 refactor(library): make sure prod.pr1 is a projection 2016-03-25 16:28:29 -07:00
Leonardo de Moura
384e8bf7bf refactor(library): remove unifier_plugin 2016-03-21 17:57:53 -07:00
Leonardo de Moura
9d0dfb8404 refactor(frontends/lean): remove calc_proof_elaborator 2016-03-03 17:22:45 -08:00
Leonardo de Moura
227b548341 refactor(frontends/lean/calc): no overloading in calc steps 2016-03-03 15:00:51 -08:00
Leonardo de Moura
2c70ca83a8 refactor(frontends/lean/calc): remove '{}' notation for eq.subst in calc mode 2016-03-03 14:18:20 -08:00
Leonardo de Moura
d7de521126 refactor(library/class): remove attribute [multiple_instances] and old type class resolution procedure 2016-03-03 13:58:22 -08:00
Leonardo de Moura
4a43e33d45 chore(*): disable big chunk of the standard library and tests 2016-03-03 13:43:08 -08:00
Leonardo de Moura
d84a20d68b remove(frontends/lean/server): FINDG command 2016-03-03 10:12:24 -08:00
Jeremy Avigad
4050892889 refactor(library/*): rename 'compose' to 'comp' 2016-03-02 22:48:05 -05:00
Leonardo de Moura
fbe5188480 refactor(frontends/lean): remove 'by+' and 'begin+' tokens 2016-02-29 13:45:43 -08:00
Leonardo de Moura
b41c65f549 feat(frontends/lean): remove '[visible]' annotation, remove 'is_visible' tracking 2016-02-29 12:31:23 -08:00
Leonardo de Moura
101cf1ec4c feat(frontends/lean): remove difference between 'have' and 'assert' 2016-02-29 11:28:20 -08:00
Leonardo de Moura
7d61f640f6 refactor(*): add abstract_type_context class 2016-02-26 14:17:34 -08:00
Leonardo de Moura
1924b2884c refactor(library/tactic): remove 'append' and 'interleave' tacticals
Preparation for major refactoring in the tactic framework.
2016-02-24 16:02:16 -08:00
Leonardo de Moura
96f391dda2 feat(library/definitional/projection,frontends/lean/structure_cmd): creating inductive predicates using structure command 2016-02-22 16:09:44 -08:00
Leonardo de Moura
49661a043d feat(library/definitional/equations): improve detection of infeasible cases in the definitional package 2016-02-22 14:16:24 -08:00
Leonardo de Moura
20f70035dd fix(frontends/lean/util): fixes #1007 2016-02-22 10:54:55 -08:00
Leonardo de Moura
f67181baf3 chore(*): remove support for Lua 2016-02-11 17:17:55 -08:00
Daniel Selsam
f06cdff2a1 fix(library/blast/simplifier/ceqv): fix error in is_permutation 2016-02-07 14:06:28 -08:00
Leonardo de Moura
30d6853ffd refactor(hott,tests): make sure HoTT library and tests still work if we introduce checkpoints in have-expressions 2016-02-04 16:58:32 -08:00
Leonardo de Moura
a08bc408c8 fix(frontends/lean/structure_cmd): fixes #967 2016-02-04 16:15:18 -08:00
Leonardo de Moura
31cc0ebb6a fix(frontends/lean/structure_cmd): fixes #968 2016-02-04 15:45:38 -08:00
Leonardo de Moura
496c84dac6 fix(frontends/lean/elaborator): fixes #982 2016-02-04 15:14:30 -08:00
Leonardo de Moura
0268f92eb4 fix(frontends/lean/elaborator): fixes #965 2016-02-04 13:41:21 -08:00
Leonardo de Moura
42fbc63bb6 fix(library/tc_multigraph): avoid name collisions
@avigad, @fpvandoorn, @rlewis1988, @dselsam

I changed how transitive instances are named.
The motivation is to avoid a naming collision problem found by Daniel.
Before this commit, we were getting an error on the following file
tests/lean/run/collision_bug.lean.

Now, transitive instances contain the prefix "_trans_".
It makes it clear this is an internal definition and it should not be used
by users.

This change also demonstrates (again) how the `rewrite` tactic is
fragile. The problem is that the matching procedure used by it has
very little support for solving matching constraints that involving type
class instances. Eventually, we will need to reimplement `rewrite`
using the new unification procedure used in blast.

In the meantime, the workaround is to use `krewrite` (as usual).
2016-02-04 13:15:42 -08:00
Leonardo de Moura
587c263c28 feat(library/blast/forward/ematch): improve support for casts in the e-matcher 2016-01-29 11:38:43 -08:00
Leonardo de Moura
684995640a fix(library/blast/unit/unit_propagate): memory access violation 2016-01-27 15:22:34 -08:00
Leonardo de Moura
fb95b71a5e fix(library/blast/forward/pattern): bug in the pattern inference code 2016-01-27 13:39:19 -08:00