[proofs] [cnf] Utilities to notify and track proofs of optimized SAT clauses in the...
authorHaniel Barbosa <hanielbbarbosa@gmail.com>
Fri, 25 Mar 2022 17:41:56 +0000 (14:41 -0300)
committerGitHub <noreply@github.com>
Fri, 25 Mar 2022 17:41:56 +0000 (17:41 +0000)
commit7b6013aea173981f1efc47c57ca0130b36fdaf20
tree4d03fa2dc4d1e550bc3167675dc32c5b929860a4
parentb3ba5a8eca70539ac00719eb3de68cb214033c59
[proofs] [cnf] Utilities to notify and track proofs of optimized SAT clauses in the ProofCnfStream (#8388)

Adds functionality for the TheoryProxy and ProofCnfStream modules to be notified of clauses that were asserted in lower levels than the current one. These clauses have their proofs tracked in the ProofCnfStream via an OptimizedClausesManager object.

Since the SAT solver may optimize the assertion level of propagation
explanations and of added clauses, we need to be able to maintain proofs across
context-popping. Not doing this can lead to open proofs. To do this the Proof
cnf stream uses an OptClausesManager to re-add proofs of facts inserted at
optimized levels.

Future PRs will change the SAT solver to use these notifications.
src/prop/proof_cnf_stream.cpp
src/prop/proof_cnf_stream.h
src/prop/theory_proxy.cpp
src/prop/theory_proxy.h