klee
|
#include <IncompleteSolver.h>
Public Member Functions | |
StagedSolverImpl (IncompleteSolver *_primary, Solver *_secondary) | |
~StagedSolverImpl () | |
bool | computeTruth (const Query &, bool &isValid) |
bool | computeValidity (const Query &, Solver::Validity &result) |
bool | computeValue (const Query &, ref< Expr > &result) |
bool | computeInitialValues (const Query &, const std::vector< const Array * > &objects, std::vector< std::vector< unsigned char > > &values, bool &hasSolution) |
SolverRunStatus | getOperationStatusCode () |
getOperationStatusCode - get the status of the last solver operation More... | |
char * | getConstraintLog (const Query &) |
void | setCoreSolverTimeout (time::Span timeout) |
Public Member Functions inherited from klee::SolverImpl | |
SolverImpl () | |
virtual | ~SolverImpl () |
virtual bool | computeValidity (const Query &query, Solver::Validity &result) |
virtual bool | computeTruth (const Query &query, bool &isValid)=0 |
virtual bool | computeValue (const Query &query, ref< Expr > &result)=0 |
virtual bool | computeInitialValues (const Query &query, const std::vector< const Array * > &objects, std::vector< std::vector< unsigned char > > &values, bool &hasSolution)=0 |
virtual SolverRunStatus | getOperationStatusCode ()=0 |
getOperationStatusCode - get the status of the last solver operation More... | |
virtual char * | getConstraintLog (const Query &query) |
virtual void | setCoreSolverTimeout (time::Span timeout) |
Private Attributes | |
IncompleteSolver * | primary |
Solver * | secondary |
Additional Inherited Members | |
Public Types inherited from klee::SolverImpl | |
enum | SolverRunStatus { SOLVER_RUN_STATUS_SUCCESS_SOLVABLE , SOLVER_RUN_STATUS_SUCCESS_UNSOLVABLE , SOLVER_RUN_STATUS_FAILURE , SOLVER_RUN_STATUS_TIMEOUT , SOLVER_RUN_STATUS_FORK_FAILED , SOLVER_RUN_STATUS_INTERRUPTED , SOLVER_RUN_STATUS_UNEXPECTED_EXIT_CODE , SOLVER_RUN_STATUS_WAITPID_FAILED } |
Static Public Member Functions inherited from klee::SolverImpl | |
static const char * | getOperationStatusString (SolverRunStatus statusCode) |
StagedSolver - Adapter class for staging an incomplete solver with a complete secondary solver, to form an (optimized) complete solver.
Definition at line 88 of file IncompleteSolver.h.
StagedSolverImpl::StagedSolverImpl | ( | IncompleteSolver * | _primary, |
Solver * | _secondary | ||
) |
Definition at line 61 of file IncompleteSolver.cpp.
StagedSolverImpl::~StagedSolverImpl | ( | ) |
Definition at line 67 of file IncompleteSolver.cpp.
|
virtual |
Implements klee::SolverImpl.
Definition at line 125 of file IncompleteSolver.cpp.
References klee::IncompleteSolver::computeInitialValues(), klee::SolverImpl::computeInitialValues(), klee::Solver::impl, primary, and secondary.
|
virtual |
computeTruth - Determine whether the given query expression is provably true given the constraints.
The query expression is guaranteed to be non-constant and have bool type.
This method should evaluate the logical formula:
Where is some assignment, are the constraints in the query and is the query expression.
[out] | isValid | - On success, true iff the logical formula is true. |
Implements klee::SolverImpl.
Definition at line 72 of file IncompleteSolver.cpp.
References klee::IncompleteSolver::computeTruth(), klee::SolverImpl::computeTruth(), klee::Solver::impl, klee::IncompleteSolver::MustBeTrue, klee::IncompleteSolver::None, primary, and secondary.
|
virtual |
computeValidity - Compute a full validity result for the query.
The query expression is guaranteed to be non-constant and have bool type.
SolverImpl provides a default implementation which uses computeTruth. Clients should override this if a more efficient implementation is available.
[out] | result | - if then Solver::True, else if then Solver::False, else Solver::Unknown |
Reimplemented from klee::SolverImpl.
Definition at line 83 of file IncompleteSolver.cpp.
References klee::SolverImpl::computeTruth(), klee::IncompleteSolver::computeValidity(), klee::SolverImpl::computeValidity(), klee::Solver::False, klee::Solver::impl, klee::IncompleteSolver::MayBeFalse, klee::IncompleteSolver::MayBeTrue, klee::IncompleteSolver::MustBeFalse, klee::IncompleteSolver::MustBeTrue, klee::Query::negateExpr(), primary, secondary, klee::Solver::True, klee::IncompleteSolver::TrueOrFalse, and klee::Solver::Unknown.
computeValue - Compute a feasible value for the expression.
The query expression is guaranteed to be non-constant.
Implements klee::SolverImpl.
Definition at line 116 of file IncompleteSolver.cpp.
References klee::IncompleteSolver::computeValue(), klee::SolverImpl::computeValue(), klee::Solver::impl, primary, and secondary.
|
virtual |
Reimplemented from klee::SolverImpl.
Definition at line 142 of file IncompleteSolver.cpp.
References klee::SolverImpl::getConstraintLog(), klee::Solver::impl, and secondary.
|
virtual |
getOperationStatusCode - get the status of the last solver operation
Implements klee::SolverImpl.
Definition at line 138 of file IncompleteSolver.cpp.
References klee::SolverImpl::getOperationStatusCode(), klee::Solver::impl, and secondary.
|
virtual |
Reimplemented from klee::SolverImpl.
Definition at line 146 of file IncompleteSolver.cpp.
References klee::Solver::impl, secondary, and klee::SolverImpl::setCoreSolverTimeout().
|
private |
Definition at line 90 of file IncompleteSolver.h.
Referenced by computeInitialValues(), computeTruth(), computeValidity(), computeValue(), and ~StagedSolverImpl().
|
private |
Definition at line 91 of file IncompleteSolver.h.
Referenced by computeInitialValues(), computeTruth(), computeValidity(), computeValue(), getConstraintLog(), getOperationStatusCode(), setCoreSolverTimeout(), and ~StagedSolverImpl().