{
d_preprocContext->spendResource(Resource::PreprocessStep);
- theory::booleans::CircuitPropagator* propagator =
- d_preprocContext->getCircuitPropagator();
-
- for (size_t i = 0, size = assertionsToPreprocess->size(); i < size; ++i)
+ if (Trace.isOn("non-clausal-simplify"))
{
- Trace("non-clausal-simplify") << "Assertion #" << i << " : "
- << (*assertionsToPreprocess)[i] << std::endl;
+ for (size_t i = 0, size = assertionsToPreprocess->size(); i < size; ++i)
+ {
+ Trace("non-clausal-simplify")
+ << "Assertion #" << i << " : " << (*assertionsToPreprocess)[i]
+ << std::endl;
+ }
}
- if (propagator->getNeedsFinish())
- {
- propagator->finish();
- propagator->setNeedsFinish(false);
- }
+ theory::booleans::CircuitPropagator* propagator =
+ d_preprocContext->getCircuitPropagator();
propagator->initialize();
// Assert all the assertions to the propagator
<< "conflict in non-clausal propagation" << std::endl;
assertionsToPreprocess->clear();
assertionsToPreprocess->pushBackTrusted(conf);
- propagator->setNeedsFinish(true);
return PreprocessingPassResult::CONFLICT;
}
assertionsToPreprocess->clear();
Node n = NodeManager::currentNM()->mkConst<bool>(false);
assertionsToPreprocess->push_back(n, false, false, d_llpg.get());
- propagator->setNeedsFinish(true);
return PreprocessingPassResult::CONFLICT;
}
}
assertionsToPreprocess->clear();
Node n = NodeManager::currentNM()->mkConst<bool>(false);
assertionsToPreprocess->push_back(n);
- propagator->setNeedsFinish(true);
return PreprocessingPassResult::CONFLICT;
}
default:
{
// Keep the literal
learned_literals[j++] = learned_literals[i];
- // Its a literal that could not be processed as a substitution or
- // conflict. In this case, we notify the context of the learned
- // literal, which will process it with the learned literal manager.
- d_preprocContext->notifyLearnedLiteral(learnedLiteral);
}
+ // Its a literal that could not be processed as a substitution or
+ // conflict. In this case, we notify the context of the learned
+ // literal, which will process it with the learned literal manager.
+ d_preprocContext->notifyLearnedLiteral(learnedLiteral);
break;
}
}
assertionsToPreprocess->conjoin(replIndex, newConj, pg);
}
- propagator->setNeedsFinish(true);
-
// Note that typically ttls.apply(assert)==assert here.
// However, this invariant is invalidated for cases where we use explicit
// equality assertions for variables solved in incremental mode that already