3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-19 10:52:02 +00:00

fix non-termination bug with retained clauses

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-10-25 15:40:11 -07:00
parent 32711790e8
commit ac0202630e
6 changed files with 36 additions and 77 deletions

View file

@ -302,17 +302,16 @@ namespace sat{
}
bdd elim_vars::make_clauses(clause_use_list & occs) {
bdd result = m.mk_true();
clause_use_list::iterator it = occs.mk_iterator();
while (!it.at_end()) {
bdd result = m.mk_true();
for (auto it = occs.mk_iterator(); !it.at_end(); it.next()) {
clause const& c = it.curr();
if (c.is_blocked()) continue;
bdd cl = m.mk_false();
for (literal l : c) {
cl |= mk_literal(l);
if (!c.is_blocked()) {
bdd cl = m.mk_false();
for (literal l : c) {
cl |= mk_literal(l);
}
result &= cl;
}
it.next();
result &= cl;
}
return result;
}