mirror of
https://github.com/Z3Prover/z3
synced 2025-06-06 14:13:23 +00:00
share subst node
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
cbbf1381f7
commit
5e1ad37533
1 changed files with 10 additions and 7 deletions
|
@ -261,9 +261,6 @@ namespace dd {
|
||||||
if (is_one(p)) return q;
|
if (is_one(p)) return q;
|
||||||
SASSERT(!is_val(p));
|
SASSERT(!is_val(p));
|
||||||
SASSERT(!is_val(q));
|
SASSERT(!is_val(q));
|
||||||
if (level(p) < level(q))
|
|
||||||
// p*hi(q) + lo(q)
|
|
||||||
return make_node(level(q), lo(q), p);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
UNREACHABLE();
|
UNREACHABLE();
|
||||||
|
@ -425,10 +422,16 @@ namespace dd {
|
||||||
case pdd_subst_add_op:
|
case pdd_subst_add_op:
|
||||||
SASSERT(!is_val(p));
|
SASSERT(!is_val(p));
|
||||||
SASSERT(!is_val(q));
|
SASSERT(!is_val(q));
|
||||||
SASSERT(level_p > level_q);
|
SASSERT(level_p != level_q);
|
||||||
push(apply_rec(hi(p), q, pdd_subst_add_op)); // hi := add_subst(hi(p), q)
|
if (level_p < level_q) {
|
||||||
r = make_node(level_p, lo(p), read(1)); // r := hi*var(p) + lo(p)
|
r = make_node(level_q, lo(q), p); // p*hi(q) + lo(q)
|
||||||
npop = 1;
|
npop = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
push(apply_rec(hi(p), q, pdd_subst_add_op)); // hi := add_subst(hi(p), q)
|
||||||
|
r = make_node(level_p, lo(p), read(1)); // r := hi*var(p) + lo(p)
|
||||||
|
npop = 1;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
r = null_pdd;
|
r = null_pdd;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue