{
nassertions++;
const Assertion& assertion = *it;
+ Trace("nl-ext") << "Loaded " << assertion.d_assertion << " from theory"
+ << std::endl;
Node lit = assertion.d_assertion;
if (useRelevance && !v.isRelevant(lit))
{
}
}
+ // Try to be "more deterministic" by adding assertions in the order they were
+ // given
+ for (auto it = d_containing.facts_begin(); it != d_containing.facts_end();
+ ++it)
+ {
+ Node lit = (*it).d_assertion;
+ auto iait = init_assertions.find(lit);
+ if (iait != init_assertions.end())
+ {
+ assertions.push_back(lit);
+ init_assertions.erase(iait);
+ }
+ }
+ // Now add left over assertions that have been newly created within this
+ // function by the code above.
for (const Node& a : init_assertions)
{
assertions.push_back(a);
++(d_stats.d_checkRuns);
+ if (Trace.isOn("nl-ext"))
+ {
+ for (const auto& a : assertions)
+ {
+ Trace("nl-ext") << "Input assertion: " << a << std::endl;
+ }
+ }
+
if (options::nlExt())
{
// initialize the non-linear solver
// init last call with IAND
d_iandSlv.initLastCall(assertions, false_asserts, xts);
-
+
if (!lems.empty())
{
Trace("nl-ext") << " ...finished with " << lems.size()
<< std::endl;
return lems.size();
}
-
+
// main calls to nlExt
if (options::nlExt())
{
{
Assert(pconf.getKind() == TrustNodeKind::CONFLICT);
Trace("theory::conflict")
- << "EngineOutputChannel<" << d_theory << ">::conflict(" << pconf.getNode()
- << ")" << std::endl;
+ << "EngineOutputChannel<" << d_theory << ">::trustedConflict("
+ << pconf.getNode() << ")" << std::endl;
if (pconf.getGenerator() != nullptr)
{
++d_statistics.trustedConflicts;
LemmaStatus EngineOutputChannel::trustedLemma(TrustNode plem, LemmaProperty p)
{
+ Debug("theory::lemma") << "EngineOutputChannel<" << d_theory
+ << ">::trustedLemma(" << plem << ")" << std::endl;
Assert(plem.getKind() == TrustNodeKind::LEMMA);
if (plem.getGenerator() != nullptr)
{