summaryrefslogtreecommitdiff
path: root/src/theory/theory_engine.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2010-03-15 21:10:29 +0000
committerMorgan Deters <mdeters@gmail.com>2010-03-15 21:10:29 +0000
commit12ad4cf2de936acbf8c21117804c69b2deaa7272 (patch)
tree39280aebed0a299b080512d1c26d1adad827fcc7 /src/theory/theory_engine.h
parentbb21cdc3a551fa46b5e77345bb5cbcb55cba2fa6 (diff)
This checkin resolves bug #57.
* CVC4::theory::Interrupted no longer derives CVC4::Exception. * Interrupted is only thrown if "safe" parameter is TRUE ! * UF returns one conflict (instead of waiting for Interrupted to be thrown). * Minor build system work (quieter builds if V=0, better handling of build profiles in configure)
Diffstat (limited to 'src/theory/theory_engine.h')
-rw-r--r--src/theory/theory_engine.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/theory/theory_engine.h b/src/theory/theory_engine.h
index cb0158dfe..15c80434f 100644
--- a/src/theory/theory_engine.h
+++ b/src/theory/theory_engine.h
@@ -69,10 +69,12 @@ class TheoryEngine {
d_conflictNode(context) {
}
- void conflict(TNode conflictNode, bool) throw(theory::Interrupted) {
+ void conflict(TNode conflictNode, bool safe) throw(theory::Interrupted) {
Debug("theory") << "EngineOutputChannel::conflict(" << conflictNode << ")" << std::endl;
d_conflictNode = conflictNode;
- throw theory::Interrupted();
+ if(safe) {
+ throw theory::Interrupted();
+ }
}
void propagate(TNode, bool) throw(theory::Interrupted) {
@@ -255,7 +257,7 @@ public:
* @param effort the effort level to use
*/
inline bool check(theory::Theory::Effort effort) {
- bool ok = true;
+ d_theoryOut.d_conflictNode = Node::null();
try {
//d_bool.check(effort);
d_uf.check(effort);
@@ -264,9 +266,8 @@ public:
//d_bv.check(effort);
} catch(const theory::Interrupted&) {
Debug("theory") << "TheoryEngine::check() => conflict" << std::endl;
- ok = false;
}
- return ok;
+ return d_theoryOut.d_conflictNode.get().isNull();
}
/**
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback