mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 09:35:32 +00:00
Assertion was too strong (via test_ineq1)
This commit is contained in:
parent
05a1f4d096
commit
71acba20e2
1 changed files with 5 additions and 1 deletions
|
@ -322,7 +322,11 @@ namespace polysat {
|
|||
lemma->set_redundant(true);
|
||||
for (sat::literal lit : *lemma) {
|
||||
LOG(lit_pp(s, lit));
|
||||
SASSERT(s.m_bvars.value(lit) != l_true);
|
||||
// NOTE: it can happen that the literal's bvalue is l_true at this point.
|
||||
// E.g., lit has been assigned to true on the search stack but not yet propagated.
|
||||
// A propagation before lit will cause a conflict, and by chance the viable conflict will contain lit.
|
||||
// (in that case, the evaluation of lit in the current assignment must be false, and it would have caused a conflict by itself when propagated.)
|
||||
SASSERT(s.m_bvars.value(lit) != l_true || !s.lit2cnstr(lit).is_currently_true(s));
|
||||
}
|
||||
m_lemmas.push_back(std::move(lemma));
|
||||
// TODO: pass to inference_logger (with name)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue