Make registration of unit clauses more robust (#3965)
authorAndres Noetzli <andres.noetzli@gmail.com>
Mon, 9 Mar 2020 20:49:10 +0000 (13:49 -0700)
committerGitHub <noreply@github.com>
Mon, 9 Mar 2020 20:49:10 +0000 (15:49 -0500)
commitc74e9c8ba946387616345b70d63028896a0022c2
treea7446c7a7682845073390801b4f4acc498baccce
parent3740873b8b1ac7e1f2c203b26de6dd1a0ef73f43
Make registration of unit clauses more robust (#3965)

Fixes #3959. It can happen that we generate a lemma that results in a
unit clause that matches a unit clause that was added as an input.
However, we are asserting that a unit clause can only be registered as
either one of them. This commit fixes the issue by only registering a
unit clause from a lemma if it is not already satisfied. I chose this
fix because the existing code doesn't seem to do anything (in terms of
solving) for the case where we have a unit clause that is already
satisfied because of an input unit clause.
src/prop/minisat/core/Solver.cc
test/regress/CMakeLists.txt
test/regress/regress0/nl/issue3959.smt2 [new file with mode: 0644]