summaryrefslogtreecommitdiff
path: root/src/smt/proof_manager.cpp
diff options
context:
space:
mode:
authorHaniel Barbosa <hanielbbarbosa@gmail.com>2021-01-22 13:15:43 -0300
committerGitHub <noreply@github.com>2021-01-22 13:15:43 -0300
commit109e7e43efdeb557ff17880da83da438db35eb3e (patch)
tree313d66098519bd3ac782a3c21a830fa41d79214a /src/smt/proof_manager.cpp
parent98d2ca3ee48cb87e8baa7537c97016cc85ab048d (diff)
[proof-new] Expanding MACRO_RESOLUTION in post-processing (#5755)
Breaks down resolution, factoring and reordering. The hardest part of this process is making getting rid of the so-called "crowding literals", i.e., duplicate literals introduced during the series of resolutions and removed implicitly by the SAT solver. A naive removal via addition of premises to the chain resolution can lead to exponential behavior, so instead the removal is done by breaking the resolution and applying a factoring step midway through. This guarantees non-exponential behavior.
Diffstat (limited to 'src/smt/proof_manager.cpp')
-rw-r--r--src/smt/proof_manager.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/smt/proof_manager.cpp b/src/smt/proof_manager.cpp
index d82e22736..b8f68af88 100644
--- a/src/smt/proof_manager.cpp
+++ b/src/smt/proof_manager.cpp
@@ -38,6 +38,7 @@ PfManager::PfManager(context::UserContext* u, SmtEngine* smte)
d_pfpp->setEliminateRule(PfRule::MACRO_SR_PRED_INTRO);
d_pfpp->setEliminateRule(PfRule::MACRO_SR_PRED_ELIM);
d_pfpp->setEliminateRule(PfRule::MACRO_SR_PRED_TRANSFORM);
+ d_pfpp->setEliminateRule(PfRule::MACRO_RESOLUTION);
if (options::proofGranularityMode()
!= options::ProofGranularityMode::REWRITE)
{
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback