3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-31 08:23:17 +00:00

track dependency of base-level conflict

This commit is contained in:
Jakob Rath 2023-02-01 10:47:26 +01:00
parent 3c822117d1
commit 1bb68a4fc1
4 changed files with 10 additions and 8 deletions

View file

@ -158,6 +158,7 @@ namespace polysat {
SASSERT(m_vars_occurring.empty());
SASSERT(m_lemmas.empty());
SASSERT(m_narrow_queue.empty());
SASSERT(m_dep.is_null());
}
return is_empty;
}
@ -170,6 +171,7 @@ namespace polysat {
m_lemmas.reset();
m_narrow_queue.reset();
m_level = UINT_MAX;
m_dep = null_dependency;
SASSERT(empty());
}
@ -181,10 +183,11 @@ namespace polysat {
return contains(lit) || contains(~lit);
}
void conflict::init_at_base_level() {
void conflict::init_at_base_level(dependency dep) {
SASSERT(empty());
SASSERT(s.at_base_level());
m_level = s.m_level;
m_dep = dep;
SASSERT(!empty());
// TODO: logger().begin_conflict???
// TODO: check uses of logger().begin_conflict(). sometimes we call it before adding constraints, sometimes after...
@ -434,7 +437,7 @@ namespace polysat {
clause_builder lemma(s);
for (auto c : *this)
for (signed_constraint c : *this)
lemma.insert(~c);
for (unsigned v : m_vars) {