Commit graph

11817 commits

Author SHA1 Message Date
Gabriel Ebner
79afaa7421 feat(library/init/meta/tactic): add timetac combinator 2017-02-24 20:17:19 +01:00
Leonardo de Moura
b5276a1c6f chore(README): add gitter badge 2017-02-24 09:11:04 -08:00
Leonardo de Moura
552a185e6a feat(frontends/lean): 'let' in 'do' blocks 2017-02-24 09:10:36 -08:00
Leonardo de Moura
5c7ade4ee4 chore(library/init/meta/vm): indentation 2017-02-23 09:32:20 -08:00
Jared Roesch
9b80e3bb62 feat(library/init/meta/vm): add decidable_eq for vm_obj_kind 2017-02-23 09:31:57 -08:00
Sebastian Ullrich
8c50efeb75 refactor(init/meta/lean/parser): simplify sep_by 2017-02-23 01:52:14 +01:00
Sebastian Ullrich
dd379e5b34 refactor(library/equations_compiler/elim_match): simplify is_complete_transition 2017-02-23 01:52:14 +01:00
Sebastian Ullrich
dfe1874365 refactor(frontends/lean/{parser,util}): extract quote functions
Also fixes ``f when f is private
2017-02-23 01:52:13 +01:00
Sebastian Ullrich
1c7ca3f20a feat(frontends/lean/parser): ignore implicit arguments in expr patterns 2017-02-23 01:52:13 +01:00
Sebastian Ullrich
44b27a9a44 chore(library/vm/vm): fix comment 2017-02-23 01:52:13 +01:00
Sebastian Ullrich
a443a5b7a6 chore(init/meta,tools/super): remove obsolete set_option eqn_compiler.max_steps 2017-02-23 01:52:13 +01:00
Sebastian Ullrich
908a7bd9f3 feat(frontends/lean/parser): expr patterns 2017-02-23 01:52:13 +01:00
Sebastian Ullrich
3aa9e32c5f fix(library/equations_compiler/elim_match): always prefer value transitions over complete transitions 2017-02-23 01:21:14 +01:00
Leonardo de Moura
6b76b65881 feat(library/equations_compiler/elim_match): change default max number of steps to 2048 2017-02-21 21:33:10 -08:00
Leonardo de Moura
d9307413b9 feat(library/compiler): skip bytecode optimization for interactive tactics
This is just overhead for begin...end blocks.
Moreover, "live variable analysis" is currently a recursive
procedure, and Lean will run of stack space when processing big begin
end blocks (> 1000 tactics).
2017-02-21 21:23:58 -08:00
Leonardo de Moura
ca31ad0107 perf(library/metavar_util): quadratic behavior when assembling the final proof
The peformance problem was affecting theorems that contain many `intro`
tactic applications.

