diff options
author | Tim King <taking@cs.nyu.edu> | 2013-04-01 15:39:25 -0400 |
---|---|---|
committer | Tim King <taking@cs.nyu.edu> | 2013-04-01 15:53:01 -0400 |
commit | cba10a096d97e82bd112b4d99a6ebe399d1369d6 (patch) | |
tree | 87b54af7bd4b643a33197f5c203a622296da910c /src/util | |
parent | 994e6eb72e3475967a9a40a0566744ce1794f20a (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.cpp | 4 | ||||
-rw-r--r-- | src/util/cardinality.h | 5 |
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 */ |