Commit graph

3389 commits

Author SHA1 Message Date
Leonardo de Moura
e673fa65ba feat(library/vm/vm): Store position information at vm_decl's 2016-11-11 15:39:32 -08:00
Leonardo de Moura
b59c10118d fix(*): memory leaks 2016-11-11 11:56:54 -08:00
Leonardo de Moura
0e20d9493b feat(library/quote): make sure to syntactically identical quoted expressions are not equated
Motivation: preserve position information
2016-11-10 13:35:54 -08:00
Leonardo de Moura
a7af70da2e feat(library/vm): add expr.copy_pos_info 2016-11-10 11:50:38 -08:00
Leonardo de Moura
7d3c0c24f8 fix(library/compiler): missing file 2016-11-10 09:34:32 -08:00
Leonardo de Moura
d6000416f8 feat(library/compiler,frontends/lean/elaborator): (try to) preserve position information
We will use this information in the debugger.
2016-11-09 16:51:48 -08:00
Leonardo de Moura
b79b76db83 feat(library/compiler/vm_compiler): improve local_info collection 2016-11-09 12:18:44 -08:00
Leonardo de Moura
6ce00a9b45 fix(library/compiler): move inliner to the beginning
Reason: the inliner may introduce recursors, non eta-expanded terms,
etc. Before this commit, it was "undoing" previous compilation steps.
2016-11-08 16:14:01 -08:00
Leonardo de Moura
c6558f8af5 feat(library/num): handle nat.zero and (nat.succ nat.zero) at to_num 2016-11-08 16:13:21 -08:00
Leonardo de Moura
6b3da2daf4 feat(library/compiler/vm_compiler): save local_info for let-expressions 2016-11-08 15:50:38 -08:00
Leonardo de Moura
d66584f390 feat(library/vm,library/compiler): save argument names 2016-11-08 15:10:04 -08:00
Gabriel Ebner
e88b97d46d fix(library/vm/vm): initialize m_total_time field 2016-11-07 15:03:25 -08:00
Leonardo de Moura
1cee5fbfea chore(library/compiler/vm_compiler): hide API 2016-11-05 14:11:21 -07:00
Leonardo de Moura
2d86d88c92 feat(library/tactic/user_attribute): allow user to specify whether attribute is persistent or not 2016-11-05 11:46:04 -07:00
Leonardo de Moura
43aa6eb87f fix(library/class): bug in whnf_pred predicate 2016-11-05 11:44:05 -07:00
Leonardo de Moura
ecb563baa3 chore(library/fun_info): patch assertion
The fixed assertion makes sure we don't get an array-index-out-of-bounds
in the for-loop in the end of the procedure.
2016-11-04 10:14:00 -07:00
Daniel Selsam
f3dc41b631 fix(library/tactic/simplify): only use auto_eq_congr if number of args match 2016-11-04 10:13:02 -07:00
Leonardo de Moura
1dcc21525a chore(library/vm/vm): style 2016-11-04 09:55:20 -07:00
Gabriel Ebner
1aacf1f20b chore(*): fix style errors 2016-11-04 09:47:17 -07:00
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