const ASTNode& original_input)
{
bool sat = tosat->CallSAT(SatSolver,
- modified_input,
- original_input);
+ modified_input);
if (!sat)
{
//PrintOutput(true);
BEEV::STPMgr * bm = new BEEV::STPMgr();
BEEV::Simplifier * simp = new BEEV::Simplifier(bm);
BEEV::BVSolver* bvsolver = new BEEV::BVSolver(bm, simp);
- BEEV::ToSAT * tosat = new BEEV::ToSAT(bm, simp);
+ BEEV::ToSAT * tosat = new BEEV::ToSAT(bm);
BEEV::ArrayTransformer * arrayTransformer =
new BEEV::ArrayTransformer(bm, simp);
BEEV::AbsRefine_CounterExample * Ctr_Example =
Simplifier * simp = new Simplifier(bm);
BVSolver* bvsolver = new BVSolver(bm, simp);
ArrayTransformer * arrayTransformer = new ArrayTransformer(bm, simp);
- ToSAT * tosat = new ToSAT(bm, simp);
+ ToSAT * tosat = new ToSAT(bm);
AbsRefine_CounterExample * Ctr_Example =
new AbsRefine_CounterExample(bm, simp, arrayTransformer, tosat);
itimerval timeout;
//can return one of 3 values, SOLVER_VALID, SOLVER_INVALID or
//SOLVER_UNDECIDED
bool ToSAT::CallSAT(MINISAT::Solver& SatSolver,
- const ASTNode& modified_input,
- const ASTNode& original_input)
+ const ASTNode& input)
{
bm->GetRunTimes()->start(RunTimes::BitBlasting);
BitBlasterNew BB(bm);
BBNodeSet set;
- ASTNode BBFormula = BB.BBForm(modified_input,set);
+ ASTNode BBFormula = BB.BBForm(input,set);
assert(set.size() == 0); // doesn't yet work.
bm->ASTNodeStats("after bitblasting: ", BBFormula);
}
#endif
+
cm->DELETE(cl);
cm->DELETE(xorcl);
delete cm;
// Ptr to STPManager
STPMgr * bm;
- // Ptr to Simplifier
- Simplifier * simp;
-
#if 0
// Memo table to check the functioning of bitblaster and CNF
// converter
****************************************************************/
// Constructor
- ToSAT(STPMgr * bm, Simplifier * s) :
- bm(bm),
- simp(s)
+ ToSAT(STPMgr * bm) :
+ bm(bm)
#if 0
,CheckBBandCNFMemo()
#endif
// Bitblasts, CNF conversion and calls toSATandSolve()
bool CallSAT(MINISAT::Solver& SatSolver,
- const ASTNode& modified_input,
- const ASTNode& original_input);
+ const ASTNode& input);
//print the STP solver output
void PrintOutput(SOLVER_RETURN_TYPE ret);
~ToSAT()
{
- _ASTNode_to_SATVar_Map.clear();
+ ClearAllTables();
#if 0
RepLitMap.clear();
CheckBBandCNFMemo.clear();
#endif
- _SATVar_to_AST_Vector.clear();
}
}; //end of class ToSAT
}; //end of namespace