3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-06 07:15:47 +00:00

bailout for saturation lemmas

This commit is contained in:
Jakob Rath 2022-07-01 11:51:52 +02:00
parent c78007fd1a
commit d473c23e5b
5 changed files with 89 additions and 24 deletions

View file

@ -73,6 +73,7 @@ namespace polysat {
LOG("consequent " << c << " value: " << c.bvalue(s) << " is-false: " << c.is_currently_false(s) << " " << core.contains(~c));
// ensure new core is a conflict
// TODO: don't we need to check the m_new_constraints too? or maybe that is implicit in the rules (should check it)
if (!c.is_currently_false(s) && c.bvalue(s) != l_false)
return false;
@ -99,7 +100,7 @@ namespace polysat {
core.reset();
for (auto d : m_new_constraints)
core.insert(d);
if (c.bvalue(s) != l_false)
if (c.bvalue(s) != l_false) // conflict is due to the evaluation of c, so it depends on the variable values
core.insert_vars(c);
core.insert(~c);
core.log_inference(inf_name);