10#ifndef KLEE_INCOMPLETESOLVER_H
11#define KLEE_INCOMPLETESOLVER_H
78 const std::vector<const Array*>
80 std::vector< std::vector<unsigned char> >
82 bool &hasSolution) = 0;
101 const std::vector<const Array*> &objects,
102 std::vector< std::vector<unsigned char> > &values,
static PartialValidity negatePartialValidity(PartialValidity pv)
@ TrueOrFalse
The query is known to have both true and false assignments.
@ MustBeTrue
The query is provably true.
@ MustBeFalse
The query is provably false.
@ None
The validity of the query is unknown.
virtual bool computeInitialValues(const Query &, const std::vector< const Array * > &objects, std::vector< std::vector< unsigned char > > &values, bool &hasSolution)=0
virtual ~IncompleteSolver()
virtual bool computeValue(const Query &, ref< Expr > &result)=0
computeValue - Attempt to compute a value for the given expression.
virtual IncompleteSolver::PartialValidity computeValidity(const Query &)
virtual IncompleteSolver::PartialValidity computeTruth(const Query &)=0
SolverImpl - Abstract base clase for solver implementations.
bool computeValidity(const Query &, Solver::Validity &result)
bool computeInitialValues(const Query &, const std::vector< const Array * > &objects, std::vector< std::vector< unsigned char > > &values, bool &hasSolution)
char * getConstraintLog(const Query &)
void setCoreSolverTimeout(time::Span timeout)
SolverRunStatus getOperationStatusCode()
getOperationStatusCode - get the status of the last solver operation
IncompleteSolver * primary
bool computeValue(const Query &, ref< Expr > &result)
StagedSolverImpl(IncompleteSolver *_primary, Solver *_secondary)
bool computeTruth(const Query &, bool &isValid)