]> git.unchartedbackwaters.co.uk Git - francis/stp.git/commitdiff
Improvement. If simplifications make the problem containing arrays harder, then rever...
authortrevor_hansen <trevor_hansen@e59a4935-1847-0410-ae03-e826735625c1>
Mon, 28 Nov 2011 05:22:26 +0000 (05:22 +0000)
committertrevor_hansen <trevor_hansen@e59a4935-1847-0410-ae03-e826735625c1>
Mon, 28 Nov 2011 05:22:26 +0000 (05:22 +0000)
git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@1425 e59a4935-1847-0410-ae03-e826735625c1

src/STPManager/STP.cpp

index de7950c4121cf751cb855431d854475aa47b5ec2..f23529e149fbb9dc28fc3fb3c21c1286afb34d2c 100644 (file)
@@ -23,6 +23,7 @@
 #include "../simplifier/UseITEContext.h"
 #include "../simplifier/AlwaysTrue.h"
 #include "../simplifier/AIGSimplifyPropositionalCore.h"
+#include "../simplifier/BigRewriter.h"
 #include <memory>
 
 namespace BEEV {
@@ -108,6 +109,7 @@ namespace BEEV {
             bm->ASTNodeStats("After bitblast simplification: ", simplified_solved_InputToSAT);
           }
       }
+
     return simplified_solved_InputToSAT;
   }
 
@@ -220,10 +222,23 @@ namespace BEEV {
     // so it's expensive to call.
     if (!arrayops && initial_difficulty_score < 1000000)
       {
+        // Remove the sdiv/smod/srem
+        simplified_solved_InputToSAT = arrayTransformer->TransformFormula_TopLevel(simplified_solved_InputToSAT);
+
         simplified_solved_InputToSAT = callSizeReducing(simplified_solved_InputToSAT, bvSolver, initial_difficulty_score);
         initial_difficulty_score = difficulty.score(simplified_solved_InputToSAT);
       }
 
+    {
+      bm->GetRunTimes()->start(RunTimes::BigRewrite);
+      BEEV::BigRewriter b ;
+      ASTNodeMap fromTo;
+      SimplifyingNodeFactory nf(*(bm->hashingNodeFactory), *bm);
+      simplified_solved_InputToSAT = b.rewrite(simplified_solved_InputToSAT, fromTo, &nf,bm);
+      bm->GetRunTimes()->stop(RunTimes::BigRewrite);
+    }
+
+
     if (bm->UserFlags.stats_flag)
       cout << "Difficulty After Size reducing:" << initial_difficulty_score << endl;
 
@@ -280,6 +295,7 @@ namespace BEEV {
       }
     while (inputToSAT != simplified_solved_InputToSAT);
 
+
     if (bm->UserFlags.bitConstantProp_flag)
       {
         bm->GetRunTimes()->start(RunTimes::ConstantBitPropagation);