enable proof printing through CMake option
This commit is contained in:
parent
6497ee686c
commit
8aeb017b09
2 changed files with 17 additions and 3 deletions
|
|
@ -8,6 +8,7 @@ set(CMAKE_CXX_STANDARD 17)
|
||||||
|
|
||||||
option(STATIC_BINARIES "Link binaries statically." ON)
|
option(STATIC_BINARIES "Link binaries statically." ON)
|
||||||
option(USE_SORELEASE "Use SORELEASE in shared library filename." ON)
|
option(USE_SORELEASE "Use SORELEASE in shared library filename." ON)
|
||||||
|
option(PRINT_PROOFS "Enable the -c option in the minisat binary to print resolution proofs." ON)
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------
|
||||||
# Library version:
|
# Library version:
|
||||||
|
|
@ -36,6 +37,13 @@ include_directories(${minisat_SOURCE_DIR})
|
||||||
|
|
||||||
add_definitions(-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS)
|
add_definitions(-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS)
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------------------------------------
|
||||||
|
# Macro switches:
|
||||||
|
|
||||||
|
if(PRINT_PROOFS)
|
||||||
|
add_compile_definitions(ENABLE_PROOF)
|
||||||
|
endif()
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------
|
||||||
# Build Targets:
|
# Build Targets:
|
||||||
|
|
||||||
|
|
|
||||||
12
src/Main.C
12
src/Main.C
|
|
@ -231,18 +231,24 @@ struct Checker : public ProofTraverser {
|
||||||
vec<vec<Lit> > clauses;
|
vec<vec<Lit> > clauses;
|
||||||
|
|
||||||
void root (const vec<Lit>& c) {
|
void root (const vec<Lit>& c) {
|
||||||
//**/printf("%d: ROOT", clauses.size()); for (int i = 0; i < c.size(); i++) printf(" %s%d", sign(c[i])?"-":"", var(c[i])+1); printf("\n");
|
#ifdef ENABLE_PROOF
|
||||||
|
printf("%d: ROOT", clauses.size()); for (int i = 0; i < c.size(); i++) printf(" %s%d", sign(c[i])?"-":"", var(c[i])+1); printf("\n");
|
||||||
|
#endif
|
||||||
clauses.push();
|
clauses.push();
|
||||||
c.copyTo(clauses.last()); }
|
c.copyTo(clauses.last()); }
|
||||||
|
|
||||||
void chain (const vec<ClauseId>& cs, const vec<Var>& xs) {
|
void chain (const vec<ClauseId>& cs, const vec<Var>& xs) {
|
||||||
//**/printf("%d: CHAIN %d", clauses.size(), cs[0]); for (int i = 0; i < xs.size(); i++) printf(" [%d] %d", xs[i]+1, cs[i+1]);
|
#ifdef ENABLE_PROOF
|
||||||
|
printf("%d: CHAIN %d", clauses.size(), cs[0]); for (int i = 0; i < xs.size(); i++) printf(" [%d] %d", xs[i]+1, cs[i+1]);
|
||||||
|
#endif
|
||||||
clauses.push();
|
clauses.push();
|
||||||
vec<Lit>& c = clauses.last();
|
vec<Lit>& c = clauses.last();
|
||||||
clauses[cs[0]].copyTo(c);
|
clauses[cs[0]].copyTo(c);
|
||||||
for (int i = 0; i < xs.size(); i++)
|
for (int i = 0; i < xs.size(); i++)
|
||||||
resolve(c, clauses[cs[i+1]], xs[i]);
|
resolve(c, clauses[cs[i+1]], xs[i]);
|
||||||
//**/printf(" =>"); for (int i = 0; i < c.size(); i++) printf(" %s%d", sign(c[i])?"-":"", var(c[i])+1); printf("\n");
|
#ifdef ENABLE_PROOF
|
||||||
|
printf(" =>"); for (int i = 0; i < c.size(); i++) printf(" %s%d", sign(c[i])?"-":"", var(c[i])+1); printf("\n");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void deleted(ClauseId c) {
|
void deleted(ClauseId c) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue