3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-09-03 08:38:06 +00:00

fix bugs encountered by regression tests

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2012-10-30 16:13:27 -07:00
parent ec907a4705
commit f44631ce73
7 changed files with 79 additions and 31 deletions

View file

@ -42,6 +42,7 @@ Notes:
#include "dl_mk_rule_inliner.h"
#include "ast_smt2_pp.h"
#include "qe_lite.h"
#include "ast_ll_pp.h"
namespace pdr {
@ -398,6 +399,9 @@ namespace pdr {
lbool is_sat = m_solver.check_conjunction_as_assumptions(n.state());
if (is_sat == l_true && core) {
core->reset();
TRACE("pdr", tout << "updating model\n";
model_smt2_pp(tout, m, *model, 0);
tout << mk_pp(n.state(), m) << "\n";);
n.set_model(model);
}
return is_sat;
@ -758,7 +762,7 @@ namespace pdr {
}
r0 = const_cast<datalog::rule*>(&pt().find_rule(*m_model.get()));
app_ref_vector& inst = pt().get_inst(r0);
TRACE("pdr", tout << mk_pp(state(), m) << "\n";);
TRACE("pdr", tout << mk_pp(state(), m) << " instance: " << inst.size() << "\n";);
for (unsigned i = 0; i < inst.size(); ++i) {
expr* v;
if (model.find(inst[i].get(), v)) {
@ -1421,6 +1425,7 @@ namespace pdr {
proof_ref proof(m);
SASSERT(m_last_result == l_true);
proof = m_search.get_proof_trace(*this);
TRACE("pdr", tout << "PDR trace: " << mk_pp(proof, m) << "\n";);
apply(m, m_pc.get(), proof);
return proof;
}
@ -1844,7 +1849,7 @@ namespace pdr {
break;
}
case l_true: {
strm << mk_ismt2_pp(mk_sat_answer(), m);
strm << mk_pp(mk_sat_answer(), m);
break;
}
case l_undef: {