Leonardo de Moura
d4e49a8434
feat(library/tactic/intros_tactic): intro without argument should introduce a single variable
...
see #695
2015-12-13 16:28:39 -08:00
Leonardo de Moura
894875dc5c
feat(library/tactic/congruence_tactic): closes #855
2015-12-13 15:03:25 -08:00
Leonardo de Moura
999f23cbc0
feat(kernel/expr_eq_fn): take names into account when CompareBinderInfo is true
...
This is the correct fix for the id declaration pretty printing
discrepancy reported by Daniel.
TODO: decide whether we need another eq-mode where names are ignored.
For example, in blast, it makes sense to increase sharing by ignoring
binder names.
2015-12-13 14:47:11 -08:00
Leonardo de Moura
ce622e9179
feat(frontends/lean): add auto-include for structures and inductive decls
2015-12-13 13:39:34 -08:00
Leonardo de Moura
20de22a8ad
feat(frontends/lean): automatically include anonymous instance implicit variables/parameters (whenever their parameters have been included)
2015-12-13 13:20:54 -08:00
Leonardo de Moura
9a4a12899a
fix(frontends/lean/pp): make sure pp doesn't group [] arguments
2015-12-13 12:23:22 -08:00
Leonardo de Moura
a9b567296c
feat(frontends/lean/parser): add anonymous inst implicit name generator
2015-12-13 11:46:48 -08:00
Leonardo de Moura
d26a83da02
feat(frontends/lean/parser): allow anonymous instance implicit arguments
2015-12-13 11:46:48 -08:00
Leonardo de Moura
edad31a9b1
feat(shell/lean): use locking also for the index file
2015-12-12 21:50:08 -08:00
Leonardo de Moura
4dc3764a02
feat(util,library,shell): basic locking mechanism
...
We still have to test on Windows.
see issue #925
2015-12-12 21:26:13 -08:00
Leonardo de Moura
b7de10a6d2
feat(library/trace): allow user to disable subclasses of a trace class
...
Example:
set_option trace.blast true -- enables trace.blast class and all subclasses
set_option trace.blast.action false -- disables the given subclass
Result: all blast classes are traced but blast.action
2015-12-11 11:03:16 -08:00
Leonardo de Moura
7f1800962a
feat(frontends/lean/pp): allow user to override pp.all setting
...
see #922
2015-12-11 10:40:48 -08:00
Leonardo de Moura
ac0bd539b0
feat(frontends/lean/notation_cmd): allow 'abstract ... end' to be used in notation declarations
...
helps #825
2015-12-11 09:55:27 -08:00
Leonardo de Moura
eda26a9099
fix(emacs/lean-company): candidate fix for #846
2015-12-11 08:12:43 -08:00
Daniel Selsam
2b1e7e7759
feat(frontends/lean/pp): all disables numerals
2015-12-10 23:31:40 -08:00
Leonardo de Moura
abbb2cfbbd
feat(library/export): take binder labels into account when max-sharing expression during .olean generation
2015-12-10 23:27:44 -08:00
Leonardo de Moura
3057dde885
fix(library/class,library/coercion): fixes #852
2015-12-10 22:52:02 -08:00
Leonardo de Moura
cf61adc5d5
feat(frontends/lean): identifiers starting with '_' are now reserved
2015-12-10 22:32:03 -08:00
Leonardo de Moura
7b29ee1666
fix(library/tactic/induction_tactic): fixes #892
2015-12-10 10:52:57 -08:00
Leonardo de Moura
8094ca1c70
fix(library/blast/backward): crash when pretty printing backward rule set
...
We make sure it doesn't depend on the blast state.
2015-12-10 10:38:53 -08:00
Leonardo de Moura
1abaa9eb71
fix(frontends/lean/parser): fixes #858
2015-12-10 10:31:14 -08:00
Leonardo de Moura
8b3cbb8fdd
fix(library/tactic/induction_tactic): apply substitution to hypothesis type (it may contain metavars)
...
closes #876
2015-12-10 10:11:55 -08:00
Leonardo de Moura
c9ff175cf4
fix(library/tactic/induction_tactic): fixes #893
2015-12-10 10:11:55 -08:00
Leonardo de Moura
1f8de7b50b
feat(library/blast): refine trace messages
2015-12-09 18:38:20 -08:00
Leonardo de Moura
34e85be970
feat(library/blast): add 'blast.deadend' tracing option
2015-12-09 17:45:36 -08:00
Leonardo de Moura
1502248d30
feat(library/blast): trace strategy name
2015-12-09 17:13:28 -08:00
Leonardo de Moura
725101c777
chore(frontends/lean): cleaup
2015-12-09 12:43:44 -08:00
Floris van Doorn
46739c8b70
feat(hott/algebra): port abstract structures
2015-12-09 12:34:06 -08:00
Leonardo de Moura
6abf2fd975
feat(library/blast/congruence_closure): avoid unnecessary propagations in the congruence closure module
2015-12-09 12:17:51 -08:00
Leonardo de Moura
6bbbc3d50e
feat(library/blast): improve trace messages
2015-12-09 11:38:39 -08:00
Leonardo de Moura
a7f5d6603a
feat(library/blast/actions/recursor_action): trace recursor name
2015-12-09 11:25:05 -08:00
Leonardo de Moura
3f9549485f
feat(frontends/lean/parser): restore config options in the end of sections/namespaces
2015-12-09 11:24:37 -08:00
Leonardo de Moura
f9a669665a
feat(library/blast/backward/backward_action): display lemma name in backward action
2015-12-09 11:07:53 -08:00
Leonardo de Moura
cbc3c0cf4f
feat(frontends/lean): suppress profiling information for declarations that take less than 0.01 secs to be processed
2015-12-09 10:48:36 -08:00
Leonardo de Moura
0acdcd487b
feat(frontends/lean): add 'print aliases' command
2015-12-09 10:39:40 -08:00
Leonardo de Moura
53a05e845e
chore(library/blast/trace): fix style
2015-12-09 09:35:46 -08:00
Leonardo de Moura
fbaa3e13ab
chore(library/blast/simplifier/simplifier): use '-->' for tracing a rewrite
2015-12-09 08:06:05 -08:00
Leonardo de Moura
6b91505c0e
feat(library/blast/trace): improve trace depth
2015-12-09 08:04:02 -08:00
Leonardo de Moura
e9d6326b88
feat(library/blast/trace): do not show common prefix between states when tracing
2015-12-09 07:55:12 -08:00
Leonardo de Moura
c1a4e0ee4f
feat(library/blast): trace target
2015-12-09 07:34:15 -08:00
Leonardo de Moura
36f3549c44
fix(library/blast/blast): make sure blast uses the given ios options for tracing
...
They might have been updated using the with_options tactic
2015-12-09 07:21:18 -08:00
Leonardo de Moura
a3346e997b
fix(library/class_instance_resolution): signature has changed
2015-12-09 07:14:39 -08:00
Leonardo de Moura
c6fc18a8d1
chore(library/blast/simplifier/simplifier): remove "dead" field
2015-12-09 07:13:54 -08:00
Leonardo de Moura
aed0c7cccf
chore(library/blast/state): trace msg
2015-12-09 07:13:19 -08:00
Leonardo de Moura
08052c1988
feat(library/blast): improve tracing
2015-12-08 19:53:25 -08:00
Leonardo de Moura
429527eb72
refactor(library/blast): move to new tracing infrastructure
2015-12-08 19:37:06 -08:00
Leonardo de Moura
370f9a6eec
fix(library/trace): use null output channel when trace environment is not set
...
This is important when multiple threads are being used, and the trace
environment is not set for a child thread
2015-12-08 18:37:57 -08:00
Leonardo de Moura
3c1f49de8f
fix(library/io_state): typo
2015-12-08 18:28:54 -08:00
Leonardo de Moura
78533cde0a
chore(library/blast/blast): reorg blast tracing
2015-12-08 15:57:25 -08:00
Leonardo de Moura
f0c42defc8
feat(library/blast/grinder): add tracing for suspicious event
2015-12-08 15:53:43 -08:00
Leonardo de Moura
81b093271d
fix(library/io_state_stream): option kind when pretty printing
2015-12-08 15:48:10 -08:00
Leonardo de Moura
34b944a71e
refactor(frontends/lean): remove broken 'migrate' command
2015-12-08 15:40:49 -08:00
Leonardo de Moura
b145a7332a
feat(library/blast/congruence_closure): use new tracing infrastructure
2015-12-08 15:18:21 -08:00
Leonardo de Moura
7da64a768f
refactor(library/type_context): with the new tracing infrastructure, type_context doesn't need an io_state
2015-12-08 14:58:08 -08:00
Leonardo de Moura
58ab526d44
feat(library/type_context): use new tracing infrastructure in new type class resolution procedure
2015-12-08 14:34:20 -08:00
Leonardo de Moura
9b69ccd2f8
feat(library/app_builder): add trace messages to app_builder
2015-12-08 13:43:15 -08:00
Leonardo de Moura
9df10a4048
feat(library): add tracing messages to app_builder and congr_lemma_manager
2015-12-08 13:36:11 -08:00
Leonardo de Moura
e5a6bc5b85
feat(library/blast/simplifier/simplifier): move to new tracing framework
2015-12-08 12:59:30 -08:00
Leonardo de Moura
6b1469264d
feat(library/trace): add new tracing infrastructure
2015-12-08 11:58:03 -08:00
Leonardo de Moura
a2ef818ff3
chore(*): remove old tracing framework
2015-12-08 09:06:10 -08:00
Leonardo de Moura
50df6b5698
feat(frontends/lean): rename '[intro]' ==> '[intro!]' and '[backward]' ==> '[intro]'
2015-12-07 21:33:35 -08:00
Leonardo de Moura
041c1cbb17
feat(library/blast): add strategies "grind" and "core_grind"
2015-12-07 20:30:59 -08:00
Leonardo de Moura
be99d5f26f
fix(library/blast/strategies/preprocess_strategy): do not show failure state again
2015-12-07 19:31:34 -08:00
Leonardo de Moura
6bfc22de11
feat(library/blast/grinder): add grinder strategy
2015-12-07 19:09:10 -08:00
Leonardo de Moura
eefc57af2f
feat(library/blast/grinder): add grinder actions
2015-12-07 18:43:15 -08:00
Leonardo de Moura
48bc18d492
feat(library/blast/grinder/intro_elim_lemmas): add intro/elim lemmas validation
2015-12-07 18:43:15 -08:00
Leonardo de Moura
295b1d21f5
feat(frontends/lean): add '[intro]' and '[elim]' annotations
2015-12-07 18:43:15 -08:00
Leonardo de Moura
5f5e4fe7fb
feat(library/blast/grinder): add intro/elim lemmas
2015-12-07 18:43:12 -08:00
Leonardo de Moura
e417581e4c
feat(util): add priority_queue
2015-12-07 17:05:01 -08:00
Leonardo de Moura
c3b5ce0785
feat(frontends/lean/builtin_cmds): show metavariable arguments when pretty printing patterns
2015-12-07 12:39:51 -08:00
Daniel Selsam
18f224c420
fix(library/blast/actions/simple_actions): fix assert
2015-12-07 12:32:22 -08:00
Daniel Selsam
a9aeb69789
feat(frontends/lean/builtin_cmds): print metas for patterns
2015-12-07 12:32:22 -08:00
Leonardo de Moura
121648dda6
fix(library/congr_lemma_manager): issue with reducible annotation when generating congruence lemmas
2015-12-07 12:09:30 -08:00
Leonardo de Moura
f31553d916
feat(library/blast/strategies/portfolio): add more strategies for debugging purposes
2015-12-07 11:59:21 -08:00
Leonardo de Moura
54c0921bbb
feat(library/blast/forward/pattern): consider patterns with nested lambdas in the pattern inference procedure
2015-12-07 10:39:42 -08:00
Leonardo de Moura
752f027705
chore(library/blast/state): style
2015-12-07 09:48:00 -08:00
Leonardo de Moura
f5fcd12f3f
feat(library/blast/simplifier/simplifier): use pretty printer when generating tracing messages
2015-12-07 09:46:28 -08:00
Leonardo de Moura
85379b7706
feat(library/blast/actions/simple_actions): make sure contradiction action works even if classical logic support is not enabled
...
not (not (not a)) -> not a
2015-12-07 09:30:14 -08:00
Leonardo de Moura
3c66e65a63
feat(library/blast/strategies/portfolio): throw exception for unknown strategy
2015-12-07 09:27:48 -08:00
Leonardo de Moura
d7fda94686
fix(library/blast/strategies/portfolio): typo
2015-12-07 08:47:14 -08:00
Leonardo de Moura
c7390684ba
feat(library/blast/strategies/portfolio): add 'unit' strategy for testing unit propagation
2015-12-07 08:45:54 -08:00
Leonardo de Moura
964bb140be
feat(library/blast): add 'blast.trace_preprocessor'
2015-12-07 08:38:11 -08:00
Leonardo de Moura
2d007c7c23
feat(library/blast/simplifier/simp_rule_set): rename metaclass to '[simps]'
...
The previous name [rrs] was too cryptic.
2015-12-06 20:49:27 -08:00
Leonardo de Moura
1eb28b842e
feat(library/blast/simplifier): add eta-reduction to simplifier
2015-12-06 20:41:25 -08:00
Leonardo de Moura
7eb1525ba5
feat(shell/lean): add option '--debug=tag' for activating conditional assertions in the command line in debug mode
2015-12-06 15:47:26 -08:00
Leonardo de Moura
b7c96722c7
perf(util/rb_tree): mark check_invariant as a conditional/tagged assertion
...
This assertion is proportional to the tree size. So, it is too expensive
to check when we import many declarations.
2015-12-06 15:45:55 -08:00
Leonardo de Moura
4cd4b6236d
fix(library/tactic/with_options_tactic): make sure we can load the standard library containing the auxiliary macro options_expr with trust level 0
2015-12-06 15:17:10 -08:00
Leonardo de Moura
b044f9e8c1
feat(library/blast/strategies): add "ematch" strategy for testing ematching
2015-12-06 15:01:49 -08:00
Leonardo de Moura
67e291ac84
feat(library/blast/strategies): add strategy for testing congruence closure module
2015-12-06 14:33:21 -08:00
Leonardo de Moura
39dbbd687b
feat(library/blast/strategy): add 'orelse' combinator
2015-12-06 14:12:44 -08:00
Leonardo de Moura
732a92de05
feat(frontends/lean): add 'simp' as shortcut for 'with_options [blast.strategy "simp"] blast'
2015-12-06 13:14:04 -08:00
Leonardo de Moura
c105d2fe47
feat(library/blast): add simp strategies
2015-12-06 13:04:41 -08:00
Leonardo de Moura
80725cc416
fix(library): references to algebra in the source code
2015-12-05 23:50:26 -08:00
Leonardo de Moura
61b3c7c655
chore(library/blast): disable spurious style warnings
2015-12-05 21:48:50 -08:00
Leonardo de Moura
648f6c5f82
fix(library/blast/strategies): constructor action was being applied too soon
2015-12-05 19:44:07 -08:00
Leonardo de Moura
20d7727a9c
fix(library/blast/forward/pattern): pattern inference bug
2015-12-05 19:38:24 -08:00
Leonardo de Moura
aa998bfad3
fix(library/fun_info_manager): reducibility issue
2015-12-05 19:26:06 -08:00
Leonardo de Moura
6193816f6a
fix(library/tmp_type_context): bug at pop()
2015-12-05 19:14:33 -08:00
Leonardo de Moura
df567717f8
feat(library/blast/strategies): add 'blast.strategy "preprocess"'
2015-12-05 18:17:15 -08:00
Leonardo de Moura
11400edd4a
refactor(library/blast): blast strategy framework
2015-12-05 16:55:23 -08:00
Leonardo de Moura
eeae5d1b6c
feat(library/blast/options): add 'blast.strategy' option
2015-12-05 16:54:21 -08:00
Leonardo de Moura
6102938717
fix(library/blast/hypothesis): incorrect method being invoked
2015-12-05 16:53:47 -08:00
Leonardo de Moura
b409720ac7
feat(util/sexpr/option_declarations): add register_string_option
2015-12-05 16:53:16 -08:00
Leonardo de Moura
d7150f210c
fix(library/blast/trace): avoid unnecessary trace information
2015-12-05 16:52:41 -08:00
Leonardo de Moura
96b37241bd
feat(util/list): add is_suffix_eqp
2015-12-05 16:52:18 -08:00
Leonardo de Moura
3b40b09a36
refactor(library/blast): rename strategy to strategy_fn
2015-12-05 13:25:20 -08:00
Leonardo de Moura
fa938bb94c
feat(frontends/lean/decl_cmds): allow modifier to be provided after the 'attribute' keyword, test 'at' keyword
2015-12-05 11:50:08 -08:00
Leonardo de Moura
07419617b0
fix(library/scoped_ext): assertion
2015-12-05 11:36:52 -08:00
Leonardo de Moura
e5aab3fd63
feat(library/scoped_ext,frontends/lean): add support for setting attributes into different namespaces
2015-12-05 11:15:02 -08:00
Daniel Selsam
08e0fc796b
feat(library/blast/actions): by_contradiction action
2015-12-04 20:19:05 -08:00
Leonardo de Moura
78b1749c2c
feat(library/blast): make sure blast can be interrupted
2015-12-04 18:44:04 -08:00
Daniel Selsam
a04c28d4c9
refactor(library/algebra): construct simplifier sets incrementally
2015-12-04 18:28:56 -08:00
Leonardo de Moura
2682fe9525
feat(library/blast/blast): force 'ne' to be always transparent
2015-12-04 18:24:36 -08:00
Leonardo de Moura
af01e7fea8
chore(library/blast): remove "leftover" file used in the old blast architecture
2015-12-04 17:34:56 -08:00
Leonardo de Moura
5da1b52e47
feat(library/blast/unit/unit_propagate): make sure unif_propagate works even if 'not' is marked as '[reducible]'
2015-12-04 16:49:21 -08:00
Leonardo de Moura
00e34683f2
feat(library/app_builder): (try to) address not-issue and other reducibility annotation related issues in the app_builder
2015-12-04 16:03:06 -08:00
Leonardo de Moura
a8b6a286dd
fix(library/app_builder): make sure app_builder works even if iff
is marked as reducible
2015-12-04 13:51:56 -08:00
Leonardo de Moura
93b17e2ec1
refactor(kernel/ext_exception): add ext_exception
...
Now, any exception that requires pretty printing support should be a
subclass of ext_exception
2015-12-04 13:22:42 -08:00
Leonardo de Moura
4bf9fc2cf5
refactor(library/blast): move simple_strategy to strategies folder
...
We will add more strategies in the future.
2015-12-04 11:46:56 -08:00
Leonardo de Moura
73622150a6
refactor(library/blast): move actions to actions folder
...
to make Daniel happy.
2015-12-04 10:00:04 -08:00
Leonardo de Moura
07cb35fd3c
fix(library/abstract_expr_manager): incorrect handling of de-Bruijn variables
2015-12-04 09:27:21 -08:00
Leonardo de Moura
769da9c95a
fix(library/unifier): missing occurs check
2015-12-04 09:14:55 -08:00
Leonardo de Moura
8c431bdb20
chore(library/blast/imp_extension): fix unused argument warning
2015-12-04 08:34:20 -08:00
Daniel Selsam
9689085834
fix(library/abstract_expr_manager): instantiate before calling mk_congr
2015-12-04 08:31:38 -08:00
Daniel Selsam
d729302718
fix(library/abstract_expr_manager): remove unnecessary include
2015-12-04 08:31:38 -08:00
Daniel Selsam
25a3cff54e
refactor(library/abstract_expr_manager): remove fun_info_manager
2015-12-04 08:31:38 -08:00
Daniel Selsam
7854158751
fix(library/abstract_expr_manager): only squash Cast subsingletons
2015-12-04 08:31:38 -08:00
Daniel Selsam
6e478696d2
feat(library/blast/unit): preprocessor placeholder
2015-12-04 08:30:04 -08:00
Daniel Selsam
0df4556eb5
feat(library/blast/unit): quantified and non-Prop facts
2015-12-04 08:30:03 -08:00
Daniel Selsam
c604333af2
fix(library/blast/unit): typo
2015-12-04 08:30:03 -08:00
Daniel Selsam
2bf9989bd9
refactor(library/blast/unit): simplify module
2015-12-04 08:30:03 -08:00
Leonardo de Moura
61db311227
chore(library/blast/imp_extension): style
2015-12-04 08:26:03 -08:00
Daniel Selsam
606e28ca99
refactor(library/blast/imp_extension): buffer instead of list
2015-12-04 08:22:46 -08:00
Daniel Selsam
601dc544b6
feat(library/blast/imp_extension): imperative branch extensions
2015-12-04 08:22:46 -08:00
Leonardo de Moura
83b9769225
fix(library/blast): init_classical_flag
...
The procedure get_namespaces does not return the set of opened
namespaces. I added a comment there to clarify that.
2015-12-04 08:13:19 -08:00
Daniel Selsam
0dfac6d07e
feat(library/blast): classical flag
2015-12-04 07:53:05 -08:00
Leonardo de Moura
fe020b49c1
chore(library/scoped_ext): add comment
2015-12-04 07:52:28 -08:00
Leonardo de Moura
6bbe72190d
fix(library/congr_lemma_manager): bug in congruence lemma generator
2015-12-03 14:21:30 -08:00
Leonardo de Moura
038369533e
fix(library/blast/recursor_action): indexed families
2015-12-02 23:43:15 -08:00
Leonardo de Moura
87995b96e3
fix(library/blast/congruence_closure): is_relation_app ==> is_equivalence_relation_app
2015-12-02 23:28:57 -08:00
Daniel Selsam
42dcbebd1c
fix(library/blast/forward/ematch): typo
2015-12-02 23:17:24 -08:00
Daniel Selsam
139536896c
feat(library/light_lt_manager): light wrappers for ordered rewriting
2015-12-02 22:56:54 -08:00
Daniel Selsam
c064f0cd82
fix(library/blast/simplifier/ceqv): typos
2015-12-02 22:56:00 -08:00
Daniel Selsam
aac50873fe
fix(library/num): fix memory leak
2015-12-02 22:55:18 -08:00
Leonardo de Moura
acb5b969c6
fix(library/blast/subst_action): missing occurs check
2015-12-02 22:52:55 -08:00
Leonardo de Moura
d2054bb65c
chore(library/blast): fix style
2015-12-02 22:52:55 -08:00
Leonardo de Moura
028ef47c84
feat(frontends/lean,library/blast/forward/pattern): check whether patterns can be inferred at declaration time
2015-12-02 22:52:55 -08:00
Leonardo de Moura
f84c6a6cfa
fix(library/blast,frontends/lean): handling pattern hints after unfolding
2015-12-02 22:52:55 -08:00
Leonardo de Moura
950f356d9a
refactor(library/blast,frontends/lean): forward pattern index
2015-12-02 22:52:55 -08:00
Leonardo de Moura
562d7b3e4a
feat(library/blast/blast): add support in blast for controlling whether macros are unfolded or not at whnf/normalize
2015-12-02 22:52:55 -08:00