namespace CVC4 {
namespace theory {
+std::ostream& operator<<(std::ostream& os, EqualityStatus s)
+{
+ switch (s)
+ {
+ case EQUALITY_TRUE_AND_PROPAGATED:
+ os << "EQUALITY_TRUE_AND_PROPAGATED";
+ break;
+ case EQUALITY_FALSE_AND_PROPAGATED:
+ os << "EQUALITY_FALSE_AND_PROPAGATED";
+ break;
+ case EQUALITY_TRUE: os << "EQUALITY_TRUE"; break;
+ case EQUALITY_FALSE: os << "EQUALITY_FALSE"; break;
+ case EQUALITY_TRUE_IN_MODEL: os << "EQUALITY_TRUE_IN_MODEL"; break;
+ case EQUALITY_FALSE_IN_MODEL: os << "EQUALITY_FALSE_IN_MODEL"; break;
+ case EQUALITY_UNKNOWN: os << "EQUALITY_UNKNOWN"; break;
+ default: Unhandled(); break;
+ }
+ return os;
+}
+
bool equalityStatusCompatible(EqualityStatus s1, EqualityStatus s2) {
switch (s1) {
case EQUALITY_TRUE:
EQUALITY_UNKNOWN
};/* enum EqualityStatus */
+std::ostream& operator<<(std::ostream& os, EqualityStatus s);
+
/**
* Returns true if the two statuses are compatible, i.e. both TRUE
* or both FALSE (regardless of inmodel/propagation).