Consider the following piece of code in quant_rec (buddy/src/bddop.c)
PUSHREF( quant_rec(LOW(r)) );
PUSHREF( quant_rec(HIGH(r)) );
if (INVARSET(LEVEL(r)))
res = apply_rec(READREF(2), READREF(1));
else
res = bdd_makenode(LEVEL(r), READREF(2), READREF(1));
We can entirely circumvent the quant_rec(HIGH(r)) if
- The
quant_rec(LOW(r)) returned a terminal that shortcuts the given operator (see the base cases for apply_rec in the same folder for how to do so).
INVARSET(LEVEL(r)) is true
Consider the following piece of code in
quant_rec(buddy/src/bddop.c)We can entirely circumvent the
quant_rec(HIGH(r))ifquant_rec(LOW(r))returned a terminal that shortcuts the given operator (see the base cases forapply_recin the same folder for how to do so).INVARSET(LEVEL(r))is true