3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-27 02:45:51 +00:00

fixes to dt_solver and related

This commit is contained in:
Nikolaj Bjorner 2021-02-27 11:03:20 -08:00
parent f7b1469462
commit 830f314a3f
20 changed files with 250 additions and 187 deletions

View file

@ -376,7 +376,7 @@ namespace euf {
if (!n1->merge_enabled() && !n2->merge_enabled())
return;
SASSERT(n1->get_expr()->get_sort() == n2->get_expr()->get_sort());
SASSERT(n1->get_sort() == n2->get_sort());
enode* r1 = n1->get_root();
enode* r2 = n2->get_root();
if (r1 == r2)
@ -560,7 +560,7 @@ namespace euf {
return false;
if (ra->interpreted() && rb->interpreted())
return true;
if (ra->get_expr()->get_sort() != rb->get_expr()->get_sort())
if (ra->get_sort() != rb->get_sort())
return true;
expr_ref eq(m.mk_eq(a->get_expr(), b->get_expr()), m);
m_tmp_eq->m_args[0] = a;
@ -787,8 +787,8 @@ namespace euf {
enode* n2 = m_nodes[i];
enode* n2t = n1t ? old_expr2new_enode[n1->get_expr_id()] : nullptr;
SASSERT(!n1t || n2t);
SASSERT(!n1t || n1->get_expr()->get_sort() == n1t->get_expr()->get_sort());
SASSERT(!n1t || n2->get_expr()->get_sort() == n2t->get_expr()->get_sort());
SASSERT(!n1t || n1->get_sort() == n1t->get_sort());
SASSERT(!n1t || n2->get_sort() == n2t->get_sort());
if (n1t && n2->get_root() != n2t->get_root())
merge(n2, n2t, n1->m_justification.copy(copy_justification));
}

View file

@ -198,6 +198,7 @@ namespace euf {
bool is_root() const { return m_root == this; }
enode* get_root() const { return m_root; }
expr* get_expr() const { return m_expr; }
sort* get_sort() const { return m_expr->get_sort(); }
app* get_app() const { return to_app(m_expr); }
func_decl* get_decl() const { return is_app(m_expr) ? to_app(m_expr)->get_decl() : nullptr; }
unsigned get_expr_id() const { return m_expr->get_id(); }