3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 03:45:51 +00:00

enable bvsat, multi disjoint cores for dual-maxres

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2014-07-30 12:57:30 -07:00
parent 3fefed69b7
commit e8056e066d
3 changed files with 71 additions and 16 deletions

View file

@ -130,7 +130,14 @@ namespace opt {
}
void maxsmt_solver_base::enable_inc_bvsat() {
solver* sat_solver = mk_inc_sat_solver(m, m_params);
unsigned sz = s().get_num_assertions();
for (unsigned i = 0; i < sz; ++i) {
sat_solver->assert_expr(s().get_assertion(i));
}
unsigned lvl = m_s->get_scope_level();
while (lvl > 0) { sat_solver->push(); --lvl; }
m_s = sat_solver;
}
void maxsmt_solver_base::enable_noninc_bvsat() {
@ -145,13 +152,14 @@ namespace opt {
unsigned lvl = m_s->get_scope_level();
while (lvl > 0) { sat_solver->push(); --lvl; }
m_s = sat_solver;
m_sat_enabled = true;
}
void maxsmt_solver_base::enable_bvsat() {
if (m_enable_sat && !m_sat_enabled && probe_bv()) {
enable_noninc_bvsat();
enable_inc_bvsat();
// enable_noninc_bvsat();
m_sat_enabled = true;
}
}