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

Solve disequalities lazily

This commit is contained in:
CEisenhofer 2026-05-27 17:25:39 +02:00
parent 4cd908345a
commit e74b235d87
10 changed files with 337 additions and 16 deletions

View file

@ -516,6 +516,7 @@ namespace seq {
std::ostream& nielsen_node::to_html(std::ostream& out, obj_map<expr, std::string>& names, uint64_t& next_id, ast_manager& m) const {
bool any = false;
bool hasEq = false;
bool hasDisEq = false;
bool hasMem = false;
bool hasRange = false;
@ -528,6 +529,15 @@ namespace seq {
<< snode_label_html(eq.m_rhs, names, next_id, m)
<< "<br/>";
}
// string disequalities
for (auto const& eq : m_str_deq) {
if (!any) { out << "Cnstr:<br/>"; any = true; }
if (!hasDisEq) { out << "DisEq:<br/>"; hasDisEq = true; }
out << snode_label_html(eq.m_lhs, names, next_id, m)
<< " &#x2260; "
<< snode_label_html(eq.m_rhs, names, next_id, m)
<< "<br/>";
}
// regex memberships
for (auto const& mem : m_str_mem) {
if (!any) { out << "Cnstr:<br/>"; any = true; }