Workaround for incremental unsat cores (#1962)
authorAndres Noetzli <andres.noetzli@gmail.com>
Wed, 13 Jun 2018 22:16:24 +0000 (15:16 -0700)
committerGitHub <noreply@github.com>
Wed, 13 Jun 2018 22:16:24 +0000 (15:16 -0700)
commitea24eec6b7914550c84cb09c569b7fc80304d8e7
treea6468fec26ca8e10bde307abfd17261819696e51
parentc4905e4aa2ec70929335497130f802254a0d4b4e
Workaround for incremental unsat cores (#1962)

This commit implements a workaround for computing unsat cores while
doing incremental solving to address #1349. Currently, our resolution
proofs do not handle clauses with a lower-than-assertion-level correctly
because the resolution proofs for them get removed when popping the
context but the SAT solver keeps using them. The workaround changes the
behavior of the SAT solver to add clauses always at the current level if
incremental solving and unsat cores are enabled. This makes sure that
all learned clauses are removed when we pop below the level that they
were learned at. This may degrade performance because the SAT solver has
to relearn clauses.
src/prop/minisat/core/Solver.cc