3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-28 08:58:44 +00:00
This commit is contained in:
Jakob Rath 2023-08-01 16:03:17 +02:00
parent f2d1ed7b07
commit 417dbf3354

View file

@ -166,13 +166,12 @@ namespace polysat {
} }
void slicing::push_scope() { void slicing::push_scope() {
SASSERT(!is_conflict());
if (can_propagate()) if (can_propagate())
propagate(); propagate();
m_scopes.push_back(m_trail.size()); m_scopes.push_back(m_trail.size());
m_egraph.push(); m_egraph.push();
m_dep_size_trail.push_back(m_dep_var.size()); m_dep_size_trail.push_back(m_dep_var.size());
SASSERT(m_needs_congruence.empty()); SASSERT(!m_solver.config().m_slicing_congruence || m_needs_congruence.empty());
} }
void slicing::pop_scope(unsigned num_scopes) { void slicing::pop_scope(unsigned num_scopes) {
@ -733,7 +732,9 @@ namespace polysat {
} }
bool slicing::can_propagate() const { bool slicing::can_propagate() const {
return !m_needs_congruence.empty() || m_egraph.can_propagate(); if (m_solver.config().m_slicing_congruence && !m_needs_congruence.empty())
return true;
return m_egraph.can_propagate();
} }
void slicing::propagate() { void slicing::propagate() {