Commit graph

4376 commits

Author SHA1 Message Date
Leonardo de Moura
8240d7adcd perf(frontends/lean/util): improve univ_metavars_to_params_fn
We moved to replace_visitor because it uses a more precise cache.
2015-03-02 18:25:00 -08:00
Leonardo de Moura
7e2f0f9a36 fix(library/unifier): in the context_check, we should not consider local constants that occur in the type of other constants
This was a performance bug.
We were missing higher-order pattern constraints due to this bug.
2015-03-02 17:28:56 -08:00
Leonardo de Moura
1042bbc06f fix(kernel/metavar): improve error messages by propagating the tag when we execute instantiate_all
This is the real fix for commit ededf4fc6c
2015-03-02 13:01:50 -08:00
Leonardo de Moura
c81762970e fix(frontends/lean/elaborator): revert commit ededf4fc6c
The instantiate_all are needed. See issue #457
2015-03-02 13:00:54 -08:00
Leonardo de Moura
fdb169b8f3 feat(library/tactic): improve error localization when compiling tactics 2015-03-02 12:21:02 -08:00
Leonardo de Moura
ededf4fc6c feat(frontends/lean): remove unnecessary instantiate_all's that were messing with error localization 2015-03-01 14:51:44 -08:00
Leonardo de Moura
ca57b43698 feat(library/tactic): add 'change' tactic 2015-03-01 14:15:39 -08:00
Leonardo de Moura
c8ad5e9406 feat(frontends/lean/builtin_exprs): focus on have-tactic goal 2015-03-01 13:43:33 -08:00
Leonardo de Moura
e07c6675b3 feat(library/tactic/elaborate): better error message for tactics using elaborate_with_respect_to 2015-03-01 13:42:53 -08:00
Leonardo de Moura
c772d7bf84 fix(frontends/lean/elaborator): unassigned metavariable when using nested begin-end blocks
Closes #454
2015-02-28 09:03:56 -08:00
Floris van Doorn
23a248ab28 style(hott): let inverse notation have higher binding power than application 2015-02-28 01:16:23 -05:00
Soonho Kong
05cfb21c4c fix(emacs/lean-server.el): split findp info only up-to 1
close #446
2015-02-27 20:04:13 -05:00
Leonardo de Moura
cf56935b01 feat(frontends/lean): improve support for user defined tactics 2015-02-27 16:58:25 -08:00
Soonho Kong
c9ffc2fec8 fix(emacs/lean-util): add hlean support in lean-path-list
close #450
2015-02-27 15:27:18 -05:00
Leonardo de Moura
7d827a14c9 feat(library/module): expand 'failed to import' error message
see issue #448
2015-02-27 08:00:30 -08:00
Leonardo de Moura
2b65f02f6f feat(shell/lean): do not terminate if an error is detected when loading the cache
see issue #448
2015-02-27 07:54:59 -08:00
Leonardo de Moura
5b736a2268 feat(frontends/lean): add support for empty match-with expressions 2015-02-26 16:36:15 -08:00
Leonardo de Moura
d00c013ad8 fix(shell/lean): display HoTT library path for lean --hlean --path
See #450
2015-02-26 15:09:03 -08:00
Leonardo de Moura
72eed42ac8 feat(library/unifier): ignore irrelevant branches when solving flex-rigid constraints 2015-02-26 13:43:54 -08:00
Floris van Doorn
c091acc55b feat(hott): remove funext as type class, add theorems to prove equalities between functors and natural transformations 2015-02-26 12:52:33 -05:00
Soonho Kong
88e287df5a doc(emacs/README.md): add instructions for unicode-fonts package
related issue: #446
2015-02-26 05:09:40 -05:00
Leonardo de Moura
68110faa4d feat(frontends/lean/inductive_cmd): allow '|' in inductive datatype declarations 2015-02-25 17:00:10 -08:00
Leonardo de Moura
5ca52d81ec feat(frontends/lean): ML-like notation for match and recursive equations 2015-02-25 16:20:44 -08:00
Leonardo de Moura
c04c610b7b feat(frontends/lean): add 'assert H : A, ...' as notation for 'have H [visible] : A, ...' 2015-02-25 14:30:42 -08:00
Leonardo de Moura
96b54a8007 feat(frontends/lean/builtin_exprs): add 'have' notation in 'begin-end' blocks
It is notation for the assert tactic.
2015-02-25 14:04:17 -08:00
Leonardo de Moura
425aba9aa9 feat(library/pp_options): reduce default limits in the pretty printer
The goal is to avoid problems like the one described in issue #428
2015-02-25 14:04:17 -08:00
Soonho Kong
db1fba3ddc fix(emacs/lean-server.el): lean-server-trace-buffer-name was changed to a function 2015-02-25 14:21:23 -05:00
Leonardo de Moura
909ebfc5f1 feat(frontends/lean/elaborator): try coercions after each overload
We try only the easy cases since the more general case is too expensive.

closes #444
2015-02-24 17:41:20 -08:00
Leonardo de Moura
34c36648bb fix(frontends/lean/decl_cmds): constants command
closes #445
2015-02-24 16:27:13 -08:00
Leonardo de Moura
42289d4334 feat(library/tactic/class_instance_synth): create class instance synthesis subproblems only for arguments marked with the [] binder annotation 2015-02-24 16:12:39 -08:00
Leonardo de Moura
1cd44e894b feat(library/tactic/class_instance_synth): conservative class-instance resolution: expand only definitions marked as reducible
closes #442
2015-02-24 16:12:35 -08:00
Leonardo de Moura
4364b7f926 feat(frontends/lean): pp.beta is true by default
Remark: there is one exception (command: print definition). For this
command pp.beta is still false.
2015-02-24 12:27:53 -08:00
Leonardo de Moura
1ff6446a63 feat(frontends/lean): nested begin-end blocks 2015-02-24 11:59:27 -08:00
Leonardo de Moura
21e972e34a fix(emacs/lean-syntax): syntax-highlight problem in tactics 2015-02-24 11:57:34 -08:00
Leonardo de Moura
dc2ac92846 fix(library/definitional/equations): use whnf on recursive definition arguments
The idea is to expose "hidden" datatypes.
2015-02-23 22:27:30 -08:00
Leonardo de Moura
3197e6d403 feat(frontends/lean/parse_rewrite_tactic): improve rewrite tactic parser 2015-02-23 19:40:03 -08:00
Leonardo de Moura
787fed95aa fix(library/tactic/inversion_tactic): bug in simpler case (hypotheses were being lost) 2015-02-23 16:10:49 -08:00
Leonardo de Moura
7adecaf494 fix(frontends/lean/structure_cmd): include context/section parameteres/variables that are used in explicit structure parameters 2015-02-23 15:28:43 -08:00
Leonardo de Moura
923fed8612 fix(frontends/lean/structure_cmd): bug in alias generation in the structure command
This commit (and 75acb3bc66) closes #443
2015-02-23 15:17:05 -08:00
Leonardo de Moura
75acb3bc66 fix(frontends/lean/structure_cmd): internal name of parameter/variable was being erased 2015-02-23 15:01:27 -08:00
Leonardo de Moura
7d35d18cad fix(library/tactic/rewrite_tactic): bug when matching terms that expanded into projections 2015-02-22 18:23:10 -08:00
Leonardo de Moura
a8554b6ed9 fix(kernel/default_converter): avoid assertion violation when normalizing type incorrect expressions 2015-02-22 16:17:43 -08:00
Leonardo de Moura
af787d9b7f fix(library/constants): regenerate constants.cpp and fix affected files 2015-02-22 09:22:51 -08:00
Floris van Doorn
61901cff81 feat(hott): rename definition and cleanup in HoTT library
also add more definitions in types.pi, types.path, algebra.precategory

the (pre)category library still needs cleanup
authors of this commit: @avigad, @javra, @fpvandoorn
2015-02-20 21:40:42 -05:00
Leonardo de Moura
33e562a7ce fix(frontends/lean/structure_cmd): effect of "include" command in the structure command
closes #438
2015-02-19 22:44:51 -08:00
Leonardo de Moura
7fc216183e feat(library/tactic): produce better error message when a tactic fails
closes #348
2015-02-16 18:42:15 -08:00
Leonardo de Moura
3a67ddb7c5 feat(library/locals): use optional<expr> instead of bool at depends_on (for arrays) 2015-02-16 18:42:05 -08:00
Leonardo de Moura
4248ad644d fix(frontends/lean): priority expressions parser 2015-02-14 12:26:06 -08:00
Soonho Kong
8b8267c7ce feat(emacs/lean-company.el): show meta and annotation for auto-complete options
close #435
2015-02-13 19:41:42 -05:00
Soonho Kong
382bf860fd fix(emacs/lean-company): import auto-completion for .hlean files
fix #434
2015-02-13 19:41:42 -05:00
Soonho Kong
a791953705 chore(emacs/lean-server): make lean-server-restart-all-processes interactive 2015-02-13 19:41:41 -05:00
Soonho Kong
6bcd1a9980 feat(emacs/lean-server): add support for hlean/standard minor-mode
Related issue: #389, #398, #400, #428
2015-02-13 19:41:41 -05:00
Soonho Kong
46d99c8077 chore(emacs): move lean-choose-minor-mode-based-on-extension to lean-util.el 2015-02-13 19:41:41 -05:00
Soonho Kong
dcee8ddb1f feat(emacs/lean-mode): add Standard/HoTT minor modes for lean-mode 2015-02-13 19:41:41 -05:00
Leonardo de Moura
c532a4a4b8 feat(frontends/lean/server): add option 'auto_completion.max_results'
Default value is 100
2015-02-13 12:58:11 -08:00
Leonardo de Moura
5cbdd77ad0 feat(library/tactic/rewrite_tactic): improve matcher in rewrite_tactic
closes #433
2015-02-13 12:40:55 -08:00
Leonardo de Moura
db71a29c81 feat(frontends/lean/parse_rewrite_tactic): improve esimp tactic 2015-02-13 12:22:17 -08:00
Leonardo de Moura
98960cbeda fix(library/tactic/rewrite_tactic): bug in HoTT mode 2015-02-13 10:09:18 -08:00
Jeremy Avigad
7d60213d9a fix(src/emacs/lean-syntax.el): add syntax highlighting for [abbreviations] 2015-02-11 22:09:25 -05:00
Leonardo de Moura
8ffadce4ab feat(frontends/lean): add "premise" and "premises" command
It is just an alternative notation for "variable" and "variables"

