mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 16:45:31 +00:00
fix cubing semantics
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
620c5d1d81
commit
5bf57c2700
2 changed files with 9 additions and 9 deletions
|
@ -308,9 +308,9 @@ public:
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
expr_ref_vector last_cube() {
|
||||
expr_ref_vector last_cube(bool is_sat) {
|
||||
expr_ref_vector result(m);
|
||||
result.push_back(m.mk_false());
|
||||
result.push_back(is_sat ? m.mk_true() : m.mk_false());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -334,16 +334,16 @@ public:
|
|||
lbool result = m_solver.cube(vars, lits, backtrack_level);
|
||||
switch (result) {
|
||||
case l_true:
|
||||
return expr_ref_vector(m);
|
||||
return last_cube(true);
|
||||
case l_false:
|
||||
return last_cube();
|
||||
return last_cube(false);
|
||||
default:
|
||||
SASSERT(!lits.empty());
|
||||
if (lits.empty()) {
|
||||
IF_VERBOSE(0, verbose_stream() << "empty cube for undef\n";);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (lits.empty()) {
|
||||
set_reason_unknown(m_solver.get_reason_unknown());
|
||||
return expr_ref_vector(m);
|
||||
}
|
||||
expr_ref_vector fmls(m);
|
||||
expr_ref_vector lit2expr(m);
|
||||
lit2expr.resize(m_solver.num_vars() * 2);
|
||||
|
@ -358,7 +358,6 @@ public:
|
|||
vs.push_back(x);
|
||||
}
|
||||
}
|
||||
if (fmls.empty()) { IF_VERBOSE(0, verbose_stream() << "no literals were produced in cube\n"); }
|
||||
return fmls;
|
||||
}
|
||||
|
||||
|
|
|
@ -79,6 +79,7 @@ public:
|
|||
|
||||
|
||||
expr_ref_vector cube(expr_ref_vector& vars, unsigned ) override {
|
||||
set_reason_unknown("cubing is not supported on tactics");
|
||||
return expr_ref_vector(get_manager());
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue