summaryrefslogtreecommitdiff
path: root/src/preprocessing/passes/unconstrained_simplifier.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/preprocessing/passes/unconstrained_simplifier.cpp')
-rw-r--r--src/preprocessing/passes/unconstrained_simplifier.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/preprocessing/passes/unconstrained_simplifier.cpp b/src/preprocessing/passes/unconstrained_simplifier.cpp
index e20403d2a..7d1f66d65 100644
--- a/src/preprocessing/passes/unconstrained_simplifier.cpp
+++ b/src/preprocessing/passes/unconstrained_simplifier.cpp
@@ -75,6 +75,16 @@ void UnconstrainedSimplifier::visitAll(TNode assertion)
{
d_unconstrained.erase(current);
}
+ else
+ {
+ // Also erase the children from the visited-once set when we visit a
+ // node a second time, otherwise variables in this node are not
+ // erased from the set of unconstrained variables.
+ for (TNode childNode : current)
+ {
+ toVisit.push_back(unc_preprocess_stack_element(childNode, current));
+ }
+ }
}
++find->second;
continue;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback