#include "RunTimes.h"
// BE VERY CAREFUL> Update the Category Names to match.
-std::string RunTimes::CategoryNames[] = { "Transforming", "Simplifying", "Parsing", "CNF Conversion", "Bit Blasting", "SAT Solving", "Bitvector Solving","Create SubstitutionMap", "Sending to SAT Solver"};
+std::string RunTimes::CategoryNames[] = { "Transforming", "Simplifying", "Parsing", "CNF Conversion", "Bit Blasting", "SAT Solving", "Bitvector Solving","Create SubstitutionMap", "Sending to SAT Solver", "Counter Example Generation"};
namespace BEEV
{
Solving,
BVSolver,
CreateSubstitutionMap,
- SendingToSAT
+ SendingToSAT,
+ CounterExampleGeneration
};
static std::string CategoryNames[];
}
else if (SatSolver.okay())
{
- CounterExampleMap.clear();
+ bm->GetRunTimes()->start(RunTimes::CounterExampleGeneration);
+ CounterExampleMap.clear();
ConstructCounterExample(SatSolver);
if (bm->UserFlags.stats_flag
&& bm->UserFlags.print_nodes_flag)
FatalError("TopLevelSat: Original input must compute to "\
"true or false against model");
+ bm->GetRunTimes()->stop(RunTimes::CounterExampleGeneration);
+
// if the counterexample is indeed a good one, then return
// invalid
if (ASTTrue == orig_result)