closes #429
2015-02-11 18:46:03 -08:00
Leonardo de Moura
30d20e8029 chore(frontends/lean/parser): remove dead code 2015-02-11 16:29:58 -08:00
Leonardo de Moura
04e92e1e96 feat(frontends/lean/parser): reject explicit universe levels in variables and parameters
This modification was motivated by issue #427
2015-02-11 16:25:06 -08:00
Leonardo de Moura
a35cce38b3 feat(frontends/lean): new semantics for "protected" declarations
closes #426
2015-02-11 14:09:25 -08:00
Leonardo de Moura
eceed03044 feat(frontends/lean): add "except" notation for "open" command, allow multiple metaclasses to be opened in a single "open" command 2015-02-11 11:02:59 -08:00
Leonardo de Moura
93f04f3034 feat(emacs): update syntax highlight 2015-02-11 10:35:38 -08:00
Leonardo de Moura
1832fb6f54 feat(*): uniform metaclass names, metaclass validation at 'open' command 2015-02-11 10:35:04 -08:00
Leonardo de Moura
9d1cd073c5 feat(frontends/lean): add 'print metaclasses' command 2015-02-11 10:13:20 -08:00
Leonardo de Moura
2cbaf1bbe3 feat(library/scoped_ext): add get_metaclasses API 2015-02-11 10:12:28 -08:00
Leonardo de Moura
60fca7575c fix(frontends/lean/pp): bugs when pretty printing abbreviations 2015-02-10 19:06:09 -08:00
Leonardo de Moura
9398b887cc fix(library/abbreviation): missing condition 2015-02-10 18:34:45 -08:00
Leonardo de Moura
bd304e1911 chore(*): style 2015-02-10 18:31:17 -08:00
Leonardo de Moura
43f849bf95 feat(frontends/lean/pp): add support for abbreviations in the pretty printer
closes #365
2015-02-10 18:27:02 -08:00
Leonardo de Moura
13748b9347 feat(library/abbreviation): simplify expand_abbreviations 2015-02-10 18:26:39 -08:00
Leonardo de Moura
373d4ca4c6 feat(emacs/lean-syntax): highlight 'abbreviation' command 2015-02-10 18:22:03 -08:00
Leonardo de Moura
f47e1bed01 feat(library/abbreviation): store inverse map ignoring universe level parameters 2015-02-10 18:21:32 -08:00
Leonardo de Moura
0d96b6b4cb feat(library/expr_lt): add expression comparison operator that ignores treat level parameters as wildcards 2015-02-10 18:20:10 -08:00
Leonardo de Moura
565cd835af feat(frontends/lean): add 'abbreviation' command 2015-02-10 17:31:40 -08:00
Leonardo de Moura
64ac3fa4ee feat(library): add 'abbreviation' management module 2015-02-10 17:25:11 -08:00
Leonardo de Moura
014271da8b feat(frontends/lean): better error messages for ill-terminated declarations 2015-02-10 14:38:00 -08:00
Leonardo de Moura
058377c8c6 feat(library/tactic/rewrite_tactic): treat iff.refl as trivial step in the rewrite tactic 2015-02-08 17:27:59 -08:00
Leonardo de Moura
666f697d24 fix(frontends/lean/builtin_exprs): 'using' expression should make local constant available for tactics 2015-02-08 17:27:22 -08:00
Leonardo de Moura
fcd67649ed refactor(kernel): expose may_reduce_later method 2015-02-07 20:36:26 -08:00
Leonardo de Moura
b57f93bad5 refactor(kernel): remove unnecessary procedures 2015-02-07 20:14:19 -08:00
Leonardo de Moura
1bdf7ae55a feat(kernel/default_converter): make norm_ext virtual 2015-02-07 19:25:56 -08:00
Leonardo de Moura
4c2277fccf feat(kernel/converter): more cleanup 2015-02-07 19:19:01 -08:00
Leonardo de Moura
73acaca21e refactor(kernel/default_converter): remove extra_opaque_pred 2015-02-07 19:05:46 -08:00
Leonardo de Moura
a11d1efb42 refactor(kernel/converter): remove mk_default_converter procedures 2015-02-07 19:03:58 -08:00
Leonardo de Moura
a47615009f refactor(kernel/type_checker): replace mk_default_converter with default_converter 2015-02-07 19:01:59 -08:00
Leonardo de Moura
f018fdabb9 refactor(library/kernel_bindings): remove unnecessary procedure 2015-02-07 18:57:46 -08:00
Leonardo de Moura
1640568f6a refactor(library/reducible): use default_converter in reducible, and converters based on reducible hints 2015-02-07 17:31:53 -08:00
Leonardo de Moura
7823905fc1 fix(kernel/default_converter): use is_opaque at is_delta 2015-02-07 17:30:36 -08:00
Leonardo de Moura
b4f1029318 refactor(library/reducible): define opaque_type_checker using default_converter 2015-02-07 17:05:29 -08:00
Leonardo de Moura
e04250f0d8 refactor(library/tactic/rewrite_tactic): use default_converter 2015-02-07 16:44:51 -08:00
Leonardo de Moura
c04c0e8381 refactor(*): remove transparent_scope hack, replace [strict] with [all-transparent] annotation 2015-02-07 15:19:41 -08:00
Leonardo de Moura
7945b8adab refactor(kernel/type_checker): remove useless procedures 2015-02-07 14:55:36 -08:00
Leonardo de Moura
12d320fa19 refactor(kernel/default_converter): avoid carrying type_checker and delayed_justification around in the default_converter 2015-02-07 14:10:56 -08:00
Leonardo de Moura
71b9215a70 refactor(kernel/default_converter): cleanup 2015-02-07 13:49:42 -08:00
Leonardo de Moura
3f06f7b6fd refactor(kernel): move default_converter to its own module 2015-02-07 11:33:37 -08:00
Leonardo de Moura
c2a296b1de feat(library/tactic/apply_tactic): add flag for disabling class instance resolution in the apply tactic 2015-02-06 17:27:24 -08:00
Leonardo de Moura
1557a579ed feat(library/tactic/proof_state): add report_failure flag to proof state
tactic can use the flag to produce nice error messages
2015-02-06 16:29:04 -08:00
Leonardo de Moura
2126b8ec9a feat(library/tactic/apply_tactic): perform class-instance resolution in the apply tactic
closes #360
2015-02-06 16:14:03 -08:00
Leonardo de Moura
18808d133e refactor(library/tactic/goal): move goal => local_context conversion to goal class 2015-02-06 16:09:59 -08:00
Leonardo de Moura
f10424d729 fix(library/tactic/rewrite_tactic): memory leak 2015-02-06 15:24:09 -08:00
Leonardo de Moura
1e8a975daa feat(frontends/lean): extend parser: rewrite "fold" step 2015-02-06 15:22:34 -08:00
Leonardo de Moura
aa70334f8d feat(library/tactic/rewrite_tactic): add "fold" step 2015-02-06 15:21:49 -08:00
Leonardo de Moura
47bd5e53e2 fix(library/tactic/rewrite_tactic): memory leak 2015-02-06 14:24:10 -08:00
Leonardo de Moura
5b25da8c43 feat(frontends/lean): add esimp tactic based on rewrite tactic
closes #358
2015-02-06 14:13:32 -08:00
Leonardo de Moura
7aac9f1fdb feat(library/tactic/rewrite_tactic): use expensive convertability checker at reduce_to steps and trivial goal 2015-02-06 13:53:03 -08:00
Leonardo de Moura
5b2a9dacc2 fix(library/tactic/rewrite_tactic): matcher should unfold only reducible constants 2015-02-06 13:44:04 -08:00
Leonardo de Moura
b4139627e5 feat(library/tactic/rewrite_tactic): add option to prevent any kind of constant unfolding when perfoming pattern matching in the rewrite tactic 2015-02-06 13:27:33 -08:00
Leonardo de Moura
62daf73dd0 chore(library/normalize): fix style 2015-02-06 13:27:10 -08:00
Leonardo de Moura
ba9557bb94 fix(library/tactic/rewrite_tactic): incorrect assertion 2015-02-06 13:02:50 -08:00
Leonardo de Moura
979d6494e9 feat(emacs/lean-syntax): add syntax-highlight for unfold-c hint attribute 2015-02-06 12:57:11 -08:00
Leonardo de Moura
bc95f09828 feat(frontends/lean/decl_cmds): allow user to specify unfold-c hint 2015-02-06 12:56:52 -08:00
Leonardo de Moura
ba641d7c58 feat(library/normalize): validate unfold-c hints 2015-02-06 12:42:53 -08:00
Leonardo de Moura
7205382f8c feat(library/definitional/projection): add "unfold-c" hint to projections 2015-02-06 12:39:57 -08:00
Leonardo de Moura
1bd1f94542 feat(library/normalize): add "unfold-c" hint to normalizer
This hint will also be used in the simplifier
2015-02-06 12:39:49 -08:00
Leonardo de Moura
39446a7215 refactor(library/projection): move is_constructor_app to util 2015-02-06 12:12:25 -08:00
Leonardo de Moura
1043cc8b48 feat(library/normalize): add templates for serializing optional types 2015-02-06 11:59:30 -08:00
Leonardo de Moura
2e626b29fb feat(library/tactic/rewrite_tactic): allow many constants to be provided in a single rewrite unfold step 2015-02-06 11:03:36 -08:00
Leonardo de Moura
56a46ae61e feat(frontends/lean/parse_tactic_location): make rewrite notation more uniform 2015-02-06 10:31:50 -08:00
Leonardo de Moura
264cedb3a6 fix(frontends/lean/rewrite_tactic): incorrect assertion 2015-02-05 20:02:49 -08:00
Leonardo de Moura
e17ba27596 fix(library/tactic/rewrite_tactic): adjust the behavior of class resolution in rewriter
The solution is not very satisfactory. I should investigate it more.
2015-02-05 19:08:47 -08:00
Leonardo de Moura
ffe0d1186e feat(library/tactic/rewrite_tactic): add "reduce_to" step at rewrite tactic 2015-02-05 13:59:55 -08:00
Leonardo de Moura
116c65bff5 feat(library/tactic/rewrite_tactic): add reduction step to rewrite tactic 2015-02-05 13:42:50 -08:00
Leonardo de Moura
38ab4e7b3a feat(frontends/lean/parse_rewrite_tactic): extend rewrite tactic parser
Add support for reduction steps.
2015-02-05 13:24:37 -08:00
Leonardo de Moura
7cdc88701d feat(library/tactic/rewrite_tactic): add "reduction" step to rewrite tactic 2015-02-05 13:16:05 -08:00
Leonardo de Moura
808521223b feat(library/tactic/rewrite_tactic): support constant unfolding in rewrite tactic 2015-02-05 12:58:30 -08:00
Leonardo de Moura
5443609845 fix(frontends/lean/parse_rewrite_tactic): take namespaces into account when parsing constant to unfold 2015-02-05 12:41:11 -08:00
Leonardo de Moura
d6958be7e7 fix(library/tactic/location): replace cache must not be used when only a subset of all occurrences should be replaced at replace_occurrences 2015-02-05 10:50:40 -08:00
Leonardo de Moura
bc8bb1dbd3 feat(kernel/replace_fn): add use_cache flag to replace function 2015-02-05 10:49:18 -08:00
Leonardo de Moura
b6dd1269b9 feat(frontends/lean/builtin_exprs): make 'obtain' arguments visible by default 2015-02-05 10:38:45 -08:00
Leonardo de Moura
dfad24e3f5 feat(frontends/lean): polish rewrite tactic notation 2015-02-05 10:15:58 -08:00
Leonardo de Moura
941b493835 chore(library/tactic/rewrite_tactic): modify param name 2015-02-05 10:04:03 -08:00
Leonardo de Moura
0abfa30ead fix(library/tactic/rewrite_tactic): elaboration bug in the rewrite tactic steps/elements 2015-02-05 10:01:18 -08:00
Leonardo de Moura
15efadfbdc feat(frontends/lean/parse_rewrite_tactic): cleanup rewrite tactic notation
Make a rewrite command sequence explicit.
2015-02-04 20:16:24 -08:00
Leonardo de Moura
14c72e82f6 feat(library/tactic/rewrite_tactic): add support for rewriting hypotheses 2015-02-04 20:04:19 -08:00
Leonardo de Moura
08dcc9e2fc feat(frontends/lean/parse_rewrite_tactic): polish rewrite tactic notation 2015-02-04 19:19:19 -08:00
Leonardo de Moura
55fb678db2 fix(library/tactic/location): clang++ 3.3 compilation problem 2015-02-04 18:48:23 -08:00
Leonardo de Moura
42c2f7eb11 fix(library/tactic/rewrite_tactic): memory leak 2015-02-04 18:40:11 -08:00
Leonardo de Moura
89fde9d829 feat(library/tactic/rewrite_tactic): add maximum number of iterations threshold to rewrite tactic
The idea is to avoid nontermination.
2015-02-04 16:13:15 -08:00
Soonho Kong
ca16381892 feat(bin): add linja.in and LEAN_BIN_DEP cmake option
see the discussion in issue #422
2015-02-04 15:46:08 -08:00
Leonardo de Moura
dc297865d4 chore(library/tactic/rewrite_tactic): fix compilation warnings 2015-02-04 15:34:02 -08:00
Leonardo de Moura
ee079d12f4 feat(library/tactic/rewrite_tactic): remove trivial goal in rewrite_tactic 2015-02-04 15:29:52 -08:00
Leonardo de Moura
f0fac1ae0e feat(library/constants): add eq.intro 2015-02-04 15:27:18 -08:00
Leonardo de Moura
e5381679d6 feat(library/tactic/rewrite_tactic): rewrite goal 2015-02-04 15:17:58 -08:00
Leonardo de Moura
599de0271b feat(frontends/lean/parse_tactic_location): validate occurrence index 2015-02-04 14:04:56 -08:00
Leonardo de Moura
09818adf90 feat(library/tactic/rewrite_tactic): elaborate rewrite rule using unifier 2015-02-04 13:51:32 -08:00
Leonardo de Moura
49323ab598 feat(library/util): add mk_symm 2015-02-04 13:44:55 -08:00
Leonardo de Moura
ccae014ef9 feat(library/tactic/rewrite_tactic): ignore inst_implicit arguments when matching applications of declarations which contain them 2015-02-04 12:14:47 -08:00