3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 09:05:31 +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

@ -197,6 +197,7 @@ public:
is_sat = process_mutex();
if (is_sat != l_true) return is_sat;
while (m_lower < m_upper) {
if (m_lower >= m_upper) break;
TRACE("opt",
display_vec(tout, m_asms);
s().display(tout);
@ -235,8 +236,10 @@ public:
init_local();
trace();
exprs cs;
lbool is_sat = process_mutex();
if (is_sat != l_true) return is_sat;
while (m_lower < m_upper) {
lbool is_sat = check_sat_hill_climb(m_asms);
is_sat = check_sat_hill_climb(m_asms);
if (m.canceled()) {
return l_undef;
}
@ -272,7 +275,6 @@ public:
}
lbool process_mutex() {
#if 0
vector<expr_ref_vector> mutexes;
lbool is_sat = s().find_mutexes(m_asms, mutexes);
if (is_sat != l_true) {
@ -281,7 +283,9 @@ public:
for (unsigned i = 0; i < mutexes.size(); ++i) {
process_mutex(mutexes[i]);
}
#endif
if (!mutexes.empty()) {
trace();
}
return l_true;
}