summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@cs.nyu.edu>2014-09-18 19:15:26 -0400
committerMorgan Deters <mdeters@cs.nyu.edu>2014-09-18 19:15:26 -0400
commit49747c4574eec3cfa192ffb6e6a2451b949e8b3e (patch)
treea12ac6ac5ff3b882a04fdbe4a67eba1ee8f434a8
parente8f2fcf2fd26542a3b1f24a67adae62508a741b4 (diff)
Resource spending support in theories (and especially in quantifiers).
-rw-r--r--src/prop/prop_engine.cpp2
-rw-r--r--src/theory/quantifiers_engine.cpp3
-rw-r--r--src/theory/theory_engine.cpp2
3 files changed, 6 insertions, 1 deletions
diff --git a/src/prop/prop_engine.cpp b/src/prop/prop_engine.cpp
index a02e40e32..1572dfa88 100644
--- a/src/prop/prop_engine.cpp
+++ b/src/prop/prop_engine.cpp
@@ -284,7 +284,7 @@ void PropEngine::interrupt() throw(ModalException) {
}
void PropEngine::spendResource() throw() {
- // TODO implement me
+ d_satSolver->spendResource();
checkTime();
}
diff --git a/src/theory/quantifiers_engine.cpp b/src/theory/quantifiers_engine.cpp
index 23b3ac50a..4855083a8 100644
--- a/src/theory/quantifiers_engine.cpp
+++ b/src/theory/quantifiers_engine.cpp
@@ -577,6 +577,9 @@ bool QuantifiersEngine::existsInstantiation( Node f, InstMatch& m, bool modEq, b
}
bool QuantifiersEngine::addLemma( Node lem, bool doCache ){
+ // For resource-limiting (also does a time check).
+ getOutputChannel().spendResource();
+
if( doCache ){
Debug("inst-engine-debug") << "Adding lemma : " << lem << std::endl;
lem = Rewriter::rewrite(lem);
diff --git a/src/theory/theory_engine.cpp b/src/theory/theory_engine.cpp
index 19409faf7..073f2ab94 100644
--- a/src/theory/theory_engine.cpp
+++ b/src/theory/theory_engine.cpp
@@ -1341,6 +1341,8 @@ void TheoryEngine::ensureLemmaAtoms(const std::vector<TNode>& atoms, theory::The
}
theory::LemmaStatus TheoryEngine::lemma(TNode node, bool negated, bool removable, bool preprocess, theory::TheoryId atomsTo) {
+ // For resource-limiting (also does a time check).
+ spendResource();
// Do we need to check atoms
if (atomsTo != theory::THEORY_LAST) {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback