summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorTim King <taking@cs.nyu.edu>2013-04-01 15:39:25 -0400
committerTim King <taking@cs.nyu.edu>2013-04-01 15:53:01 -0400
commitcba10a096d97e82bd112b4d99a6ebe399d1369d6 (patch)
tree87b54af7bd4b643a33197f5c203a622296da910c /src/util
parent994e6eb72e3475967a9a40a0566744ce1794f20a (diff)
Fix for iff terms over equalities between the same term and differing constants.
Diffstat (limited to 'src/util')
-rw-r--r--src/util/cardinality.cpp4
-rw-r--r--src/util/cardinality.h5
2 files changed, 9 insertions, 0 deletions
diff --git a/src/util/cardinality.cpp b/src/util/cardinality.cpp
index 8abaa5611..36f09f137 100644
--- a/src/util/cardinality.cpp
+++ b/src/util/cardinality.cpp
@@ -193,6 +193,10 @@ Cardinality::CardinalityComparison Cardinality::compare(const Cardinality& c) co
Unreachable();
}
+bool Cardinality::knownLessThanOrEqual(const Cardinality& c) const throw() {
+ CardinalityComparison cmp = this->compare(c);
+ return cmp == LESS || cmp == EQUAL;
+}
std::string Cardinality::toString() const throw() {
std::stringstream ss;
diff --git a/src/util/cardinality.h b/src/util/cardinality.h
index c536ea065..c9d051c9e 100644
--- a/src/util/cardinality.h
+++ b/src/util/cardinality.h
@@ -245,6 +245,11 @@ public:
*/
std::string toString() const throw();
+ /**
+ * Compare two cardinalities and if it is known that the current
+ * cardinality is smaller or equal to c, it returns true.
+ */
+ bool knownLessThanOrEqual(const Cardinality& c) const throw();
};/* class Cardinality */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback