summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@cs.nyu.edu>2013-05-10 17:08:23 -0400
committerMorgan Deters <mdeters@cs.nyu.edu>2013-05-20 16:51:05 -0400
commit10bc76f38b5fa7d213f698fa7b8de14d20e40c07 (patch)
tree77ae58c09799fac21210fe407022cbb406e130bc /src
parent01654ea86af49fdf0859811f09c64de66dcc9f59 (diff)
disable Logic-checking with finite model finding for now, since FMF uses Rationals, making the check think arithmetic should be enabled (but it's not)
Diffstat (limited to 'src')
-rw-r--r--src/theory/theory_engine.cpp29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/theory/theory_engine.cpp b/src/theory/theory_engine.cpp
index 5ee8e5fda..ee37f331e 100644
--- a/src/theory/theory_engine.cpp
+++ b/src/theory/theory_engine.cpp
@@ -192,18 +192,23 @@ void TheoryEngine::preRegister(TNode preprocessed) {
// Remove the top theory, if any more that means multiple theories were involved
bool multipleTheories = Theory::setRemove(Theory::theoryOf(preprocessed), theories);
TheoryId i;
- while((i = Theory::setPop(theories)) != THEORY_LAST) {
- if(!d_logicInfo.isTheoryEnabled(i)) {
- LogicInfo newLogicInfo = d_logicInfo.getUnlockedCopy();
- newLogicInfo.enableTheory(i);
- newLogicInfo.lock();
- stringstream ss;
- ss << "The logic was specified as " << d_logicInfo.getLogicString()
- << ", which doesn't include " << i
- << ", but found a term in that theory." << endl
- << "You might want to extend your logic to " << newLogicInfo
- << endl;
- throw LogicException(ss.str());
+ // These checks don't work with finite model finding, because it
+ // uses Rational constants to represent cardinality constraints,
+ // even though arithmetic isn't actually involved.
+ if(!options::finiteModelFind()) {
+ while((i = Theory::setPop(theories)) != THEORY_LAST) {
+ if(!d_logicInfo.isTheoryEnabled(i)) {
+ LogicInfo newLogicInfo = d_logicInfo.getUnlockedCopy();
+ newLogicInfo.enableTheory(i);
+ newLogicInfo.lock();
+ stringstream ss;
+ ss << "The logic was specified as " << d_logicInfo.getLogicString()
+ << ", which doesn't include " << i
+ << ", but found a term in that theory." << endl
+ << "You might want to extend your logic to "
+ << newLogicInfo.getLogicString() << endl;
+ throw LogicException(ss.str());
+ }
}
}
if (multipleTheories) {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback