32 const std::vector<const Array *> &objects,
33 std::vector<std::vector<unsigned char> > &values,
55 const Query &query,
const std::vector<const Array *> &objects,
56 std::vector<std::vector<unsigned char> > &values,
bool &hasSolution) {
68 ConstantExpr *CE = dyn_cast<ConstantExpr>(constraintEvaluated);
70 llvm::errs() <<
"Constraint did not evalaute to a constant:\n";
71 llvm::errs() <<
"Constraint:\n" << constraint <<
"\n";
72 llvm::errs() <<
"Evaluated Constraint:\n" << constraintEvaluated <<
"\n";
73 llvm::errs() <<
"Assignment:\n";
79 llvm::errs() <<
"Constraint evaluated to false when using assignment\n";
80 llvm::errs() <<
"Constraint:\n" << constraint <<
"\n";
81 llvm::errs() <<
"Assignment:\n";
89 ConstantExpr *CE = dyn_cast<ConstantExpr>(queryExprEvaluated);
91 llvm::errs() <<
"Query expression did not evalaute to a constant:\n";
92 llvm::errs() <<
"Expression:\n" << query.
expr <<
"\n";
93 llvm::errs() <<
"Evaluated expression:\n" << queryExprEvaluated <<
"\n";
94 llvm::errs() <<
"Assignment:\n";
109 <<
"Query Expression evaluated to true when using assignment\n";
110 llvm::errs() <<
"Expression:\n" << query.
expr <<
"\n";
111 llvm::errs() <<
"Assignment:\n";
130 Query augmentedQuery(constraints, query.
expr);
134 llvm::errs() <<
"Query with assignment as constraints:\n" << logText <<
"\n";
bool computeValidity(const Query &, Solver::Validity &result)
void setCoreSolverTimeout(time::Span timeout)
bool computeValue(const Query &, ref< Expr > &result)
AssignmentValidatingSolver(Solver *_solver)
char * getConstraintLog(const Query &)
~AssignmentValidatingSolver()
bool computeTruth(const Query &, bool &isValid)
SolverRunStatus getOperationStatusCode()
getOperationStatusCode - get the status of the last solver operation
void dumpAssignmentQuery(const Query &query, const Assignment &assignment)
bool computeInitialValues(const Query &, const std::vector< const Array * > &objects, std::vector< std::vector< unsigned char > > &values, bool &hasSolution)
ref< Expr > evaluate(const Array *mo, unsigned index) const
ConstraintSet createConstraintsFromAssignment() const
bool isTrue() const
isTrue - Is this the true expression.
bool isFalse() const
isFalse - Is this the false expression.
void push_back(const ref< Expr > &e)
SolverImpl - Abstract base clase for solver implementations.
virtual void setCoreSolverTimeout(time::Span timeout)
virtual bool computeTruth(const Query &query, bool &isValid)=0
virtual bool computeInitialValues(const Query &query, const std::vector< const Array * > &objects, std::vector< std::vector< unsigned char > > &values, bool &hasSolution)=0
virtual bool computeValue(const Query &query, ref< Expr > &result)=0
virtual char * getConstraintLog(const Query &query)
virtual bool computeValidity(const Query &query, Solver::Validity &result)
virtual SolverRunStatus getOperationStatusCode()=0
getOperationStatusCode - get the status of the last solver operation
virtual char * getConstraintLog(const Query &query)
Solver * createAssignmentValidatingSolver(Solver *s)
const ConstraintSet & constraints