mirror of
https://github.com/Z3Prover/z3
synced 2025-09-20 00:14:49 +00:00
remove dual solver approach
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
1f964eea90
commit
8e3185ffe3
13 changed files with 44 additions and 537 deletions
|
@ -479,9 +479,6 @@ namespace euf {
|
|||
|
||||
if (unit_propagate())
|
||||
return sat::check_result::CR_CONTINUE;
|
||||
|
||||
if (!init_relevancy())
|
||||
give_up = true;
|
||||
|
||||
unsigned num_nodes = m_egraph.num_nodes();
|
||||
auto apply_solver = [&](th_solver* e) {
|
||||
|
@ -546,9 +543,7 @@ namespace euf {
|
|||
for (auto* e : m_solvers)
|
||||
e->push();
|
||||
m_egraph.push();
|
||||
if (m_dual_solver)
|
||||
m_dual_solver->push();
|
||||
push_relevant();
|
||||
m_relevancy.push();
|
||||
}
|
||||
|
||||
void solver::pop(unsigned n) {
|
||||
|
@ -558,7 +553,7 @@ namespace euf {
|
|||
e->pop(n);
|
||||
si.pop(n);
|
||||
m_egraph.pop(n);
|
||||
pop_relevant(n);
|
||||
m_relevancy.pop(n);
|
||||
scope const & sc = m_scopes[m_scopes.size() - n];
|
||||
for (unsigned i = m_var_trail.size(); i-- > sc.m_var_lim; ) {
|
||||
bool_var v = m_var_trail[i];
|
||||
|
@ -567,8 +562,6 @@ namespace euf {
|
|||
}
|
||||
m_var_trail.shrink(sc.m_var_lim);
|
||||
m_scopes.shrink(m_scopes.size() - n);
|
||||
if (m_dual_solver)
|
||||
m_dual_solver->pop(n);
|
||||
SASSERT(m_egraph.num_scopes() == m_scopes.size());
|
||||
TRACE("euf_verbose", display(tout << "pop to: " << m_scopes.size() << "\n"););
|
||||
}
|
||||
|
@ -741,6 +734,13 @@ namespace euf {
|
|||
}
|
||||
}
|
||||
|
||||
bool solver::is_relevant(bool_var v) const {
|
||||
if (m_relevancy.enabled())
|
||||
return m_relevancy.is_relevant(v);
|
||||
auto* e = bool_var2enode(v);
|
||||
return !e || is_relevant(e);
|
||||
}
|
||||
|
||||
void solver::relevant_eh(euf::enode* n) {
|
||||
if (m_qsolver)
|
||||
m_qsolver->relevant_eh(n);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue