3
0
Fork 0
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:
Nikolaj Bjorner 2021-12-19 15:21:12 -08:00
parent 2afc58cc08
commit adb3d68743
4 changed files with 18 additions and 13 deletions

View file

@ -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)