3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-12 12:08:18 +00:00

optimize model pruning

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2012-10-13 20:09:12 -07:00
parent 95fbf073f8
commit 16cfb3895d
2 changed files with 5 additions and 4 deletions

View file

@ -514,7 +514,7 @@ namespace pdr {
proof_ref pr(root, m); proof_ref pr(root, m);
proof_utils::reduce_hypotheses(pr); proof_utils::reduce_hypotheses(pr);
IF_VERBOSE(2, verbose_stream() << "Elim Hyps:\n" << mk_ismt2_pp(pr, m) << "\n";); IF_VERBOSE(3, verbose_stream() << "Elim Hyps:\n" << mk_ismt2_pp(pr, m) << "\n";);
proof_utils::permute_unit_resolution(pr); proof_utils::permute_unit_resolution(pr);
ptr_vector<expr_set> hyprefs; ptr_vector<expr_set> hyprefs;

View file

@ -105,14 +105,14 @@ namespace pdr {
lit = core[i].get(); lit = core[i].get();
core[i] = m.mk_true(); core[i] = m.mk_true();
state = m.mk_not(n.pt().get_pdr_manager().mk_and(core)); state = m.mk_not(n.pt().get_pdr_manager().mk_and(core));
bool assumes_level = false; bool uses_level_tmp = false;
if (n.pt().is_invariant(n.level(), state, true, assumes_level, 0)) { if (n.pt().is_invariant(n.level(), state, true, uses_level_tmp, 0)) {
num_failures = 0; num_failures = 0;
core[i] = core.back(); core[i] = core.back();
core.pop_back(); core.pop_back();
TRACE("pdr", tout << "Remove: " << mk_pp(lit, m) << "\n";); TRACE("pdr", tout << "Remove: " << mk_pp(lit, m) << "\n";);
++num_changes; ++num_changes;
uses_level = assumes_level; uses_level = uses_level_tmp;
} }
else { else {
core[i] = lit; core[i] = lit;
@ -120,6 +120,7 @@ namespace pdr {
++i; ++i;
} }
} }
IF_VERBOSE(1, verbose_stream() << "changes: " << num_changes << " size: " << core.size() << "\n";);
TRACE("pdr", tout << "changes: " << num_changes << " index: " << i << " size: " << core.size() << "\n";); TRACE("pdr", tout << "changes: " << num_changes << " index: " << i << " size: " << core.size() << "\n";);
} }