3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-07 07:45:46 +00:00

generalize level

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-09-15 16:46:30 +01:00
parent 7e7f88ae3d
commit 689c5b4e12
6 changed files with 40 additions and 18 deletions

View file

@ -219,11 +219,10 @@ namespace polysat {
return *dynamic_cast<ule_constraint const*>(this);
}
std::ostream& constraint::display_extra(std::ostream& out, lbool status) const {
std::ostream& constraint::display_extra(std::ostream& out) const {
out << " (b";
if (has_bvar()) { out << bvar(); } else { out << "_"; }
out << ")";
(void)status;
return out;
}
@ -261,6 +260,15 @@ namespace polysat {
m_unit_clause = cl;
}
unsigned constraint::level(solver& s) const {
if (s.m_bvars.value(sat::literal(bvar())) != l_undef)
return s.m_bvars.level(bvar());
unsigned level = 0;
for (auto v : vars())
level = std::max(level, s.get_level(v));
return level;
}
lbool signed_constraint::bvalue(solver& s) const {
return s.m_bvars.value(blit());
}