22 default: assert(0 &&
"invalid partial validity");
43 bool trueCorrect = trueResult !=
None,
44 falseCorrect = falseResult !=
None;
46 if (trueCorrect && falseCorrect) {
48 }
else if (trueCorrect) {
50 }
else if (falseCorrect) {
64 secondary(_secondary) {
126 const std::vector<const Array*>
128 std::vector< std::vector<unsigned char> >
@ 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 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
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
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)
Query negateExpr() const
negateExpr - Return a copy of the query with the expression negated.