mirror of
https://github.com/Z3Prover/z3
synced 2025-04-06 17:44:08 +00:00
This commit is contained in:
parent
cabd5b10fa
commit
18d1b368d1
|
@ -818,9 +818,13 @@ namespace euf {
|
|||
args.push_back(old_expr2new_enode[n1->get_arg(j)->get_expr_id()]);
|
||||
expr* e2 = tr(e1);
|
||||
enode* n2 = mk(e2, n1->generation(), args.size(), args.data());
|
||||
|
||||
old_expr2new_enode.setx(e1->get_id(), n2, nullptr);
|
||||
n2->set_value(n2->value());
|
||||
n2->set_value(n1->value());
|
||||
n2->m_bool_var = n1->m_bool_var;
|
||||
n2->m_commutative = n1->m_commutative;
|
||||
n2->m_merge_enabled = n1->m_merge_enabled;
|
||||
n2->m_is_equality = n1->m_is_equality;
|
||||
}
|
||||
for (unsigned i = 0; i < src.m_nodes.size(); ++i) {
|
||||
enode* n1 = src.m_nodes[i];
|
||||
|
|
|
@ -55,17 +55,17 @@ namespace euf {
|
|||
unsigned m_table_id = UINT_MAX;
|
||||
unsigned m_generation = 0; // Tracks how many quantifier instantiation rounds were needed to generate this enode.
|
||||
enode_vector m_parents;
|
||||
enode* m_next = nullptr;
|
||||
enode* m_root = nullptr;
|
||||
enode* m_target = nullptr;
|
||||
enode* m_cg = nullptr;
|
||||
enode* m_next = nullptr;
|
||||
enode* m_root = nullptr;
|
||||
enode* m_target = nullptr;
|
||||
enode* m_cg = nullptr;
|
||||
th_var_list m_th_vars;
|
||||
justification m_justification;
|
||||
unsigned m_num_args = 0;
|
||||
signed char m_lbl_hash = -1; // It is different from -1, if enode is used in a pattern
|
||||
approx_set m_lbls;
|
||||
approx_set m_plbls;
|
||||
enode* m_args[0];
|
||||
signed char m_lbl_hash = -1; // It is different from -1, if enode is used in a pattern
|
||||
approx_set m_lbls;
|
||||
approx_set m_plbls;
|
||||
enode* m_args[0];
|
||||
|
||||
friend class enode_args;
|
||||
friend class enode_parents;
|
||||
|
|
|
@ -316,6 +316,7 @@ namespace euf {
|
|||
}
|
||||
if (n->is_equality()) {
|
||||
SASSERT(!m.is_iff(e));
|
||||
SASSERT(m.is_eq(e));
|
||||
if (sign)
|
||||
m_egraph.new_diseq(n);
|
||||
else
|
||||
|
@ -867,9 +868,9 @@ namespace euf {
|
|||
for (euf::enode* n : r->m_egraph.nodes()) {
|
||||
auto b = n->bool_var();
|
||||
if (b != sat::null_bool_var) {
|
||||
m_bool_var2expr.setx(b, n->get_expr(), nullptr);
|
||||
r->m_bool_var2expr.setx(b, n->get_expr(), nullptr);
|
||||
SASSERT(r->m.is_bool(n->get_sort()));
|
||||
IF_VERBOSE(11, verbose_stream() << "set bool_var " << r->bpp(n) << "\n");
|
||||
IF_VERBOSE(11, verbose_stream() << "set bool_var " << b << " " << r->bpp(n) << " " << mk_bounded_pp(n->get_expr(), m) << "\n");
|
||||
}
|
||||
}
|
||||
for (auto* s_orig : m_id2solver) {
|
||||
|
|
Loading…
Reference in a new issue