// The SimplifyMaps on entry to the topLevel functions may contain useful entries.
// E.g. The BVSolver calls SimplifyTerm()
- ASTNode BeevMgr::SimplifyFormula_TopLevel(const ASTNode& b, bool pushNeg, ASTNodeMap* VarConstMap)
+ ASTNode BeevMgr::SimplifyFormula_TopLevel(const ASTNode& b,
+ bool pushNeg, ASTNodeMap* VarConstMap)
{
- runTimes.start(RunTimes::SimplifyTopLevel);
+ runTimes.start(RunTimes::SimplifyTopLevel);
if (smtlib_parser_flag)
BuildReferenceCountMap(b);
ASTNode out = SimplifyFormula(b, pushNeg, VarConstMap);
if(optimize_flag)
{
- runTimes.start(RunTimes::CreateSubstitutionMap);
+ runTimes.start(RunTimes::CreateSubstitutionMap);
simplified_solved_InputToSAT =
CreateSubstitutionMap(simplified_solved_InputToSAT);
runTimes.stop(RunTimes::CreateSubstitutionMap);
}
TermsAlreadySeenMap.clear();
-
+ // do
+ // {
+ // inputToSAT = simplified_solved_InputToSAT;
+
+ // if(optimize_flag)
+ // {
+ // runTimes.start(RunTimes::CreateSubstitutionMap);
+ // simplified_solved_InputToSAT =
+ // CreateSubstitutionMap(simplified_solved_InputToSAT);
+ // runTimes.stop(RunTimes::CreateSubstitutionMap);
+ // ASTNodeStats("after pure substitution: ", simplified_solved_InputToSAT);
+
+ // simplified_solved_InputToSAT =
+ // SimplifyFormula_TopLevel(simplified_solved_InputToSAT, false);
+ // ASTNodeStats("after simplification: ", simplified_solved_InputToSAT);
+ // }
+
+ // if(wordlevel_solve_flag)
+ // {
+ // simplified_solved_InputToSAT =
+ // bvsolver->TopLevelBVSolve(simplified_solved_InputToSAT);
+ // ASTNodeStats("after solving: ", simplified_solved_InputToSAT);
+ // }
+ // } while (inputToSAT != simplified_solved_InputToSAT);
+
if (start_abstracting)
{
ASTNodeStats("After abstraction: ", simplified_solved_InputToSAT);
return res;
}
- res = SATBased_AllFiniteLoops_Refinement(newS, orig_input);
- if (SOLVER_UNDECIDED != res)
- {
- CountersAndStats("print_func_stats");
- return res;
- }
+ // res = SATBased_AllFiniteLoops_Refinement(newS, orig_input);
+ // if (SOLVER_UNDECIDED != res)
+ // {
+ // CountersAndStats("print_func_stats");
+ // return res;
+ // }
res = SATBased_ArrayReadRefinement(newS, simplified_solved_InputToSAT, orig_input);
if (SOLVER_UNDECIDED != res)