From: trevor_hansen Date: Thu, 8 Jul 2010 05:14:38 +0000 (+0000) Subject: Only run the bvsolver if optimisations have been enabled. The bvsolver relies on... X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=8f144f98252b6907adc9ab50cc20c9ba0af63d3c;p=francis%2Fstp.git Only run the bvsolver if optimisations have been enabled. The bvsolver relies on optimisations being performed for correctness. git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@938 e59a4935-1847-0410-ae03-e826735625c1 --- diff --git a/src/STPManager/STP.cpp b/src/STPManager/STP.cpp index c3de82f..036f30c 100644 --- a/src/STPManager/STP.cpp +++ b/src/STPManager/STP.cpp @@ -116,7 +116,7 @@ namespace BEEV { simplified_solved_InputToSAT); } - if(bm->UserFlags.wordlevel_solve_flag) + if(bm->UserFlags.wordlevel_solve_flag && bm->UserFlags.optimize_flag) { simplified_solved_InputToSAT = bvsolver->TopLevelBVSolve(simplified_solved_InputToSAT); @@ -171,7 +171,11 @@ namespace BEEV { simplified_solved_InputToSAT); } - if(bm->UserFlags.wordlevel_solve_flag) + // The word level solver uses the simplifier to apply the rewrites it makes, + // without optimisations enabled. It will enter infinite loops on some input. + // Instead it could use the apply function of the substitution map, but it + // doesn't yet... + if(bm->UserFlags.wordlevel_solve_flag && bm->UserFlags.optimize_flag) { simplified_solved_InputToSAT = bvsolver->TopLevelBVSolve(simplified_solved_InputToSAT);