3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-22 19:17:53 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2023-12-28 17:36:42 -08:00
parent bd93379346
commit 91b9d78cd3
8 changed files with 81 additions and 51 deletions

View file

@ -75,7 +75,10 @@ namespace polysat {
if (!l.hi().is_one())
return false;
v = l.var();
val = -l.lo().val();
if (l.lo().val() == 0)
val = 0;
else
val = l.manager().max_value() + 1 - l.lo().val();
return true;
}

View file

@ -172,8 +172,10 @@ namespace polysat {
s.set_conflict(m_viable.explain(), "viable-conflict");
return sat::check_result::CR_CONTINUE;
case find_t::singleton: {
TRACE("bv", tout << "check-propagate v" << m_var << " := " << m_value << "\n");
auto d = s.propagate(m_constraints.eq(var2pdd(m_var), m_value), m_viable.explain(), "viable-propagate");
auto p = var2pdd(m_var).mk_var(m_var);
auto sc = m_constraints.eq(p, m_value);
TRACE("bv", tout << "check-propagate v" << m_var << " := " << m_value << " " << sc << "\n");
auto d = s.propagate(sc, m_viable.explain(), "viable-propagate");
propagate_assignment(m_var, m_value, d);
return sat::check_result::CR_CONTINUE;
}
@ -297,8 +299,6 @@ namespace polysat {
return;
v = w;
}
if (v != null_var)
verbose_stream() << "propagate activation " << v << " " << sc << " " << dep << "\n";
if (v != null_var && !m_viable.add_unitary(v, idx.id))
s.set_conflict(m_viable.explain(), "viable-conflict");
}