3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 19:35:50 +00:00

fixes to maxres/mss

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2014-09-03 10:03:56 -07:00
parent b5bbf83847
commit 18b491eee0
10 changed files with 76 additions and 114 deletions

View file

@ -372,7 +372,9 @@ struct goal2sat::imp {
SASSERT(m_result_stack.empty());
}
void insert_dep(expr* dep, bool sign) {
void insert_dep(expr* dep0, expr* dep, bool sign) {
SASSERT(sign || dep0 == dep); // !sign || (not dep0) == dep.
SASSERT(!sign || m.is_not(dep0));
expr_ref new_dep(m), fml(m);
if (is_uninterp_const(dep)) {
new_dep = dep;
@ -386,7 +388,7 @@ struct goal2sat::imp {
}
convert_atom(new_dep, false, false);
sat::literal lit = m_result_stack.back();
m_dep2asm.insert(dep, sign?(~lit):lit);
m_dep2asm.insert(dep0, sign?~lit:lit);
m_result_stack.pop_back();
}
@ -411,7 +413,7 @@ struct goal2sat::imp {
SASSERT(m.is_bool(d));
bool sign = m.is_not(d, d1);
insert_dep(d1, sign);
insert_dep(d, d1, sign);
if (d == f) {
goto skip_dep;
}