Add assumption-based unsat cores. (#6427)
authorMathias Preiner <mathias.preiner@gmail.com>
Sat, 24 Apr 2021 00:57:35 +0000 (17:57 -0700)
committerGitHub <noreply@github.com>
Sat, 24 Apr 2021 00:57:35 +0000 (19:57 -0500)
commit47c9c2f42696a1e04577c1a79ac78f4186657818
tree99ae5609a32893ed01b5598df39f69efef5127d7
parent335eedb9096db8d4654486f015449621fb146eaa
Add assumption-based unsat cores. (#6427)

This PR adds an assumption-based unsat cores option. If enabled it will
disable proof logging in the SAT solver and adds input assertions as
assumptions to the SAT solver. When an unsat core is requested we
extract the unsat core in terms of the unsat assumption in the SAT
solver. Assumption-based unsat cores use the proof infrastructure to map
the input assumptions back to the original assertions.
src/expr/proof_rule.h
src/prop/minisat/core/Solver.cc
src/prop/minisat/core/Solver.h
src/prop/minisat/minisat.cpp
src/prop/minisat/minisat.h
src/prop/prop_engine.cpp
src/prop/prop_engine.h
src/smt/smt_engine.cpp
src/theory/booleans/proof_checker.cpp