3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-24 03:57:51 +00:00

handle empty clauses created as lemmas as unsat state.

add unit tests
This commit is contained in:
Nikolaj Bjorner 2021-09-19 15:43:47 -04:00
parent c69c316b27
commit 1e3ff3179e
10 changed files with 113 additions and 80 deletions

View file

@ -31,6 +31,20 @@ Notes:
namespace polysat {
ule_constraint::ule_constraint(constraint_manager& m, pdd const& l, pdd const& r) :
constraint(m, ckind_t::ule_t), m_lhs(l), m_rhs(r) {
m_vars.append(l.free_vars());
for (auto v : r.free_vars())
if (!m_vars.contains(v))
m_vars.push_back(v);
if (m_lhs.is_val() && m_rhs.is_val()) {
if (m_lhs.val() <= m_rhs.val())
m_lhs = m_rhs = 0;
else
m_lhs = 1, m_rhs = 0;
}
}
std::ostream& ule_constraint::display(std::ostream& out, lbool status) const {
out << m_lhs;
if (is_eq() && status == l_true) out << " == ";