3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-10 17:58:06 +00:00

disable lookahead simplification when external solver is used

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-02-09 21:46:45 -08:00
parent 18b66a4bd7
commit e183f8b743
5 changed files with 40 additions and 54 deletions

View file

@ -1505,8 +1505,6 @@ namespace sat {
if (m_conflicts_since_init < m_next_simplify) {
return;
}
integrity_checker si(*this);
si.check_watches();
m_simplifications++;
IF_VERBOSE(2, verbose_stream() << "(sat.simplify :simplifications " << m_simplifications << ")\n";);
@ -1518,17 +1516,14 @@ namespace sat {
m_cleaner();
CASSERT("sat_simplify_bug", check_invariant());
si.check_watches();
m_scc();
CASSERT("sat_simplify_bug", check_invariant());
si.check_watches();
m_simplifier(false);
CASSERT("sat_simplify_bug", check_invariant());
CASSERT("sat_missed_prop", check_missed_propagation());
si.check_watches();
if (!m_learned.empty()) {
m_simplifier(true);
CASSERT("sat_missed_prop", check_missed_propagation());
@ -1540,26 +1535,18 @@ namespace sat {
m_probing();
CASSERT("sat_missed_prop", check_missed_propagation());
CASSERT("sat_simplify_bug", check_invariant());
m_asymm_branch(false);
CASSERT("sat_missed_prop", check_missed_propagation());
CASSERT("sat_simplify_bug", check_invariant());
if (m_ext) {
m_ext->clauses_modifed();
m_ext->simplify();
}
if (m_config.m_lookahead_simplify) {
if (m_config.m_lookahead_simplify && !m_ext) {
lookahead lh(*this);
lh.simplify(true);
lh.collect_statistics(m_aux_stats);
}
if (false && m_config.m_lookahead_simplify) {
lookahead lh(*this);
lh.simplify(false);
lh.collect_statistics(m_aux_stats);
}
TRACE("sat", display(tout << "consistent: " << (!inconsistent()) << "\n"););
@ -1574,6 +1561,7 @@ namespace sat {
m_next_simplify = m_conflicts_since_init + m_config.m_simplify_max;
}
if (m_par) m_par->set_phase(*this);
#if 0
@ -1756,6 +1744,8 @@ namespace sat {
void solver::gc() {
if (m_conflicts_since_gc <= m_gc_threshold)
return;
if (m_config.m_gc_strategy == GC_DYN_PSM && !at_base_lvl())
return;
IF_VERBOSE(10, verbose_stream() << "(sat.gc)\n";);
CASSERT("sat_gc_bug", check_invariant());
switch (m_config.m_gc_strategy) {
@ -3233,8 +3223,8 @@ namespace sat {
bool solver::check_invariant() const {
if (!m_rlimit.inc()) return true;
integrity_checker checker(*this);
SASSERT(checker());
SASSERT(!m_ext || m_ext->validate());
VERIFY(checker());
VERIFY(!m_ext || m_ext->validate());
return true;
}