mirror of
https://github.com/Z3Prover/z3
synced 2025-05-14 03:04:44 +00:00
fixes to literal propagation exposed by bitwise and unit test
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
2afc58cc08
commit
adb3d68743
4 changed files with 18 additions and 13 deletions
|
@ -88,8 +88,15 @@ namespace polysat {
|
|||
if (m_bvars.is_false(cl[i]))
|
||||
continue;
|
||||
signed_constraint sc = s.lit2cnstr(cl[i]);
|
||||
if (sc.is_currently_false(s))
|
||||
continue;
|
||||
if (sc.is_currently_false(s)) {
|
||||
if (m_bvars.is_true(cl[i])) {
|
||||
s.set_conflict(sc);
|
||||
return;
|
||||
}
|
||||
s.assign_eval(~cl[i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
m_bvars.watch(cl[i]).push_back(&cl);
|
||||
std::swap(cl[!first], cl[i]);
|
||||
if (!first)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue