Commit graph

3370 commits

Author SHA1 Message Date
Gabriel Ebner
41643d6400 fix(library/compiler/vm_compiler): prevent segfault 2016-11-04 09:47:17 -07:00
Leonardo de Moura
5075891f66 chore(library/vm/vm): fix gcc 4.8 warning 2016-11-04 09:46:16 -07:00
Gabriel Ebner
ef1fc9871b feat(library/vm/vm): profiler: show cumulative runtimes 2016-11-04 09:39:12 -07:00
Leonardo de Moura
9465f25f09 feat(library/vm): profiler for VM bytecode 2016-11-03 21:15:29 -07:00
Leonardo de Moura
6173d95d18 feat(library/module,frontends/lean): store line/column number information 2016-11-02 16:55:21 -07:00
Leonardo de Moura
3212d9c83a fix(library/module): store .olean file where inductive datatype was defined 2016-11-02 16:07:36 -07:00
Leonardo de Moura
cea572a167 feat(library/module): store .olean file name for imported declarations 2016-11-02 15:37:33 -07:00
Leonardo de Moura
3958d8485a chore(library/module): remove dead code 2016-11-02 15:02:49 -07:00
Leonardo de Moura
9d3aa5b627 fix(library/compiler/elim_recursors): bug in elim_recursors
We may fail to type check auxiliary definitions that use rec_fn_macro.
The problem is that this macro cannot be unfolded.
So, we fix the problem by not type checking them. We add them as
constants, and store the definition in an auxiliary vector.
2016-11-02 14:19:28 -07:00
Leonardo de Moura
e62810c9b8 fix(library/compiler/lambda_lifting): make sure constructors are eta-expanded
closes #1133
2016-11-02 13:26:15 -07:00
Leonardo de Moura
30ae8a29b6 fix(library/compiler/elim_recursors): some recursor applications were not being eliminated 2016-11-02 13:05:52 -07:00
Daniel Selsam
05add2ea02 fix(library/tactic/simplify.cpp): fix debug tracing names 2016-11-02 10:23:38 -07:00
Leonardo de Moura
b22192eee1 fix(library/equations_compiler/elim_match): fixes #1171
We should not use value-transition (based on if-then-else) when there
are dependencies.
2016-10-31 17:42:39 +08:00
Gabriel Ebner
e18370585d fix(frontends/lean/server): fix relative dependency lookups 2016-10-30 08:42:05 +08:00
Leonardo de Moura
a77e4b5abf fix(library/compiler/erase_irrelevant): bug at is_comp_irrelevant 2016-10-27 11:51:37 +08:00
Leonardo de Moura
fa3475fa66 fix(library/type_context): allow assigned regular meta-variables to be "read" in tmp-mode
This commit also removes a "hack" that tried to fix this problem for
universe meta-variables only. Moreover, the hack was incomplete, since
it would not consider nested metavars.
2016-10-21 13:33:07 -07:00
Leonardo de Moura
a9fe684f26 chore(library/tactic/simplify): fix warning in release mode 2016-10-21 13:28:12 -07:00
Sebastian Ullrich
989761045b fix(src/emacs/lean-server): revert 133b70c0 for emacs < 25 2016-10-19 19:47:36 -07:00
Leonardo de Moura
99299d1915 feat(library/tactic/simplify): use propext in rewriting rules when simplify_config.use_axioms is tt 2016-10-19 17:59:01 -07:00
Leonardo de Moura
a4ef8f385d feat(library/tactic/simplify): add basic support for lambda-expressions 2016-10-19 14:15:56 -07:00
Leonardo de Moura
205d524409 refactor(library/tactic/simplify): delete old simplifier 2016-10-19 14:03:14 -07:00
Sebastian Ullrich
f10d5e4d8c fix(library/vm/vm_io): disable get_line in server mode 2016-10-19 10:02:58 -07:00
Sebastian Ullrich
044b989679 fix(library/vm/vm_io): capture put_str/put_nat output in server mode 2016-10-19 10:02:58 -07:00
Sebastian Ullrich
133b70c0e3 fix(emacs): don't try to parse server stderr as json, instead notify on server crash 2016-10-19 10:02:58 -07:00
Leonardo de Moura
64c3927e0b feat(library/equations_compiler/elim_match): report unused equations
closes #1162
2016-10-19 09:58:08 -07:00
Leonardo de Moura
e74cfa9db7 fix(library/equations_compiler/elim_match): bug at complete transition
It also updates the condition for triggering the inaccessible
transition. Before this commit, we would only perform this kind
of transition if *all* terms were marked inaccessible. Now,
we perform it if *some* are marked inaccessible. Reason:
when we perform the complete transition we don't have enought
information for deciding whether an argument should be marked as
inaccessible or not. If this decision creates confusion for users,
we may try to mark them with an "maybe-inaccessible" annotation, and
then enforce that the inaccessible transition is performed onlty if
*all* terms are marked as inaccessible or *maybe-inaccessible"
2016-10-19 09:10:19 -07:00
Leonardo de Moura
053389b70b feat(library/init/meta/simp_tactic): add new simp primitives 2016-10-19 08:41:25 -07:00
Leonardo de Moura
4d52de6f33 refactor(library/tactic/simplify): add simplify subclasses, and use new simplifier at nested 2016-10-18 16:18:25 -07:00
Leonardo de Moura
fa01e062ef feat(library/tactic/simplifier): add simplify_core_fn
TODO: remove dead code from old simplifier
2016-10-17 09:51:49 -07:00
Leonardo de Moura
7b806755d9 chore(library/tactic/simplify): remove subsingleton support
It is left over from the blast tactic.
Moreover, it is incomplete.
2016-10-16 22:11:12 -07:00
Leonardo de Moura
835c888936 feat(library/tactic/simplify): simplify cache 2016-10-16 16:39:33 -07:00
Leonardo de Moura
bd8478bb25 chore(library/tactic/simplify): remove m_ctx_slss 2016-10-16 16:28:50 -07:00
Leonardo de Moura
aee951af9b chore(library/tactic): move simplifier to tactic folder 2016-10-16 16:25:14 -07:00
Leonardo de Moura
f833736e35 chore(library/tactic/simplifier): remove unnecessary file 2016-10-16 16:19:01 -07:00
Leonardo de Moura
9810a5f941 refactor(library/tactic/simplifier): simplify simplifier 2016-10-16 15:55:30 -07:00
Gabriel Ebner
ec0aa6d248 refactor(*): integrate emscripten build 2016-10-16 14:41:35 -07:00
Leonardo de Moura
0f72de217a chore(library/tactic/simplifier): simplify simplifier 2016-10-15 18:14:59 -07:00
Leonardo de Moura
5318b0cf39 fix(library/tactic/backward/backward_lemmas): uninitialized value 2016-10-15 13:21:46 -07:00
Leonardo de Moura
0bb155a427 chore(*): remove .clean support
In Lean2, we used to cache elaborated definitions in .clean files. The
main goal was to optimize each flycheck invocation produced by Emacs.

The Lean3 definition package was not updating this cache. Moreover, it
is not necessary because the new compilation server subsumes it.
2016-10-13 19:58:58 -07:00
Leonardo de Moura
0ee1eed751 chore(library/type_context): comment assertion violated by the pretty printer 2016-10-13 19:34:58 -07:00
Gabriel Ebner
b14a0c43ff feat(frontends/lean/parser,library/module): warn if imported modules are out-of-date 2016-10-13 18:49:10 -07:00
Gabriel Ebner
60afce092a fix(library/trace): prevent memory corruption with scope_traces_as_messages 2016-10-13 18:49:10 -07:00
Gabriel Ebner
66be9c31db refactor(library/flycheck): use flycheck_message_stream instead of option 2016-10-13 18:49:10 -07:00
Gabriel Ebner
5acb722d46 refactor(library/flycheck,library/trace): convert trace output to messages independently of flycheck 2016-10-13 18:49:10 -07:00
Gabriel Ebner
b05b514cc2 refactor(*): structured message objects 2016-10-13 18:49:10 -07:00
Leonardo de Moura
bf7bae6eaf feat(library/init/meta/tactic): add beta/zeta tactics 2016-10-13 18:47:27 -07:00
Daniel Selsam
b4644acba4 fix(meta/mk_dec_eq_instance): handle indices and ginductives 2016-10-13 10:12:37 -07:00
Daniel Selsam
ae730532c8 fix(inductive_compiler): preserve invariant that all basic ir names are <ind_name>.<atomic> 2016-10-13 10:12:08 -07:00
Daniel Selsam
047556528d refactor(inductive_compiler): keep simulated inductive types semireducible 2016-10-13 10:12:08 -07:00
Leonardo de Moura
881aa6d023 perf(library/type_context): small optimization
It makes a big difference in examples such as:

example (p : nat → Prop) (a : nat) (h : false) : p (a + 5000) :=
begin
  unfold add has_add.add nat.add bit0 bit1 one has_one.one,
  contradiction
end
2016-10-12 21:39:10 -07:00