[proof-new] Expanding MACRO_RESOLUTION in post-processing (#5755)
authorHaniel Barbosa <hanielbbarbosa@gmail.com>
Fri, 22 Jan 2021 16:15:43 +0000 (13:15 -0300)
committerGitHub <noreply@github.com>
Fri, 22 Jan 2021 16:15:43 +0000 (13:15 -0300)
commit109e7e43efdeb557ff17880da83da438db35eb3e
tree313d66098519bd3ac782a3c21a830fa41d79214a
parent98d2ca3ee48cb87e8baa7537c97016cc85ab048d
[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.
src/smt/proof_manager.cpp
src/smt/proof_post_processor.cpp
src/smt/proof_post_processor.h