{
visited.insert(cur);
Kind ck = cur.getKind();
- if (restrictLA && (ck == NONLINEAR_MULT || ck == DIVISION))
+ bool isArithDivKind = (ck == DIVISION_TOTAL || ck == INTS_DIVISION_TOTAL
+ || ck == INTS_MODULUS_TOTAL);
+ Assert(ck != DIVISION && ck != INTS_DIVISION && ck != INTS_MODULUS);
+ if (restrictLA && (ck == NONLINEAR_MULT || isArithDivKind))
{
for (unsigned j = 0, size = cur.getNumChildren(); j < size; j++)
{
std::map<Node, Node>::iterator itf = d_fo_to_sk.find(ccur);
if (itf != d_fo_to_sk.end())
{
- if (ck == NONLINEAR_MULT || (ck == DIVISION && j == 1))
+ if (ck == NONLINEAR_MULT || (isArithDivKind && j == 1))
{
exvar = itf->second;
return true;