3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-30 18:08:46 +00:00
This commit is contained in:
Jakob Rath 2024-03-12 16:24:28 +01:00
parent 450ed26440
commit 35e3211ca8

View file

@ -1098,6 +1098,7 @@ namespace polysat {
/* /*
* Register constraint at index 'idx' as unitary in v. * Register constraint at index 'idx' as unitary in v.
* Returns 'multiple' when either intervals are unchanged or there really are multiple values left.
*/ */
find_t viable::add_unitary(pvar v, constraint_id idx, rational& var_value) { find_t viable::add_unitary(pvar v, constraint_id idx, rational& var_value) {
@ -1471,7 +1472,7 @@ namespace polysat {
e = e->next(); e = e->next();
++count; ++count;
if (count > 10) { if (count > 10) {
out << " ..."; out << " ... (total: " << count << " entries)";
break; break;
} }
} }
@ -1484,9 +1485,7 @@ namespace polysat {
for (auto const& layer : m_units[v].get_layers()) { for (auto const& layer : m_units[v].get_layers()) {
if (!layer.entries) if (!layer.entries)
continue; continue;
out << "v" << v << ": "; out << "v" << v << "[" << layer.bit_width << "]: ";
if (layer.bit_width != c.size(v))
out << "width[" << layer.bit_width << "] ";
display_all(out, layer.entries, " "); display_all(out, layer.entries, " ");
out << "\n"; out << "\n";
} }
@ -1495,11 +1494,11 @@ namespace polysat {
} }
std::ostream& viable::display_state(std::ostream& out) const { std::ostream& viable::display_state(std::ostream& out) const {
out << "v" << m_var << ": "; out << "v" << m_var << ":";
for (auto const& slice : m_overlaps) { for (auto const& slice : m_overlaps) {
out << "v" << slice.v << ":" << c.size(slice.v) << "@" << slice.offset << " "; out << " v" << slice.v << ":" << c.size(slice.v) << "@" << slice.offset;
if (c.is_assigned(slice.v)) if (c.is_assigned(slice.v))
out << "value(" << c.get_assignment().value(slice.v) << ") "; out << " value=" << c.get_assignment().value(slice.v);
} }
out << "\n"; out << "\n";
return out; return out;
@ -1508,7 +1507,7 @@ namespace polysat {
std::ostream& viable::display_explain(std::ostream& out) const { std::ostream& viable::display_explain(std::ostream& out) const {
display_state(out); display_state(out);
for (auto const& e : m_explain) for (auto const& e : m_explain)
display_one(out << "v" << m_var << "[" << e.e->bit_width << "] : = " << e.value << " ", e.e) << "\n"; display_one(out << "v" << m_var << "[" << e.e->bit_width << "] := " << e.value << " ", e.e) << "\n";
return out; return out;
} }