3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-23 14:23:40 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-08-17 08:49:06 -07:00
parent bb32a83c4f
commit 4ab0ee75fa

View file

@ -2080,13 +2080,14 @@ namespace smt {
*/ */
enode_vector * interpreter::mk_depth1_vector(enode * n, func_decl * f, unsigned i) { enode_vector * interpreter::mk_depth1_vector(enode * n, func_decl * f, unsigned i) {
enode_vector * v = mk_enode_vector(); enode_vector * v = mk_enode_vector();
unsigned num_args = n->get_num_args();
n = n->get_root(); n = n->get_root();
enode_vector::const_iterator it = n->begin_parents(); enode_vector::const_iterator it = n->begin_parents();
enode_vector::const_iterator end = n->end_parents(); enode_vector::const_iterator end = n->end_parents();
for (; it != end; ++it) { for (; it != end; ++it) {
enode * p = *it; enode * p = *it;
if (p->get_decl() == f && if (p->get_decl() == f &&
p->get_num_args() > i && p->get_num_args() == num_args &&
m_context.is_relevant(p) && m_context.is_relevant(p) &&
p->is_cgr() && p->is_cgr() &&
p->get_arg(i)->get_root() == n) { p->get_arg(i)->get_root() == n) {
@ -2105,6 +2106,7 @@ namespace smt {
enode * n = m_registers[j2->m_reg]->get_root(); enode * n = m_registers[j2->m_reg]->get_root();
if (n->get_num_parents() == 0) if (n->get_num_parents() == 0)
return 0; return 0;
unsigned num_args = n->get_num_args();
enode_vector * v = mk_enode_vector(); enode_vector * v = mk_enode_vector();
enode_vector::const_iterator it1 = n->begin_parents(); enode_vector::const_iterator it1 = n->begin_parents();
enode_vector::const_iterator end1 = n->end_parents(); enode_vector::const_iterator end1 = n->end_parents();
@ -2121,6 +2123,7 @@ namespace smt {
for (; it2 != end2; ++it2) { for (; it2 != end2; ++it2) {
enode * p2 = *it2; enode * p2 = *it2;
if (p2->get_decl() == f && if (p2->get_decl() == f &&
num_args == n->get_num_args() &&
m_context.is_relevant(p2) && m_context.is_relevant(p2) &&
p2->is_cgr() && p2->is_cgr() &&
p2->get_arg(i)->get_root() == p) { p2->get_arg(i)->get_root() == p) {