Fixed bug 352
authorClark Barrett <barrett@cs.nyu.edu>
Mon, 11 Jun 2012 11:43:55 +0000 (11:43 +0000)
committerClark Barrett <barrett@cs.nyu.edu>
Mon, 11 Jun 2012 11:43:55 +0000 (11:43 +0000)
src/theory/unconstrained_simplifier.cpp

index 70be74442806a1ba5e2dc5ef3fa64ea0f3610dc4..b310de425a28b15b64014e5f37c8be7c95e1bfe2 100644 (file)
@@ -665,8 +665,10 @@ void UnconstrainedSimplifier::processUnconstrained()
   // back-substitution and cache-invalidation.  So we do these last.
   while (!delayQueueLeft.empty()) {
     left = delayQueueLeft.back();
-    right = d_substitutions.apply(delayQueueRight.back());
-    d_substitutions.addSubstitution(delayQueueLeft.back(), right, true, true, false);
+    if (!d_substitutions.hasSubstitution(left)) {
+      right = d_substitutions.apply(delayQueueRight.back());
+      d_substitutions.addSubstitution(delayQueueLeft.back(), right, true, true, false);
+    }
     delayQueueLeft.pop_back();
     delayQueueRight.pop_back();
   }