SOLVER_RETURN_TYPE result;
result = TopLevelSTPAux(NewSolver,
- original_input, original_input);
+ original_input);
delete newS;
//if returned 0 then input is INVALID if returned 1 then input is
//VALID if returned 2 then UNDECIDED
SOLVER_RETURN_TYPE
- STP::TopLevelSTPAux(SATSolver& NewSolver, const ASTNode& modified_input, const ASTNode& original_input)
+ STP::TopLevelSTPAux(SATSolver& NewSolver, const ASTNode& original_input)
{
- ASTNode inputToSAT = modified_input;
+ ASTNode inputToSAT = original_input;
ASTNode orig_input = original_input;
- bm->ASTNodeStats("input asserts and query: ", inputToSAT);
-
ASTNode simplified_solved_InputToSAT = inputToSAT;
+
+ bm->ASTNodeStats("input asserts and query: ", inputToSAT);
const bool arrayops = containsArrayOps(original_input);
DifficultyScore difficulty;
// -*- c++ -*-
/********************************************************************
- * AUTHORS: Vijay Ganesh
+ * AUTHORS: Vijay Ganesh, Trevor Hansen
*
* BEGIN DATE: November, 2005
*
#include "../parser/LetMgr.h"
#include "../absrefine_counterexample/AbsRefine_CounterExample.h"
-/********************************************************************
- * This file gives the class description of the STP class *
- ********************************************************************/
-
namespace BEEV
{
class STP {
- private:
+
+ ArrayTransformer * arrayTransformer;
+
ASTNode sizeReducing(ASTNode input, BVSolver* bvSolver);
// A copy of all the state we need to restore to a prior expression.
ArrayTransformer::ArrType backup_arrayToIndexToRead; // array-indices already removed.
};
+ // Accepts query and returns the answer. if query is valid,
+ // returns VALID, else returns INVALID. Automatically constructs
+ // counterexample for invalid queries, and prints them upon
+ // request.
+ SOLVER_RETURN_TYPE TopLevelSTPAux(SATSolver& NewSolver,
+ const ASTNode& modified_input
+ );
+
+
public:
// calls sizeReducing and the bitblasting simplification.
ASTNode callSizeReducing(ASTNode simplified_solved_InputToSAT, BVSolver* bvSolver, const int initial_difficulty_score);
****************************************************************/
STPMgr * bm;
Simplifier * simp;
- ArrayTransformer * arrayTransformer;
ToSAT * tosat;
AbsRefine_CounterExample * Ctr_Example;
SOLVER_RETURN_TYPE TopLevelSTP(const ASTNode& inputasserts,
const ASTNode& query);
- // Accepts query and returns the answer. if query is valid,
- // returns VALID, else returns INVALID. Automatically constructs
- // counterexample for invalid queries, and prints them upon
- // request.
- SOLVER_RETURN_TYPE TopLevelSTPAux(SATSolver& NewSolver,
- const ASTNode& modified_input,
- const ASTNode& original_input);
-
+#if 0
SOLVER_RETURN_TYPE
UserGuided_AbsRefine(SATSolver& SatSolver,
const ASTNode& original_input);
-
+#endif
+
void ClearAllTables(void)
{
if (simp != NULL)