CRef Solver::propagate(TheoryCheckType type)
{
CRef confl = CRef_Undef;
+ recheck = false;
ScopedBool scoped_bool(minisat_busy, true);
theoryCheck(CVC4::theory::Theory::FULL_EFFORT);
// If there are lemmas (or conflicts) update them
if (lemmas.size() > 0) {
+ recheck = true;
return updateLemmas();
}
}
if (!order_heap.empty() || qhead < trail.size()) {
check_type = CHECK_WITH_PROPAGATION_STANDARD;
continue;
+ } else if (recheck) {
+ // There some additional stuff added, so we go for another full-check
+ continue;
} else {
// Yes, we're truly satisfiable
return l_True;
/** Is the lemma removable */
vec<bool> lemmas_removable;
+ /** Do a another check if FULL_EFFORT was the last one */
+ bool recheck;
+
/** Shrink 'cs' to contain only clauses below given level */
void removeClausesAboveLevel(vec<CRef>& cs, int level);