Commit graph

2813 commits

Author SHA1 Message Date
Leonardo de Moura
dfd2a23cd4 feat(frontends/lean): use #"c" instead of 'c' for character literals
The new notation is the same one used in Standard ML.
It will also allow us to use ' in the beginning of identifiers like Standard ML.
2016-11-17 11:35:54 -08:00
Leonardo de Moura
e16e9880f7 chore(library/system): enforce Lean naming conventions IO ==> io 2016-11-17 11:27:37 -08:00
Leonardo de Moura
d5aa92eaeb feat(library/tactic/tactic_state): add vm_obj introspection 2016-11-14 21:58:34 -08:00
Leonardo de Moura
82aade5185 feat(library/tactic/vm_monitor): add vm_decl introspection 2016-11-14 18:04:53 -08:00
Leonardo de Moura
277ff818a1 feat(library/tactic/vm_monitor): add VM introspection API 2016-11-14 17:25:25 -08:00
Leonardo de Moura
fffe69fdf9 feat(library/vm,library/tactic/vm_monitor): use optionT to define vm monad 2016-11-14 16:13:56 -08:00
Leonardo de Moura
7232e3a076 feat(library/vm/vm): invoke debugger (aka vm_monitor) 2016-11-14 14:45:49 -08:00
Leonardo de Moura
99b30d9c91 fix(tests/lean): remove config.lean 2016-11-13 09:38:40 -08:00
Leonardo de Moura
922d48524b fix(frontends/lean): fixes #1188
This commit also adds support for recording the type of local variables
in the info_manager
2016-11-10 15:08:25 -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
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
Sebastian Ullrich
ef633abec7 chore(*): fix test and style 2016-11-08 08:37:41 -08:00
Sebastian Ullrich
1f9554a014 refactor(frontends/lean/info_manager): always pass column in requests 2016-11-08 08:37:41 -08:00
Sebastian Ullrich
ba1b6165e3 feat(frontends, shell): implement basic server 'info' command 2016-11-08 08:37:41 -08:00
Leonardo de Moura
abd96e748f fix(frontends/lean/parser): crash on Win 10 2016-11-07 21:30:19 -08:00
Leonardo de Moura
c9da2f2542 chore(tests/lean): fix tests 2016-11-05 11:51:29 -07:00
Leonardo de Moura
b9afbf0aa8 test(tests/lean/run): add test for additive fragment 2016-11-05 11:47:43 -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
Gabriel Ebner
41643d6400 fix(library/compiler/vm_compiler): prevent segfault 2016-11-04 09:47:17 -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
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
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
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
ea3adf4a7c feat(library/init/meta/tactic): universe polymorphic tactics 2016-10-25 03:42:55 +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
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
6edec4c4e9 feat(library/init/meta/converter): implement conversionals using ext_simplify_core 2016-10-19 17:23:32 -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
Joe Hendrix
8ceada5555 feat(frontends/lean): support binary, octal and hex literals
Scanner will interpret numeric literals prefixed with '0b', '0o', and
'0x' as binary, octal, and hex decimal values respectively.  The prefix
character ('b', 'o', 'x') may be upper or lower case.
2016-10-19 10:13:24 -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
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
9810a5f941 refactor(library/tactic/simplifier): simplify simplifier 2016-10-16 15:55:30 -07:00
Gabriel Ebner
888609013f feat(tests): run tests in emscripten build 2016-10-16 14:41:35 -07:00
Gabriel Ebner
9f1c2a050c fix(tests): update to name hashing changes 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
9b84db083d fix(frontends/lean): error localization bugs 2016-10-15 13:40:57 -07:00
Leonardo de Moura
a5029ab5d2 fix(frontends/lean): improve error localization 2016-10-15 10:43:33 -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
Leonardo de Moura
ef23c591fc feat(library/init/meta): implement unfold tactics in Lean using new building blocks 2016-10-12 17:25:56 -07:00
Leonardo de Moura
4f2db5702f feat(library/tactic/unfold_tactic): allow user to set transparency_mode at dunfold_expr 2016-10-12 14:07:50 -07:00
Leonardo de Moura
46eb7decde feat(library/tactic/unfold_tactic): add unfold_projection tactic 2016-10-12 13:43:32 -07:00
Leonardo de Moura
deb2bb92b2 feat(library/tactic/simp_lemmas_tactics): add dunfold_expr tactic based on equational lemmas 2016-10-12 13:18:10 -07:00