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

add mutex preprocessing to maxsat, add parsing functions to C++ API

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-10-07 12:42:08 -07:00
parent f452895f5f
commit 619cce0a52
7 changed files with 395 additions and 49 deletions

View file

@ -137,6 +137,11 @@ lbool solver::get_consequences_core(expr_ref_vector const& asms, expr_ref_vector
}
lbool solver::find_mutexes(expr_ref_vector const& vars, vector<expr_ref_vector>& mutexes) {
return l_true;
#if 0
// complete for literals, but inefficient.
// see more efficient (incomplete) version in sat_solver
mutexes.reset();
ast_manager& m = vars.get_manager();
@ -187,19 +192,9 @@ lbool solver::find_mutexes(expr_ref_vector const& vars, vector<expr_ref_vector>&
A.remove(mutex[i].get());
}
}
// While A != {}:
// R = {}
// P = ~A
// While P != {}:
// Pick p in ~P,
// R = R u { p }
// Let Q be consequences over P of p modulo F.
// Let P &= Q
// If |R| > 1: Yield R
// A \= R
return l_true;
#endif
}
bool solver::is_literal(ast_manager& m, expr* e) {