mirror of
https://github.com/Z3Prover/z3
synced 2025-10-11 10:18:06 +00:00
fix bug in blocked clause elimination: it was ignoring unit literals
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
aa2721517b
commit
55eb11d91b
5 changed files with 33 additions and 37 deletions
|
@ -333,13 +333,6 @@ namespace sat {
|
|||
}
|
||||
|
||||
void solver::mk_bin_clause(literal l1, literal l2, bool learned) {
|
||||
#if 0
|
||||
if ((l1 == literal(5981, false) && l2 == literal(16764, false)) ||
|
||||
(l2 == literal(5981, false) && l1 == literal(16764, false))) {
|
||||
IF_VERBOSE(0, display(verbose_stream()));
|
||||
//VERIFY(false);
|
||||
}
|
||||
#endif
|
||||
if (find_binary_watch(get_wlist(~l1), ~l2)) {
|
||||
assign(l1, justification());
|
||||
return;
|
||||
|
@ -487,6 +480,8 @@ namespace sat {
|
|||
return reinit;
|
||||
}
|
||||
|
||||
static unsigned s_count = 0;
|
||||
|
||||
void solver::attach_clause(clause & c, bool & reinit) {
|
||||
SASSERT(c.size() > 2);
|
||||
reinit = false;
|
||||
|
@ -1674,7 +1669,9 @@ namespace sat {
|
|||
if (!m_clone->check_model(m_model)) {
|
||||
//IF_VERBOSE(0, display(verbose_stream()));
|
||||
//IF_VERBOSE(0, display_watches(verbose_stream()));
|
||||
//IF_VERBOSE(0, m_mc.display(verbose_stream()));
|
||||
IF_VERBOSE(0, m_mc.display(verbose_stream()));
|
||||
IF_VERBOSE(0, display_units(verbose_stream()));
|
||||
//IF_VERBOSE(0, m_clone->display(verbose_stream() << "clone\n"));
|
||||
throw solver_exception("check model failed (for cloned solver)");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue