19#ifndef __CVC4__RESULT_H
20#define __CVC4__RESULT_H
71 enum Validity d_validity;
73 enum UnknownExplanation d_unknownExplanation;
74 std::string d_inputName;
79 d_validity(VALIDITY_UNKNOWN),
81 d_unknownExplanation(UNKNOWN_REASON),
86 d_validity(VALIDITY_UNKNOWN),
88 d_unknownExplanation(UNKNOWN_REASON),
89 d_inputName(inputName) {
91 "Must provide a reason for satisfiability being unknown");
96 d_which(TYPE_VALIDITY),
97 d_unknownExplanation(UNKNOWN_REASON),
98 d_inputName(inputName) {
100 "Must provide a reason for validity being unknown");
104 d_validity(VALIDITY_UNKNOWN),
106 d_unknownExplanation(unknownExplanation),
107 d_inputName(inputName) {
109 "improper use of unknown-result constructor");
114 d_which(TYPE_VALIDITY),
115 d_unknownExplanation(unknownExplanation),
116 d_inputName(inputName) {
118 "improper use of unknown-result constructor");
120 Result(
const std::string& s, std::string inputName =
"");
124 d_inputName = inputName;
128 return d_which == TYPE_SAT ? d_sat : SAT_UNKNOWN;
131 return d_which == TYPE_VALIDITY ? d_validity : VALIDITY_UNKNOWN;
134 return isSat() == SAT_UNKNOWN && isValid() == VALIDITY_UNKNOWN;
140 return d_which == TYPE_NONE;
144 "This result is not unknown, so the reason for "
145 "being unknown cannot be inquired of it" );
146 return d_unknownExplanation;
150 inline bool operator!=(
const Result& r)
const throw();
154 std::
string toString() const;
156 std::
string getInputName()
const {
return d_inputName; }
161 return !(*
this == r);
Three-valued SMT result, with optional explanation.
enum UnknownExplanation whyUnknown() const
enum Validity isValid() const
Result(enum Sat s, std::string inputName="")
Result asSatisfiabilityResult() const
bool operator==(const Result &r) const
Result(enum Sat s, enum UnknownExplanation unknownExplanation, std::string inputName="")
Result(const Result &r, std::string inputName)
bool operator!=(const Result &r) const
Result(enum Validity v, std::string inputName="")
Result(const std::string &s, std::string inputName="")
Result(enum Validity v, enum UnknownExplanation unknownExplanation, std::string inputName="")
Class encapsulating CVC4 expression types.
Macros that should be defined everywhere during the building of the libraries and driver binary,...
CVC4's exception base class and some associated utilities.
bool operator==(enum Result::Sat s, const Result &r)
bool operator!=(enum Result::Sat s, const Result &r)
std::ostream & operator<<(std::ostream &out, const TypeCheckingException &e)
void CheckArgument(bool cond, const T &arg, const char *fmt,...)