]> git.unchartedbackwaters.co.uk Git - francis/stp.git/commitdiff
Bugfix. Terrible. The last checkin causes STP to sometimes return the wrong answer...
authortrevor_hansen <trevor_hansen@e59a4935-1847-0410-ae03-e826735625c1>
Sun, 27 Feb 2011 13:28:39 +0000 (13:28 +0000)
committertrevor_hansen <trevor_hansen@e59a4935-1847-0410-ae03-e826735625c1>
Sun, 27 Feb 2011 13:28:39 +0000 (13:28 +0000)
git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@1176 e59a4935-1847-0410-ae03-e826735625c1

src/simplifier/UseITEContext.h

index ba32f9d43b0137c7f1b444cd155330235b78c6b8..871ae19b9abe2f3bfb1bf11a25734bdf3b31d338 100644 (file)
@@ -48,14 +48,14 @@ namespace BEEV
     }
 
     ASTNode
-    visit(const ASTNode &n, ASTNodeMap& visited, ASTNodeSet& context)
+    visit(const ASTNode &n, ASTNodeSet& visited, ASTNodeSet& context)
     {
       if (n.isConstant())
         return n;
 
-      ASTNodeMap::iterator it;
-      if ((it = visited.find(n)) != visited.end())
-        return it->second;
+      ASTNodeSet::iterator it;
+      if (context.size() == 0 && ((it = visited.find(n)) != visited.end()))
+        return n;
 
       if (context.find(n) != context.end())
         return ASTTrue;
@@ -92,7 +92,7 @@ namespace BEEV
       else
         result = n;
 
-      visited.insert(make_pair(n,result));
+      visited.insert(n);
       return result;
 
     }
@@ -103,10 +103,11 @@ namespace BEEV
     topLevel(const ASTNode& n)
     {
       runtimes->start(RunTimes::UseITEContext);
-      ASTNodeMap visited;
+      ASTNodeSet visited;
       ASTNodeSet context;
       ASTNode result= visit(n,visited,context);
       runtimes->stop(RunTimes::UseITEContext);
+      cout << "from" << n << "to" << result;
       return result;
     }