Skip to content

Conps minisat [blocks: #3243] #3282

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions scripts/minisat-2.2.1-patch
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,23 @@ index 2dba10f..7d2e83a 100644
if (verbose){
fprintf(stderr, "\n %s\n", description);
fprintf(stderr, "\n");
diff --git a/minisat/utils/Options.cc b/minisat/utils/Options.cc
index 83c40e8..15bfca1 100644
--- a/minisat/utils/Options.cc
+++ b/minisat/utils/Options.cc
@@ -43,10 +43,12 @@ void Minisat::parseOptions(int& argc, char** argv, bool strict)
}

if (!parsed_ok)
+ {
if (strict && match(argv[i], "-"))
fprintf(stderr, "ERROR! Unknown flag \"%s\". Use '--%shelp' for help.\n", argv[i], Option::getHelpPrefixString()), exit(1);
else
argv[j++] = argv[i];
+ }
}
}

diff --git a/minisat/utils/ParseUtils.h b/minisat/utils/ParseUtils.h
index d307164..7b46f09 100644
--- a/minisat/utils/ParseUtils.h
Expand Down
15 changes: 3 additions & 12 deletions src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -88,19 +88,10 @@ DOWNLOADER = lwp-download
TAR = tar

minisat2-download:
@echo "Downloading Minisat 2.2.1"
@for i in $$(seq 1 3) ; do \
$(DOWNLOADER) \
http://ftp.debian.org/debian/pool/main/m/minisat2/minisat2_2.2.1.orig.tar.gz && \
exit 0 ; \
$(RM) minisat2_2.2.1.orig.tar.gz ; \
if [ $$i -lt 3 ] ; then echo "Re-trying in 10 seconds" 1>&2 ; sleep 10 ; fi ; \
done ; exit 1
@$(TAR) xfz minisat2_2.2.1.orig.tar.gz
@rm -Rf minisat
@git clone https://github.com/conp-solutions/minisat.git
@rm -Rf ../minisat-2.2.1
@mv minisat2-2.2.1 ../minisat-2.2.1
@(cd ../minisat-2.2.1; patch -p1 < ../scripts/minisat-2.2.1-patch)
@rm minisat2_2.2.1.orig.tar.gz
@mv minisat ../minisat-2.2.1

glucose-download:
@echo "Downloading glucose-syrup"
Expand Down
2 changes: 1 addition & 1 deletion src/config.inc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ BUILD_ENV = AUTO
ifeq ($(BUILD_ENV),MSVC)
#CXXFLAGS += /Wall /WX
else
CXXFLAGS += -Wall -pedantic -Werror -Wno-deprecated-declarations
CXXFLAGS += -Wall -pedantic -Wno-deprecated-declarations
endif

# Select optimisation or debug info
Expand Down
2 changes: 1 addition & 1 deletion src/solvers/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ endif
ifneq ($(MINISAT2),)
MINISAT2_SRC=sat/satcheck_minisat2.cpp
MINISAT2_INCLUDE=-I $(MINISAT2)
MINISAT2_LIB=$(MINISAT2)/minisat/simp/SimpSolver$(OBJEXT) $(MINISAT2)/minisat/core/Solver$(OBJEXT)
MINISAT2_LIB=$(MINISAT2)/minisat/simp/SimpSolver$(OBJEXT) $(MINISAT2)/minisat/core/Solver$(OBJEXT) $(MINISAT2)/minisat/utils/Options$(OBJEXT) $(MINISAT2)/minisat/utils/System$(OBJEXT)
CP_CXXFLAGS += -DHAVE_MINISAT2 -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
CLEANFILES += $(MINISAT2_LIB) $(patsubst %$(OBJEXT), %$(DEPEXT), $(MINISAT2_LIB))
endif
Expand Down
10 changes: 5 additions & 5 deletions src/solvers/sat/satcheck_minisat2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ tvt satcheck_minisat2_baset<T>::l_get(literalt a) const

using Minisat::lbool;

if(solver->model[a.var_no()]==l_True)
if(solver->model[a.var_no()]==Minisat::l_True)
result=tvt(true);
else if(solver->model[a.var_no()]==l_False)
else if(solver->model[a.var_no()]==Minisat::l_False)
result=tvt(false);
else
return tvt::unknown();
Expand Down Expand Up @@ -234,19 +234,19 @@ propt::resultt satcheck_minisat2_baset<T>::prop_solve()
}

lbool solver_result=
solver->solve(solver_assumptions) ? l_True : l_False;
solver->solve(solver_assumptions) ? Minisat::l_True : Minisat::l_False;

#endif

if(solver_result==l_True)
if(solver_result==Minisat::l_True)
{
messaget::status() <<
"SAT checker: instance is SATISFIABLE" << eom;
CHECK_RETURN(solver->model.size()>0);
status=statust::SAT;
return resultt::P_SATISFIABLE;
}
else if(solver_result==l_False)
else if(solver_result==Minisat::l_False)
{
messaget::status() <<
"SAT checker: instance is UNSATISFIABLE" << eom;
Expand Down