3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-06-19 15:16:29 +00:00

Disequalities over units can be processed differently

This commit is contained in:
CEisenhofer 2026-05-27 18:59:00 +02:00
parent 4fffc267ec
commit 54782e68e0

View file

@ -1305,6 +1305,15 @@ namespace seq {
set_conflict(backtrack_reason::symbol_clash, deq.m_dep);
return simplify_result::conflict;
}
if (deq.m_lhs->length() == 1 && deq.m_rhs->length() == 1) {
expr* l, *r;
if (graph().seq().str.is_unit(deq.m_lhs->get_expr(), l) &&
graph().seq().str.is_unit(deq.m_rhs->get_expr(), r)) {
add_constraint(constraint(m.mk_not(m.mk_eq(l, r)), deq.m_dep, m));
continue;
}
}
if (deq.m_lhs->is_empty() && !deq.m_rhs->is_empty()) {
if (cannot_be_empty(deq.m_rhs)) continue;