@gebner After this optimization, the GAPT benchmark elaboration time went from
1.6 secs to 0.6 secs.
2017-02-21 21:02:43 -08:00
Leonardo de Moura
321105099f feat(library/type_context): add compilation flag for disabling type inference cache 2017-02-21 20:17:25 -08:00
Leonardo de Moura
09819cb159 feat(library/type_context): add compilation flag for disabling type class resolution flag 2017-02-21 20:04:43 -08:00
Leonardo de Moura
7c57d23b46 feat(kernel): add compilation flags for disabling has_local optimization and abstraction cache 2017-02-21 19:46:31 -08:00
Leonardo de Moura
1c959f6790 feat(kernel): add compilation flag for disabling "free var range" optimization 2017-02-21 19:40:56 -08:00
Leonardo de Moura
622e9a6035 feat(library/type_context): use m_unfold_pred to decide whether macros should be unfolded or not
see #1394
2017-02-21 18:07:39 -08:00
Leonardo de Moura
074574be0a feat(library/vm/vm_array): add native array.iterate and array.foreach 2017-02-21 16:22:25 -08:00
Leonardo de Moura
d9dcb4461e perf(library/vm/vm_array): minor optimization 2017-02-21 15:43:48 -08:00
Leonardo de Moura
3f87fd15eb feat(library/vm): add liveness analysis, and support destructive updates for lean arrays 2017-02-21 15:09:37 -08:00
Leonardo de Moura
b9204cefbc feat(library/init/data/array): add helper functions and instances 2017-02-21 13:45:03 -08:00
Leonardo de Moura
19cf5e916b chore(script/gen_constants_cpp): generates a warning if automatically generated C++ function is not used in the source code 2017-02-21 12:05:41 -08:00
Leonardo de Moura
7e6a10bd1b chore(tests/lean): fix tests, and environment.decl_pos 2017-02-21 11:21:02 -08:00
Sebastian Ullrich
9413f132c0 chore(bin/lean-gdb): terser expr pretty printer 2017-02-21 11:06:39 -08:00
Sebastian Ullrich
69741061b0 refactor(init/meta): drop obsolete X.to_expr functions 2017-02-21 11:06:39 -08:00
Sebastian Ullrich
a053175714 refactor(init/meta,library/vm): use structure for position information 2017-02-21 11:06:39 -08:00
Daniel Selsam
5f630e5866 fix(library/init/data/option/basic.lean): remove unused type parameter in instance 2017-02-21 11:00:40 -08:00
Sebastian Ullrich
bea34eb936 fix(emacs/lean-debug): disable undo in lean-debug buffer 2017-02-21 10:55:15 -08:00
Gabriel Ebner
61c380b534 fix(shell/lean): catch all exceptions
Fixes #1386.
2017-02-21 10:54:46 -08:00
Gabriel Ebner
4ae9312a5f fix(emacs/lean-input): remove overloading of \b abbreviation 2017-02-21 10:54:19 -08:00
Leonardo de Moura
613a4d6e45 chore(shell/CMakeFiles): enable SMT2 tests 2017-02-21 10:53:03 -08:00
Leonardo de Moura
d1d5428808 feat(library): add check_constants.lean validation, cleanup unused names, minor stdlib fixes 2017-02-21 10:45:31 -08:00
Leonardo de Moura
9863755ae1 feat(shell/lean,library/smt): fix SMT2 frontend 2017-02-21 09:28:21 -08:00
Leonardo de Moura
04fd50e4e8 chore(*): fix tests and style 2017-02-20 23:53:44 -08:00
Leonardo de Moura
87eaedc580 feat(library/vm): shrink VM stack eagerly
TODO: liveness analysis objects on the VM stack
2017-02-20 23:10:50 -08:00
Leonardo de Moura
e9a98362d3 feat(library): functional arrays 2017-02-20 22:00:02 -08:00
Leonardo de Moura
2e1221b1b4 chore(CMakeLists): bump version number 2017-02-20 18:06:18 -08:00
Leonardo de Moura
61254847fb fix(frontends/lean/structure_cmd): when error recovery is enabled, we must not assume the expression in the fixed line is a binding expression (it may be a sorry expression) 2017-02-20 14:51:59 -08:00
Leonardo de Moura
ddee94b831 fix(frontends/lean/elaborator): incorrect invariant due to error recovery
We cannot assume both source and target are binding expressions.
The source has already been elaborated, and it may be a `sorry` because
of error recovery code.
2017-02-20 14:30:10 -08:00
Leonardo de Moura
f5cbdff893 feat(library/tools/mini_crush/default): provide equational lemmas for "relevant" functions to rsimp; make sure we do not get stuck in ematching loop by using try_for 2017-02-19 20:56:13 -08:00
Leonardo de Moura
f140095d7b feat(library/tools/mini_crush/default): improve mini_crush 2017-02-19 20:26:30 -08:00
Leonardo de Moura
1ca5c78cf8 feat(library/tools/mini_crush): improve mini_crush 2017-02-19 18:33:12 -08:00
Leonardo de Moura
a41aac0e6a feat(library/tools/mini_crush): add tracing messages, and more examples 2017-02-19 17:27:09 -08:00
Leonardo de Moura
0fb5a01f17 feat(library/tools): add mini_crush 2017-02-19 16:21:12 -08:00
Leonardo de Moura
ec6e1e389b chore(tests/lean/run/cpdt): simplify 2017-02-19 13:49:19 -08:00
Leonardo de Moura
50f4a28fc3 feat(library/init/meta/smt/interactive): rsimp for smt_tactic 2017-02-19 13:31:03 -08:00