}
void TheoryProxy::theoryCheck(theory::Theory::Effort effort) {
+ while (!d_queue.empty()) {
+ TNode assertion = d_queue.front();
+ d_queue.pop();
+ d_theoryEngine->assertFact(assertion);
+ }
d_theoryEngine->check(effort);
}
Node literalNode = d_cnfStream->getNode(l);
Debug("prop") << "enqueueing theory literal " << l << " " << literalNode << std::endl;
Assert(!literalNode.isNull());
- d_theoryEngine->assertFact(literalNode);
+ d_queue.push(literalNode);
}
SatLiteral TheoryProxy::getNextDecisionRequest(bool &stopSearch) {
#include "util/options.h"
#include "util/stats.h"
+#include "context/cdqueue.h"
+
#include "prop/sat_solver.h"
namespace CVC4 {
/** Context we will be using to synchronzie the sat solver */
context::Context* d_context;
+ /** Queue of asserted facts */
+ context::CDQueue<TNode> d_queue;
+
/**
* Set of all lemmas that have been "shared" in the portfolio---i.e.,
* all imported and exported lemmas.
d_cnfStream(cnfStream),
d_decisionEngine(decisionEngine),
d_theoryEngine(theoryEngine),
- d_context(context)
+ d_context(context),
+ d_queue(context)
{}
}/* CVC4::prop namespace */