mirror of
https://github.com/Z3Prover/z3
synced 2025-07-18 18:36:41 +00:00
Ensure core is conflicting also after set(v)
This commit is contained in:
parent
d9eca1f40f
commit
f04345724c
1 changed files with 7 additions and 1 deletions
|
@ -96,6 +96,12 @@ namespace polysat {
|
||||||
LOG("Conflict: v" << v);
|
LOG("Conflict: v" << v);
|
||||||
SASSERT(empty());
|
SASSERT(empty());
|
||||||
m_conflict_var = v;
|
m_conflict_var = v;
|
||||||
|
for (auto c : s().m_cjust[v]) {
|
||||||
|
insert(c);
|
||||||
|
for (auto v : c->vars())
|
||||||
|
if (s().is_assigned(v))
|
||||||
|
m_vars.insert(v);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void conflict_core::insert(signed_constraint c) {
|
void conflict_core::insert(signed_constraint c) {
|
||||||
|
@ -253,7 +259,7 @@ namespace polysat {
|
||||||
// - cjust_v contains true constraints
|
// - cjust_v contains true constraints
|
||||||
// - core contains both false and true constraints (originally only false ones, but additional true ones may come from saturation)
|
// - core contains both false and true constraints (originally only false ones, but additional true ones may come from saturation)
|
||||||
|
|
||||||
if (is_bailout()) // TODO: don't we still need to track cjust/m_vars?
|
if (is_bailout())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (conflict_var() == v) {
|
if (conflict_var() == v) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue