Leonardo de Moura
341a9a2010
refactor(library/unifier): remove dead code
2015-03-03 20:14:17 -08:00
Leonardo de Moura
fa79b214b8
fix(frontends/lean): allow 'attribute <id> [priority ...]'
2015-03-03 16:17:32 -08:00
Leonardo de Moura
11aad4449b
feat(frontends/lean): add '[semireducible]' attribute
...
This commit also renames the elements of reducible_status.
The idea is to use in the C++ implementation the same names used in the
Lean front-end.
2015-03-03 10:48:36 -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
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
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
cf56935b01
feat(frontends/lean): improve support for user defined tactics
2015-02-27 16:58:25 -08: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
5b736a2268
feat(frontends/lean): add support for empty match-with expressions
2015-02-26 16:36:15 -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
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
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
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
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
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
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
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
5cbdd77ad0
feat(library/tactic/rewrite_tactic): improve matcher in rewrite_tactic
...
closes #433
2015-02-13 12:40:55 -08:00
Leonardo de Moura
98960cbeda
fix(library/tactic/rewrite_tactic): bug in HoTT mode
2015-02-13 10:09:18 -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
1832fb6f54
feat(*): uniform metaclass names, metaclass validation at 'open' command
2015-02-11 10:35:04 -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
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
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
64ac3fa4ee
feat(library): add 'abbreviation' management module
2015-02-10 17:25:11 -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
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
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
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
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
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
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
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
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
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
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
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
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
14c72e82f6
feat(library/tactic/rewrite_tactic): add support for rewriting hypotheses
2015-02-04 20:04: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
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
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
Leonardo de Moura
0e05c239a5
feat(library/tactic/rewrite_tactic): add custom matcher pluging for rewriter
2015-02-04 11:51:39 -08:00
Leonardo de Moura
d6a7ec4621
chore(library/tactic/rewrite_tactic): fix style
2015-02-04 11:51:39 -08:00
Leonardo de Moura
b4dd2cc729
refactor(library/tactic/rewrite_tactic): more general rewrite step
...
The rule can be an arbitrary expression.
Allow user to provide a pattern that restricts the application of the rule.
2015-02-04 11:51:39 -08:00
Leonardo de Moura
461fd45efc
feat(frontends/lean): allow a different location for each rewrite element
2015-02-04 11:51:39 -08:00
Leonardo de Moura
c845e44777
feat(frontends/lean): parse rewrite tactic
2015-02-04 11:51:39 -08:00
Leonardo de Moura
180cda304e
feat(library/tactic): add rewrite tactic skeleton
...
The tactic has not been implemented yet, but this commit adds all the
support for storing arguments, serializing and deserializing them.
2015-02-04 11:51:39 -08:00
Leonardo de Moura
8a78adc9af
feat(library/tactic): add auxiliary object "location"
...
This object will used to specify the scope of application of tactics
2015-02-04 11:51:39 -08:00
Leonardo de Moura
420da8fd3f
feat(library/projection): store bit saying whether a projection is for a class or not.
2015-02-04 08:54:20 -08:00
Leonardo de Moura
c92f3bec65
refactor(library/definitional/projection): move projection "database" to library/projection
2015-02-04 07:18:43 -08:00
Leonardo de Moura
0e06f4aedc
feat(library/match): extend match_plugin interface
2015-02-03 18:10:38 -08:00
Leonardo de Moura
44e575c895
feat(library/match): improve match_app_core
2015-02-03 17:37:22 -08:00
Leonardo de Moura
790fd9c24b
chore(library/match): remove unused procedure
2015-02-03 15:20:26 -08:00
Leonardo de Moura
f79f43c702
refactor(library/match): use "special" meta-variables instead of free variables to represent placholders in the higher-order matcher
2015-02-03 15:15:04 -08:00
Leonardo de Moura
45e62031e2
fix(library/match): bug in matcher
2015-02-03 13:46:19 -08:00
Leonardo de Moura
4c7a17cc4a
refactor(library/tactic/class_instance_synth): move has_expr_metavar_relaxed to util
2015-02-01 10:59:27 -08:00
Leonardo de Moura
c311e0aba6
chore(library/tactic/inversion_tactic): cleanup
2015-02-01 10:47:32 -08:00
Leonardo de Moura
143143e94c
fix(library/tactic/inversion_tactic): missing normalization step in the inversion_tactic
2015-02-01 10:38:30 -08:00
Leonardo de Moura
e9e1f86b7f
fix(library/app_builder): many bugs, add use_cache option, add tests
2015-01-29 15:30:31 -08:00