diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2021-04-12 16:55:44 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-12 21:55:44 +0000 |
commit | 76f495646c0e3a95f2474c5d746bc61ece18f89f (patch) | |
tree | 5390007f4be229dfb18e641f34b9d9df6a9dea92 /src/theory/valuation.h | |
parent | af398235ef9f3a909991fddbb71d43434d6cf3a1 (diff) |
Fix computation of whether a type is finite (#6312)
This PR generalizes TypeNode::isFinite / TypeNode::isInterpretedFinite with TypeNode::getCardinalityClass. It then uses this method to fix our computation of when a type should be treated as finite.
Fixes #4260, fixes #6100 (that benchmark now says unknown without an error).
Diffstat (limited to 'src/theory/valuation.h')
-rw-r--r-- | src/theory/valuation.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/theory/valuation.h b/src/theory/valuation.h index af7e4205e..9eaf24616 100644 --- a/src/theory/valuation.h +++ b/src/theory/valuation.h @@ -215,6 +215,11 @@ public: context::CDList<Assertion>::const_iterator factsBegin(TheoryId tid); /** The beginning iterator of facts for theory tid.*/ context::CDList<Assertion>::const_iterator factsEnd(TheoryId tid); + /** + * Is the cardinality of type tn finite? This method depends on whether + * finite model finding is enabled. For details, see theory_engine.h. + */ + bool isFiniteType(TypeNode tn) const; };/* class Valuation */ } // namespace theory |