19 if (!
solver->enabled.probe)
22 const uint64_t conflicts =
statistics->conflicts;
23 if (
solver->last.conflicts.reduce == conflicts)
25 return solver->limits.probe.conflicts < conflicts;
33 "probing limit hit after %" PRIu64
" conflicts",
34 solver->limits.probe.conflicts);
51 bool substitute_at_the_end =
true;
55 substitute_at_the_end =
false;
63 substitute_at_the_end =
false;
66 if (substitute_at_the_end)
77 const unsigned max_rounds =
GET_OPTION (proberounds);
78 for (
unsigned round = 0; round != max_rounds; round++) {
79 unsigned before =
solver->active;
83 if (before ==
solver->active)
88 solver->last.ticks.probe =
solver->statistics_.search_ticks;
91 return solver->inconsistent ? 20 : 0;
105 return solver->inconsistent ? 20 : 0;
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void kissat_binary_clauses_backbone(kissat *solver)
void kissat_backtrack_propagate_and_flush_trail(kissat *solver)
ABC_NAMESPACE_IMPL_START void kissat_classify(struct kissat *solver)
bool kissat_congruence(kissat *solver)
void kissat_factor(kissat *solver)
#define UPDATE_CONFLICT_LIMIT(NAME, COUNT, SCALE_COUNT_FUNCTION, SCALE_DELTA)
#define KISSAT_assert(ignore)
#define kissat_phase(...)
int kissat_probe(kissat *solver)
int kissat_probe_initially(kissat *solver)
ABC_NAMESPACE_IMPL_START bool kissat_probing(kissat *solver)
#define STOP_SEARCH_AND_START_SIMPLIFIER(...)
#define STOP_SIMPLIFIER_AND_RESUME_SEARCH(...)
void kissat_substitute(kissat *solver, bool complete)
bool kissat_sweep(kissat *solver)
void kissat_transitive_reduction(kissat *solver)
void kissat_vivify(kissat *solver)