Leonardo de Moura
|
c923120db5
|
feat(library/blast/congruence_closure): expose mk_ext_congr_lemma
|
2015-11-24 18:48:23 -08:00 |
|
Leonardo de Moura
|
651e3834ba
|
feat(library/blast/congruence_closure): allow meta-variables in the congruence closure module after partitions have been frozen
|
2015-11-24 18:48:23 -08:00 |
|
Leonardo de Moura
|
67a4cd3972
|
feat(frontends/lean): add print [no_pattern] command
|
2015-11-24 18:48:22 -08:00 |
|
Leonardo de Moura
|
8c729d1620
|
feat(library/blast/forward): start 'pattern' module
|
2015-11-24 18:48:22 -08:00 |
|
Leonardo de Moura
|
c50d7ac4b8
|
feat(library/blast/congruence_closure): add add/assume API
|
2015-11-23 15:21:28 -08:00 |
|
Leonardo de Moura
|
f0ccffe968
|
feat(library/blast/congruence_closure): track mod-time
|
2015-11-23 15:03:46 -08:00 |
|
Leonardo de Moura
|
712f60d003
|
feat(library/blast/congruence_closure): expose get_cc()
|
2015-11-23 14:41:22 -08:00 |
|
Leonardo de Moura
|
11f838c13a
|
perf(library/blast/congruence_closure): only copy parents that are still congruence roots
|
2015-11-23 14:38:31 -08:00 |
|
Leonardo de Moura
|
f4a7268bd7
|
fix(library/blast/congruence_closure): bug in add_eqv_step
|
2015-11-23 14:26:33 -08:00 |
|
Leonardo de Moura
|
f1a3f8ec9d
|
feat(library/blast/congruence_closure): add blast.trace_cc option
|
2015-11-23 14:24:59 -08:00 |
|
Daniel Selsam
|
46e60abda6
|
feat(library/blast/forward): branch extension
|
2015-11-23 13:58:13 -08:00 |
|
Daniel Selsam
|
a8700e6778
|
refactor(library/blast/unit): rename unit propagation module
|
2015-11-23 13:58:13 -08:00 |
|
Leonardo de Moura
|
20cfe9e02e
|
feat(library/blast/state): improve lazy initialization
|
2015-11-23 11:32:45 -08:00 |
|
Leonardo de Moura
|
3ee32c02d8
|
feat(library/blast/congruence_closure): add freeze_partitions API for qcf procedure
|
2015-11-23 11:26:15 -08:00 |
|
Leonardo de Moura
|
565a294489
|
fix(library/blast/congruence_closure): bug at is_congr_root
|
2015-11-23 11:25:58 -08:00 |
|
Leonardo de Moura
|
8632b7ae27
|
chore(library/blast/backward/backward_strategy): remove unused param
|
2015-11-22 18:27:23 -08:00 |
|
Leonardo de Moura
|
b442fe66b2
|
chore(library/blast/simple_strategy): fix style
|
2015-11-22 18:24:59 -08:00 |
|
Leonardo de Moura
|
0fcf8ed7d2
|
refactor(library/blast): hypothesis activation protocol
|
2015-11-22 18:22:26 -08:00 |
|
Leonardo de Moura
|
1bd827dffc
|
feat(library/blast/simplifier/simplifier_actions): add simplify_hypothesis_action
|
2015-11-22 17:49:00 -08:00 |
|
Leonardo de Moura
|
8681b34129
|
fix(library/blast/simplifier/simplifier_actions): update target when simplifier produces a definitionally equal output that is not structurally equal
This update also uses the even target_updated to decide when the target
needs to be updated.
|
2015-11-22 17:25:54 -08:00 |
|
Leonardo de Moura
|
0c4fb6b3d5
|
feat(library/blast): add option 'blast.recursor' for disabling recursor action
|
2015-11-22 17:15:38 -08:00 |
|
Leonardo de Moura
|
56282a11f6
|
feat(library/blast/blast): use type_context normalizer
|
2015-11-22 17:04:04 -08:00 |
|
Leonardo de Moura
|
6b248f44eb
|
feat(library/blast): add option for showing the blast failure state
|
2015-11-22 16:32:07 -08:00 |
|
Leonardo de Moura
|
fc461ce832
|
feat(library/app_builder): avoid redundant proof terms at mk_of_iff_true and mk_not_of_iff_false
|
2015-11-22 15:49:17 -08:00 |
|
Leonardo de Moura
|
94f7b7f95d
|
feat(library/blast/congruence_closure): add support for propagating units in the congruence closure module
See blast_cc12.lean for example.
|
2015-11-22 15:39:44 -08:00 |
|
Leonardo de Moura
|
f326e731a0
|
fix(library/blast/subst_action): do not apply subst to (H : a = a), let the discard_action to get rid of it
|
2015-11-22 15:37:32 -08:00 |
|
Leonardo de Moura
|
6fc0e41439
|
fix(library/blast/congruence_closure): proof generation for congruences such as (a = b) <-> (b = a)
The congruence closure module treats these two terms as the same thing.
So, we should take this into account when building proofs
|
2015-11-21 19:50:59 -08:00 |
|
Leonardo de Moura
|
5e9914ef45
|
feat(library/blast/congruence_closure): avoid eq.rec if major premise is eq.refl
|
2015-11-21 19:00:16 -08:00 |
|
Leonardo de Moura
|
607552e51f
|
feat(library/blast): add target_updated event
|
2015-11-21 17:58:21 -08:00 |
|
Leonardo de Moura
|
091b0f0cc7
|
feat(library/blast): add option for disabling congruence closure
|
2015-11-21 17:45:25 -08:00 |
|
Leonardo de Moura
|
c4328aad3a
|
feat(library/blast/congruence_closure): missing case
|
2015-11-21 17:40:15 -08:00 |
|
Leonardo de Moura
|
c49caf3740
|
feat(library/blast/congruence_closure): add support for user-defined congruence lemmas in the congruence closure module
|
2015-11-21 14:43:51 -08:00 |
|
Leonardo de Moura
|
a61869ba1a
|
feat(library/blast): add option for disabling simplifier
|
2015-11-21 12:19:55 -08:00 |
|
Leonardo de Moura
|
85601c5a83
|
chore(library/blast/congruence_closure): fix style
|
2015-11-20 16:46:28 -08:00 |
|
Leonardo de Moura
|
8f368cebbf
|
feat(library/blast/congruence_closure): lift equalities
|
2015-11-20 13:48:22 -08:00 |
|
Leonardo de Moura
|
28970ef717
|
feat(library/blast/congruence_closure): proof extraction
|
2015-11-20 12:23:32 -08:00 |
|
Leonardo de Moura
|
1e3f549c39
|
feat(library/blast/subst_action): add option for disabling subst action
|
2015-11-20 10:53:02 -08:00 |
|
Leonardo de Moura
|
028a2ab785
|
feat(library/blast): add get_config()
|
2015-11-20 10:39:26 -08:00 |
|
Leonardo de Moura
|
c76b04719c
|
feat(library/app_builder): add lift_from_eq
|
2015-11-20 10:27:58 -08:00 |
|
Leonardo de Moura
|
f6ba746b03
|
chore(library/blast/trace): fix signature
|
2015-11-20 08:55:44 -08:00 |
|
Leonardo de Moura
|
ffacf70230
|
chore(library/io_state_stream): remove unused variable
|
2015-11-20 08:20:29 -08:00 |
|
Leonardo de Moura
|
628608ca7d
|
chore(library/blast/congruence_closure): fix style
|
2015-11-19 19:49:59 -08:00 |
|
Leonardo de Moura
|
d5b0a45aa4
|
chore(library/blast/simplifier/simplifier_actions): fix warnings
|
2015-11-19 19:47:04 -08:00 |
|
Daniel Selsam
|
21cb409e6c
|
refactor(library/blast/simplifier): move simplifier module into blast
|
2015-11-19 19:43:04 -08:00 |
|
Daniel Selsam
|
2c72f46adc
|
feat(library/blast/forward): opportunistically delete dead hypotheses
|
2015-11-19 19:40:40 -08:00 |
|
Leonardo de Moura
|
2d93fe4b76
|
feat(library/blast/congruence_closure): implement congruence closure
Proof extraction is still missing
|
2015-11-19 19:37:11 -08:00 |
|
Leonardo de Moura
|
968b615390
|
feat(library/blast/congruence_closure): add "add_eqv"
|
2015-11-19 15:56:21 -08:00 |
|
Leonardo de Moura
|
f9ced4b3e1
|
feat(library/blast): add "ppb" helper class for pretty printing expression in blast
|
2015-11-19 15:55:22 -08:00 |
|
Leonardo de Moura
|
86ad8c348e
|
fix(library/norm_num): memory leaks
|
2015-11-19 14:32:47 -08:00 |
|
Leonardo de Moura
|
ee3083c12c
|
feat(library/blast): add action based on congruence closure module
|
2015-11-19 12:30:45 -08:00 |
|
Daniel Selsam
|
5ada4312d7
|
feat(library/blast/forward): propositional forward chaining
|
2015-11-19 11:44:53 -08:00 |
|
Daniel Selsam
|
3523e32345
|
chore(library/blast/simplifier): use blast's app_builder
|
2015-11-19 10:57:33 -08:00 |
|
Daniel Selsam
|
e856de5ab4
|
chore(library/blast/simplifier): remove old comment
|
2015-11-19 10:57:33 -08:00 |
|
Leonardo de Moura
|
193c446fc4
|
fix(library/blast/blast): metavariable assignment validation
|
2015-11-19 10:52:18 -08:00 |
|
Leonardo de Moura
|
3bd83b8e41
|
feat(library/blast/backward/backward_strategy): don't try constructor action by default
|
2015-11-18 19:14:37 -08:00 |
|
Leonardo de Moura
|
aa1451888c
|
fix(library/blast): spurious trace messages, typo
|
2015-11-18 19:12:29 -08:00 |
|
Leonardo de Moura
|
d85e26898e
|
fix(library/blast): uninitialized variables
|
2015-11-18 18:56:19 -08:00 |
|
Leonardo de Moura
|
fbeee674b3
|
chore(library/blast/union_find): remove dead code
|
2015-11-18 18:35:00 -08:00 |
|
Leonardo de Moura
|
f8a20341cb
|
refactor(library/blast): get_hypothesis_decl return a reference
|
2015-11-18 18:20:02 -08:00 |
|
Leonardo de Moura
|
b61eb3ea0c
|
fix(library/blast): compilation errors in debug mode
|
2015-11-18 18:01:58 -08:00 |
|
Leonardo de Moura
|
808e6f0089
|
chore(library/blast/backward/backward_rule_set): unused variable
|
2015-11-18 17:59:31 -08:00 |
|
Daniel Selsam
|
413989afd6
|
feat(library/blast/backward): backward chaining strategy
|
2015-11-18 17:48:39 -08:00 |
|
Daniel Selsam
|
39a9ab6bf8
|
fix(library/blast/simplifier): misc cleanup
|
2015-11-18 17:32:08 -08:00 |
|
Leonardo de Moura
|
5251752b9c
|
chore(library/blast/state): document branch extension methods
|
2015-11-18 17:29:01 -08:00 |
|
Leonardo de Moura
|
70a1aebfe3
|
feat(library/blast/state): add initialized event handler for branch extensions.
|
2015-11-18 17:24:04 -08:00 |
|
Leonardo de Moura
|
107c155574
|
chore(library/blast/state): fix style
|
2015-11-18 15:50:24 -08:00 |
|
Leonardo de Moura
|
223e77c4a9
|
refactor(library/blast): use branch_extension for recursor_action
|
2015-11-18 15:49:02 -08:00 |
|
Leonardo de Moura
|
6823a34935
|
feat(library/blast): branch extensions
|
2015-11-18 15:30:59 -08:00 |
|
Leonardo de Moura
|
bf5fe8d180
|
feat(library/blast): add trace module
|
2015-11-18 12:59:53 -08:00 |
|
Leonardo de Moura
|
453e90261b
|
refactor(library/blast): make sure all actions return action_result, add macros for simplifying strategy definition
revert is not an action, but a procedure for helping us to build actions.
|
2015-11-18 12:29:43 -08:00 |
|
Leonardo de Moura
|
59e676e4fa
|
fix(library/blast/strategy): initialization
A strategy is supposed to solve the current branch.
|
2015-11-18 10:20:02 -08:00 |
|
Leonardo de Moura
|
93a0f62cd3
|
chore(library/blast/congruence_closure): fix style
|
2015-11-17 19:16:42 -08:00 |
|
Leonardo de Moura
|
dde4aa72f9
|
chore(library/blast/congruence_closure): fix warnings
|
2015-11-17 19:14:12 -08:00 |
|
Leonardo de Moura
|
3734cc671a
|
feat(library/blast/congruence_closure): add is_eqv
|
2015-11-17 19:10:00 -08:00 |
|
Leonardo de Moura
|
d833410f0d
|
feat(library/blast/congruence_closure): add proved/disproved aux methods
|
2015-11-17 19:06:23 -08:00 |
|
Leonardo de Moura
|
3f6b79227f
|
refactor(library/blast/congruence_closure,library/app_builder): add helper methods for theorems heavily used in the congruence closure module
|
2015-11-17 18:57:40 -08:00 |
|
Leonardo de Moura
|
3de9a89d93
|
feat(library/blast/congruence_closure): congruence_closure basics
|
2015-11-17 18:45:22 -08:00 |
|
Leonardo de Moura
|
de67288305
|
fix(library/app_builder): mk_rel supports relations where the lhs and rhs are not necessarily the last two arguments (e.g., heq)
|
2015-11-17 18:45:22 -08:00 |
|
Leonardo de Moura
|
16bcd2f522
|
feat(congr_lemma_manager): add congruence lemma for equivalence relation over iff/eq
|
2015-11-17 18:45:22 -08:00 |
|
Leonardo de Moura
|
491c7c55e1
|
feat(library/simplifier/simp_rule_set): add priorities for simp and congr rules
|
2015-11-16 22:34:06 -08:00 |
|
Leonardo de Moura
|
f7c6eee791
|
feat(library/head_map): add head_map_prio
|
2015-11-16 22:07:04 -08:00 |
|
Daniel Selsam
|
a689c66b1e
|
fix(library/blast/simplifier): handle scalar in fusion
|
2015-11-16 20:39:15 -08:00 |
|
Daniel Selsam
|
49ff8640d9
|
fix(library/blast/simplifier): use ac rules for numerals
|
2015-11-16 20:39:15 -08:00 |
|
Daniel Selsam
|
8ca5d87f0b
|
feat(library/blast/simplifier): rely on norm_num for recursion
|
2015-11-16 20:33:22 -08:00 |
|
Daniel Selsam
|
56efc969fd
|
feat(library/simplifier/simp_rule_set): throw exception for null simp rule
|
2015-11-16 20:33:22 -08:00 |
|
Daniel Selsam
|
9f1dda5622
|
style(library/blast/simplifier): follow else brace rules
|
2015-11-16 20:33:22 -08:00 |
|
Daniel Selsam
|
6ba42bb7bc
|
test(simplifier11.lean): add rule for (not P)
|
2015-11-16 20:33:22 -08:00 |
|
Daniel Selsam
|
b9a516783c
|
fix(library/blast/simplifier): remove unnecessary casts
|
2015-11-16 20:33:22 -08:00 |
|
Daniel Selsam
|
550cac6065
|
feat(library/norm_num): use type_context
|
2015-11-16 20:33:22 -08:00 |
|
Leonardo de Moura
|
770ca546be
|
fix(library/norm_num): unused variables warnings
|
2015-11-16 19:02:02 -08:00 |
|
Leonardo de Moura
|
ab98be633a
|
fix(library/blast/simplifier): warning when compiling using clang on OSX
|
2015-11-16 18:56:35 -08:00 |
|
Leonardo de Moura
|
4dc27fb43b
|
chore(library/blast): use "override" consistently for proof_step objects
|
2015-11-16 18:30:59 -08:00 |
|
Leonardo de Moura
|
38436468e2
|
chore(library/type_context): remove dead code
|
2015-11-16 18:23:45 -08:00 |
|
Leonardo de Moura
|
4afd366a2c
|
fix(library/congr_lemma_manager): warnings when compiling using clang on OSX
|
2015-11-16 18:23:17 -08:00 |
|
Leonardo de Moura
|
39ec756331
|
feat(library/blast): add congruence closure skeleton
|
2015-11-16 16:07:00 -08:00 |
|
Leonardo de Moura
|
60945e95b4
|
feat(library/blast): add 'discard' action for detecting irrelevant hypotheses
|
2015-11-16 11:43:51 -08:00 |
|
Leonardo de Moura
|
7abb0d6b96
|
chore(frontends/lean/builtin_cmds,library/blast/simplifier): fix style
|
2015-11-16 11:10:12 -08:00 |
|
Leonardo de Moura
|
a567cce685
|
fix(library/blast/simplify_actions): compilation error due to recent changes in the simplifier API
|
2015-11-16 10:13:27 -08:00 |
|
Daniel Selsam
|
5e8068b2b2
|
feat(library/blast/simplifier): draft of fusion
|
2015-11-16 09:13:07 -08:00 |
|
Daniel Selsam
|
c694d443d7
|
feat(library/blast/simplifier): placeholder for fusion
|
2015-11-16 09:13:07 -08:00 |
|
Daniel Selsam
|
f72da014d4
|
feat(library/blast/fusion): refactor
|
2015-11-16 09:13:07 -08:00 |
|
Daniel Selsam
|
d852be0d79
|
feat(library/blast/simplifier): option for fusing
|
2015-11-16 09:12:29 -08:00 |
|
Leonardo de Moura
|
db59c6829c
|
feat(library/blast): add basic support for non-recursive recursors/eliminators in the simple_strategy, fix bug at recursor_action
|
2015-11-15 18:39:12 -08:00 |
|
Leonardo de Moura
|
a545860aa1
|
feat(library/blast/intros_action): apply head_beta_reduce at intros
|
2015-11-15 18:14:12 -08:00 |
|
Leonardo de Moura
|
2e057477ef
|
feat(library/blast/recursor_action): ignore type class instances in the recursor action
|
2015-11-15 18:04:08 -08:00 |
|
Leonardo de Moura
|
24ed427c2f
|
feat(library/blast): add "recursor" (aka elimination/induction) action
|
2015-11-15 18:00:32 -08:00 |
|
Leonardo de Moura
|
9e8627380a
|
chore(library/blast/simple_strategy): fix style
|
2015-11-15 15:08:01 -08:00 |
|
Leonardo de Moura
|
1308c7c4e2
|
feat(library/blast): add action for not(a ~ a) when ~ is a reflexive relation
|
2015-11-15 15:00:25 -08:00 |
|
Leonardo de Moura
|
96bc8ac208
|
fix(library/relation_manager): typo
|
2015-11-15 14:59:21 -08:00 |
|
Leonardo de Moura
|
ffd0c2b09a
|
refactor(library/blast/simple_strategy): eliminate duplicated code
|
2015-11-15 14:30:24 -08:00 |
|
Leonardo de Moura
|
2549e49e72
|
feat(library/blast): add priority_queue for hypotheses we want to eliminate (apply recursion over)
|
2015-11-15 13:32:43 -08:00 |
|
Leonardo de Moura
|
4cd5e18bd0
|
refactor(library/blast): add strategy abstract object
|
2015-11-15 13:12:21 -08:00 |
|
Leonardo de Moura
|
bae37d287d
|
fix(library/blast/state): bad style warnings
|
2015-11-15 12:38:07 -08:00 |
|
Leonardo de Moura
|
ff73fb22fb
|
feat(library/user_recursors): store whether recursor is recursive or not
|
2015-11-15 12:37:35 -08:00 |
|
Leonardo de Moura
|
e18e4e3200
|
fix(library/user_recursors): bug at get_num_minors
|
2015-11-15 11:48:34 -08:00 |
|
Leonardo de Moura
|
eae26cdfae
|
feat(library/user_recursors): add get_num_minors
|
2015-11-15 11:35:55 -08:00 |
|
Leonardo de Moura
|
ccdaa524f7
|
fix(library/relation_manager): bad style warnings
|
2015-11-15 11:35:20 -08:00 |
|
Leonardo de Moura
|
fd41a4f76d
|
feat(library/blast): add simplify_target action
|
2015-11-14 16:18:12 -08:00 |
|
Leonardo de Moura
|
6a554f6ba7
|
fix(library/blast/simple_actions): missing include
|
2015-11-14 15:41:54 -08:00 |
|
Leonardo de Moura
|
4d68e2a520
|
feat(library,hott): add eq.mpr and eq.mp lemmas
|
2015-11-14 15:40:47 -08:00 |
|
Leonardo de Moura
|
b5db77961d
|
feat(library/blast): add "trivial" action
|
2015-11-14 15:02:14 -08:00 |
|
Leonardo de Moura
|
2ba9979822
|
feat(library/relation_manager): add helper procedures
|
2015-11-14 14:11:52 -08:00 |
|
Leonardo de Moura
|
0803db21d3
|
refactor(library/blast): add "_action" suffix to files defining actions
|
2015-11-14 13:22:12 -08:00 |
|
Leonardo de Moura
|
9921228dd5
|
feat(library/blast): add simp_rule_sets to branch
|
2015-11-14 13:16:00 -08:00 |
|
Leonardo de Moura
|
0f4e59a84f
|
feat(library/blast): add "no_confusion" action
|
2015-11-13 18:19:05 -08:00 |
|
Leonardo de Moura
|
29d472788f
|
feat(library/blast/subst): avoid unnecessary proof step
|
2015-11-13 16:31:07 -08:00 |
|
Leonardo de Moura
|
3849aff674
|
fix(library/blast/subst): bug in subst action, add hypothesis_idx_buffer_set (helper class), refine revert_action interface
|
2015-11-13 16:10:25 -08:00 |
|
Leonardo de Moura
|
33036befc6
|
fix(library/blast/intros): corner case
|
2015-11-13 15:25:55 -08:00 |
|
Leonardo de Moura
|
6c038626f8
|
fix(library/blast/simple_strategy): tracing
|
2015-11-13 15:22:09 -08:00 |
|
Leonardo de Moura
|
ca4c078089
|
feat(library/blast): add "subst" action
|
2015-11-13 15:21:26 -08:00 |
|
Leonardo de Moura
|
cc4608a392
|
feat(library/blast): add "revert" auxiliary action
|
2015-11-13 14:15:48 -08:00 |
|
Leonardo de Moura
|
0dd6d6b140
|
feat(library/blast): avoid default name when creating hypotheses
|
2015-11-13 13:13:48 -08:00 |
|
Leonardo de Moura
|
bc8c5a3f68
|
feat(library/blast): basic tracing for blast
|
2015-11-13 13:05:20 -08:00 |
|
Leonardo de Moura
|
2889ec5870
|
feat(library/blast/state): add methods for deleting hypotheses
|
2015-11-13 11:59:34 -08:00 |
|
Leonardo de Moura
|
0a25652885
|
feat(library/blast/intros): intros is now a silent step.
|
2015-11-13 10:55:15 -08:00 |
|
Leonardo de Moura
|
4aa20fcff0
|
feat(library/blast/state): add support for "silent" proof steps.
|
2015-11-13 10:54:10 -08:00 |
|
Leonardo de Moura
|
2e32cf51f9
|
feat(library/blast/state): do not track dependecies to values
|
2015-11-13 10:38:25 -08:00 |
|
Leonardo de Moura
|
a7fdf5cc73
|
fix(library/blast/blast): avoid unnecessary calls to set_local_instances
This was producing a performance problem since the cache is invalidated/flushed
whenever we call this method.
|
2015-11-13 10:08:29 -08:00 |
|
Daniel Selsam
|
1276f2f050
|
feat(library/blast/simplifier): struct for cache key
|
2015-11-12 21:21:52 -08:00 |
|
Daniel Selsam
|
f17320eccf
|
fix(library/abstract_expr_manager): remove weight and lt
|
2015-11-12 21:21:52 -08:00 |
|
Daniel Selsam
|
4e85d59785
|
style(library/abstract_expr_manager): whitespace
|
2015-11-12 21:21:52 -08:00 |
|
Daniel Selsam
|
3703938e55
|
feat(library/abstract_expr_manager): compare exprs ignoring subsingletons
|
2015-11-12 21:21:51 -08:00 |
|
Daniel Selsam
|
031979cb49
|
feat(library/blast/simplifier): take simp_rule_sets as argument
|
2015-11-12 21:20:16 -08:00 |
|
Rob Lewis
|
44a099f6f1
|
feat(norm_num): performance and style fixes
|
2015-11-12 20:53:37 -08:00 |
|
Rob Lewis
|
4bf0519843
|
feat(norm_num): numeral normalizer works for +, -, *, /
|
2015-11-12 20:53:37 -08:00 |
|
Rob Lewis
|
616450be64
|
feat(library/norm_num): extend norm_num to handle subtraction
|
2015-11-12 20:53:37 -08:00 |
|
Leonardo de Moura
|
8f378db661
|
feat(library/blast): add normalize procedure to blast API
|
2015-11-12 20:42:58 -08:00 |
|
Leonardo de Moura
|
e1f81cfdcd
|
feat(library/type_context): add normalizer for type_context
|
2015-11-12 20:31:36 -08:00 |
|
Leonardo de Moura
|
d9816b6e21
|
fix(library/type_context): avoid errors in the infer type method due to opaque constants
|
2015-11-12 20:04:46 -08:00 |
|
Leonardo de Moura
|
1d1cd0fc24
|
feat(library/congr_lemma_manager): add congruence lemma for normalization and congruence closure
|
2015-11-12 18:54:12 -08:00 |
|
Leonardo de Moura
|
15cd92f89f
|
fix(library/type_context): methods assign and force_assign were not processing postponed constraints
|
2015-11-12 18:52:31 -08:00 |
|
Leonardo de Moura
|
1e436b8b3e
|
fix(library/blast/state): incorrect assertions
|
2015-11-12 16:28:09 -08:00 |
|
Leonardo de Moura
|
98f91931bf
|
fix(library/blast/state): compilation errors
|
2015-11-12 16:25:59 -08:00 |
|
Leonardo de Moura
|
6eef52196e
|
feat(library/blast): add gexpr "generalized expressions"
|
2015-11-11 16:11:51 -08:00 |
|
Leonardo de Moura
|
fee0cff295
|
feat(library/blast): add simple indexing data-structure for active hypotheses
|
2015-11-11 00:02:47 -08:00 |
|
Leonardo de Moura
|
41e14fddf8
|
feat(library/head_map): support local name in the head_map
|
2015-11-10 20:02:31 -08:00 |
|
Leonardo de Moura
|
bd06bf9fb1
|
doc(library/blast): document action_result
|
2015-11-10 17:49:41 -08:00 |
|
Leonardo de Moura
|
48eb6cb138
|
refactor(library/blast/state): simplify state
|
2015-11-10 17:27:39 -08:00 |
|
Leonardo de Moura
|
511337a4e9
|
fix(library/blast): missing file
|
2015-11-10 17:00:26 -08:00 |
|
Leonardo de Moura
|
f8f3f9402e
|
feat(library/blast): major reorg and basic backward chaining action
|
2015-11-10 17:00:16 -08:00 |
|
Leonardo de Moura
|
5be1893d98
|
fix(library/blast/state): bug at instantiate_urefs_mrefs
|
2015-11-10 16:38:44 -08:00 |
|
Leonardo de Moura
|
6f01a7339a
|
refactor(library/blast): move simple search strategy to separate module
|
2015-11-10 11:44:18 -08:00 |
|
Leonardo de Moura
|
6ac2bf9c6c
|
refactor(library/blast): add choice_point object
|
2015-11-10 11:28:59 -08:00 |
|
Leonardo de Moura
|
b76cdb1c68
|
refactor(library/blast): move blast options to separate module
|
2015-11-10 11:03:54 -08:00 |
|
Leonardo de Moura
|
f1c2a88e17
|
feat(library/blast): add proof_expr thin layer for creating proof terms at blast
|
2015-11-10 10:50:58 -08:00 |
|
Leonardo de Moura
|
5304f62f54
|
feat(library/blast/hypothesis): track proof depth in hypotheses
|
2015-11-10 09:54:28 -08:00 |
|
Leonardo de Moura
|
409ad18f9b
|
refactor(library/blast/state): cleanup state interface
|
2015-11-10 09:20:44 -08:00 |
|
Daniel Selsam
|
fc5dba4cd1
|
fix(library/simplifier/simp_rule_set): use lists instead of vectors
|
2015-11-10 08:58:46 -08:00 |
|
Leonardo de Moura
|
b59dd2305c
|
refactor(library/blast): rename state::get ==> state::get_hypothesis_decl
|
2015-11-09 14:52:21 -08:00 |
|
Leonardo de Moura
|
fb7a47cf2b
|
refactor(library/blast): avoid auxiliary local when creating hypothesis for intros
|
2015-11-09 14:40:39 -08:00 |
|
Leonardo de Moura
|
a14bb86148
|
feat(library/blast/state): add mk_lambda/mk_pi for abstracting hrefs
|
2015-11-09 14:20:19 -08:00 |
|
Leonardo de Moura
|
973a5c4812
|
feat(library/blast): improve blast type_context push/pop operations
|
2015-11-09 13:36:49 -08:00 |
|
Leonardo de Moura
|
9c364b410e
|
refactor(library/blast): hypothesis m_depth ==> m_dep_depth
|
2015-11-09 13:29:07 -08:00 |
|
Leonardo de Moura
|
9a557958f4
|
refactor(library/blast): merge state and branch classes
We will keep only one active branch in blast.
All other branches are implicit.
|
2015-11-09 13:24:30 -08:00 |
|
Leonardo de Moura
|
9bdf3a0d33
|
refactor(library/blast): we should reuse uref/mref/href in idxs
Motivation: avoid nasty bugs when caching results
|
2015-11-09 12:41:52 -08:00 |
|
Leonardo de Moura
|
d952a1d299
|
refactor(library/blast/expr): remove unnecessary complexity
|
2015-11-09 12:27:33 -08:00 |
|
Leonardo de Moura
|
c5117785a8
|
feat(library/blast): add intros action
|
2015-11-08 19:18:40 -08:00 |
|
Leonardo de Moura
|
78f1679b03
|
feat(library/blast): add basic assumption action
|
2015-11-08 18:16:34 -08:00 |
|
Leonardo de Moura
|
6340b1ae5b
|
feat(library/blast): very basic search procedure and iterative deepening
|
2015-11-08 17:57:37 -08:00 |
|
Leonardo de Moura
|
8308e87a6c
|
feat(library/blast/blast): initialize local instances at type_context objects
|
2015-11-08 15:20:05 -08:00 |
|
Leonardo de Moura
|
39019b6873
|
refactor(library/blast/simplifier): use app_builder mk_congr, mk_congr_arg and mk_congr_fun
|
2015-11-08 14:05:03 -08:00 |
|
Leonardo de Moura
|
1374f8cba1
|
fix(library/blast/simplifier): compilation warnings
|
2015-11-08 14:05:03 -08:00 |
|
Leonardo de Moura
|
b8857b078b
|
feat(library/blast): add get_app_builder to blast API
|
2015-11-08 14:05:03 -08:00 |
|
Leonardo de Moura
|
1d1f043192
|
refactor(library/app_builder): throw exception instead of returning none_expr
|
2015-11-08 14:05:03 -08:00 |
|
Daniel Selsam
|
0061d595d0
|
feat(library/blast/simplifier): use generated congruence lemmas
|
2015-11-08 14:05:03 -08:00 |
|
Daniel Selsam
|
b2368ba81b
|
style(library/blast/simplifier): whitespace
|
2015-11-08 14:05:03 -08:00 |
|
Daniel Selsam
|
f1d5cc5d5b
|
test(library/blast/simplifier): add asserts
|
2015-11-08 14:05:03 -08:00 |
|
Leonardo de Moura
|
afc7a2af84
|
feat(library/blast): expose mk_congr_lemma_for_simp and get_fun_info
|
2015-11-08 14:05:03 -08:00 |
|
Leonardo de Moura
|
f74e8288bd
|
refactor(library/congr_lemma_manager): API
|
2015-11-08 14:05:03 -08:00 |
|
Leonardo de Moura
|
f19fcf255a
|
chore(library/constants.cpp): regenerate automatically generated file
|
2015-11-08 14:05:03 -08:00 |
|
Daniel Selsam
|
f3caeb77cd
|
style(library/blast/simplifier): whitespace
|
2015-11-08 14:05:03 -08:00 |
|
Daniel Selsam
|
6c2c82f47c
|
feat(library/blast/simplifier): conditional rewriting
|
2015-11-08 14:05:03 -08:00 |
|
Daniel Selsam
|
d4e410162b
|
feat(library/blast/simplifier): expand macros
|
2015-11-08 14:05:02 -08:00 |
|
Daniel Selsam
|
b727d5810a
|
feat(library/blast/simplifier): rewrite with tmp locals
|
2015-11-08 14:05:02 -08:00 |
|
Daniel Selsam
|
3f331a261a
|
fix(library/blast/simplifier): stack of caches for local context
|
2015-11-08 14:05:02 -08:00 |
|
Daniel Selsam
|
b81aa35221
|
feat(library/blast/simplifier): more informative tracing
|
2015-11-08 14:05:02 -08:00 |
|
Daniel Selsam
|
0ad41173bb
|
fix(library/blast/simplifier): caches for each relation
|
2015-11-08 14:05:02 -08:00 |
|
Daniel Selsam
|
a304f6a9df
|
fix(library/blast/simplifier): loop rewrite rules
|
2015-11-08 14:05:02 -08:00 |
|
Daniel Selsam
|
a73e4e30a3
|
feat(library/blast/simplifier): use new blast_tmp_type_context constructor
|
2015-11-08 14:05:02 -08:00 |
|
Daniel Selsam
|
8e5e8e6540
|
feat(library/blast/simplifier): basic infrastructure
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
78a9116a23
|
chore(library/congr_lemma_manager): fix style
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
77c0866599
|
feat(library/congr_lemma_manager): fallback to simple congruence theorem if needed
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
0eb0a679e8
|
feat(library/congr_lemma_manager): add support for complex lemmas
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
ba477a0e98
|
feat(library/congr_lemma_manager): handle simple congruence lemmas
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
3dc8f72c32
|
feat(frontends/lean/builtin_cmds): display congr lemma arg mask
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
df94864809
|
fix(library/congr_lemma_manager): use abstract_local
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
8a7321714a
|
feat(library/congr_lemma_manager): add mk_congr_simp that takes the number of expected arguments
Use sorry to be able to test first part
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
5a48a2cebe
|
feat(library/app_builder): add mk_sorry method
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
c16423194c
|
feat(library/fun_info_manager): add method for getting information about function prefix
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
559c5a26a3
|
fix(library/congr_lemma_manager): take resulting type into account when computing congruence lemma
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
b89b4cb5f0
|
fix(library/fun_info_manager): bug tracking dependecies
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
7d588636a1
|
feat(library/fun_info_manager): collect additional information
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
22dcf6825e
|
feat(library/congr_lemma_manager): add congr_lemma_manager skeleton and compute type of congruence lemma
proof is still missing
|
2015-11-08 14:05:02 -08:00 |
|
Leonardo de Moura
|
01bde866d6
|
feat(library/util): add auxiliary recognizers
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
2d04156959
|
fix(library/app_builder): bug in eq_drec
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
34d5882b9a
|
refactor(library/util): rename old is_eq_rec
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
6519e570f3
|
feat(library/fun_info_manager): safer "replace" function
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
78b1d4279b
|
fix(library/blast/state): compilation problems in debug mode
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
7e7919950d
|
fix(library/type_context): compilation warning
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
8d9d84f33c
|
refactor(library/blast): we don't require maximally shared terms anymore in blast
This commit also removes the blast::mk_* expr and level functions.
They were just noops.
I kept only mk_uref, mk_href and mk_mref
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
45c02cb65c
|
feat(library/blast/blast): add extra constructor
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
980eb95e0c
|
fix(library/type_context,library/blast/blast): blast uses multiple type_context objects, this commit makes sure all of them use the same local name generator
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
749d468440
|
feat(library): add fun_info_manager
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
e23523bb02
|
feat(library/type_context): add mk_subsingleton_instance
|
2015-11-08 14:05:01 -08:00 |
|
Daniel Selsam
|
a104b478f3
|
feat(library/type_context): make expand_macro public
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
f84f024b92
|
refactor(library/app_builder): change app_builder constructor
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
98b79373cc
|
feat(library/blast/blast): add blast::internalize
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
43efc11f36
|
feat(library/blast/blast): automatically clear tmp_type_context at recycling time
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
3517a3dfa9
|
feat(library/blast): add blast_tmp_type_context
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
b2c9f2f6c5
|
feat(library/type_context): document our approach for managing meta-variables in type_context
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
aa697206e8
|
refactor(library/type_context): rename set_context to set_local_instances
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
fb7efa9337
|
feat(library/type_context): new tmp local_constant policy
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
333ba83087
|
feat(library/type_context): add mk_tmp_local that allows us to specify the pretty printing name
We also modify the type inference procedure to preserve the binder names.
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
01259a2d1c
|
feat(library/app_builder): add helper functions for creating eq.rec applications
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
5b71025b07
|
fix(library/blast/blast): temporary type_context for blast must handle external meta-variables.
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
f21102a725
|
feat(frontends/lean): add test commands for new app_builder features
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
1c2c2a6077
|
feat(library/app_builder): mk_app with mask
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
8e0a3eec3f
|
chore(library/relation_manager): fix bogus style warnings
|
2015-11-08 14:05:01 -08:00 |
|
Leonardo de Moura
|
0f631889b7
|
feat(library/app_builder): add helper methods for creating binary relations, and refl/symm/trans proofs
|
2015-11-08 14:05:00 -08:00 |
|
Leonardo de Moura
|
b5c40e30ef
|
feat(library/app_builder): add set_context
|
2015-11-08 14:05:00 -08:00 |
|
Leonardo de Moura
|
137ec27059
|
feat(library/app_builder): add constructor for app_builder that may take subclasses of tmp_type_context
We need this feature because blast has its own version of tmp_type_context.
|
2015-11-08 14:05:00 -08:00 |
|
Leonardo de Moura
|
ee0974650a
|
feat(library/app_builder): new app_builder on top of type_context
The new version is more robust, and invokes type class resolution if needed.
|
2015-11-08 14:05:00 -08:00 |
|
Leonardo de Moura
|
87ec7383dd
|
fix(library/tmp_type_context): initialization
|
2015-11-08 14:05:00 -08:00 |
|
Leonardo de Moura
|
3804281919
|
refactor(library/app_builder): remove app_builder Lua API
|
2015-11-08 14:05:00 -08:00 |
|
Leonardo de Moura
|
f8916ed411
|
feat(library/blast/blast): create tmp_type_context that is compatible with blast
|
2015-11-08 14:05:00 -08:00 |
|
Leonardo de Moura
|
e01f2ec6a5
|
feat(library/tmp_type_context): add temporary type_context
|
2015-11-08 14:05:00 -08:00 |
|
Leonardo de Moura
|
18d9272f22
|
refactor(library/type_context): revise get_assignment
It is safer to return optional.
|
2015-11-08 14:05:00 -08:00 |
|
Leonardo de Moura
|
3bc5084bf6
|
refactor(library/simplifier): disable file
We will eventually delete it.
It will be subsumed by blast.
|
2015-11-08 14:05:00 -08:00 |
|
Leonardo de Moura
|
27904787fe
|
refactor(library/type_inference): rename type_inference module to type_context
|
2015-11-08 14:05:00 -08:00 |
|
Leonardo de Moura
|
ab940a2001
|
feat(frontends/lean/elaborator): add support for partial explicit in the elaborator
|
2015-11-08 14:05:00 -08:00 |
|