3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-03 13:55:47 +00:00

refactor weighted-maxsat into separate files

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2014-07-28 08:31:57 -07:00
parent 9f1b2ccfc4
commit 4ab27eff78
20 changed files with 2179 additions and 1446 deletions

View file

@ -39,8 +39,11 @@ struct mus::imp {
expr_ref_vector m_vars;
obj_map<expr, unsigned> m_var2idx;
volatile bool m_cancel;
bool m_rmr_enabled;
imp(ref<solver>& s, ast_manager& m): m_s(s), m(m), m_cls2expr(m), m_vars(m), m_cancel(false) {}
imp(ref<solver>& s, ast_manager& m):
m_s(s), m(m), m_cls2expr(m), m_vars(m), m_cancel(false),
m_rmr_enabled(false) {}
void reset() {
m_cls2expr.reset();
@ -133,10 +136,12 @@ struct mus::imp {
assumptions.push_back(cls);
mus.push_back(cls_id);
extract_model(model);
sz = core.size();
core.append(mus);
rmr(core, mus, model);
core.resize(sz);
if (m_rmr_enabled) {
sz = core.size();
core.append(mus);
rmr(core, mus, model);
core.resize(sz);
}
break;
default:
core_exprs.reset();