Primary Author
--------------
-Vijay Ganesh
-Stanford University, Stanford, CA, USA (Nov, 2005 to 2007),
-MIT (Oct, 2007 to present)
-
+Vijay Ganesh, Stanford University, Stanford, CA, USA (Nov, 2005 to 2007),
+MIT, Cambridge, MA, USA (Oct, 2007 to present)
Other Significant Author
------------------------
-Trevor Alexander Hansen
-University of Melbourne, Australia (Sep, 2008 - present)
-
+Trevor Alexander Hansen, University of Melbourne, Australia (Sep, 2008 - present)
Authors who contributed some code
http://www.gnu.org/prep/standards/standards.html
-2. The code is automatically formatted with the indent tool before
+2. The code is auto-formatted using an emacs-based script before
check-in.
* LICENSE: Please view LICENSE file in the home dir of this Program
********************************************************************/
-1. To install STP:
+1. To install STP on Linux, MacOS or Windows(Cygwin):
./clean-install.sh
+2. To run on Windows Natively:
-2. Download large tests:
-
- svn co https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/stp-tests/test
-
-
-
-3. Run tests:
-
- make regresscapi && make regresscvc && make regresssmt
-
+ 2.1 Compile STP inside cygwin as above
+ 2.2 Add cygwin DLLs to PATH
+ 2.3 Run
\ No newline at end of file
$(MAKE) -C $(SRC)/simplifier
$(MAKE) -C $(SRC)/absrefine_counterexample
$(MAKE) -C $(SRC)/to-sat
+ifdef CRYPTOMINISAT
+ $(MAKE) -C $(SRC)/sat cryptominisat
+else
$(MAKE) -C $(SRC)/sat core
# $(MAKE) -C $(SRC)/sat simp
# $(MAKE) -C $(SRC)/sat unsound
+endif
$(MAKE) -C $(SRC)/c_interface
$(MAKE) -C $(SRC)/parser
$(MAKE) -C $(SRC)/main
-----
http://sites.google.com/site/stpfastprover
+
REGRESSIONS
-----------
-Assumes you have downloaded the testcases
+Assumes you have downloaded the testcases as follows:
+
+svn co https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/stp-tests/test
+
make regresssmt
make regresscvc
OPTIMIZE = -O3 -DNDEBUG # Maximum optimization
#OPTIMIZE = -O3 -DNDEBUG -DLESSBYTES_PERNODE
CFLAGS_BASE = $(OPTIMIZE)
-CFLAGS_M32 = -m32
+#CFLAGS_BASE = $(OPTIMIZE) -DCRYPTOMINISAT
+#CFLAGS_M32 = -m32
+
# You can compile using make STATIC=true to compile a statically
# linked executable Note that you should execute liblinks.sh first.
endif
#CXXFLAGS = $(CFLAGS) -Wall -Wextra -DEXT_HASH_MAP -Wno-deprecated
-CXXFLAGS = $(CFLAGS) -Wextra -DEXT_HASH_MAP -Wno-deprecated
+#CXXFLAGS = $(CFLAGS) -Wextra -DEXT_HASH_MAP -Wno-deprecated
+CXXFLAGS = $(CFLAGS) -DEXT_HASH_MAP -Wno-deprecated
#CXXFLAGS = $(CFLAGS) -Wall -DTR1_UNORDERED_MAP -Wno-deprecated
#CXXFLAGS = $(CFLAGS) -Wall
#LDFLAGS= -lstdc++
$(MAKE) -C $(SRC)/simplifier
$(MAKE) -C $(SRC)/absrefine_counterexample
$(MAKE) -C $(SRC)/to-sat
+ifdef CRYPTOMINISAT
+ $(MAKE) -C $(SRC)/sat cryptominisat
+else
$(MAKE) -C $(SRC)/sat core
# $(MAKE) -C $(SRC)/sat simp
# $(MAKE) -C $(SRC)/sat unsound
+endif
$(MAKE) -C $(SRC)/c_interface
$(MAKE) -C $(SRC)/parser
$(MAKE) -C $(SRC)/main
{
if (!UserFlags.stats_flag)
return;
+#ifdef CRYPTOMINISAT
+#else
double cpu_time = MINISAT::cpuTime();
uint64_t mem_used = MINISAT::memUsed();
reportf("restarts : %"PRIu64"\n", s.starts);
if (mem_used != 0)
reportf("Memory used : %.2f MB\n", mem_used / 1048576.0);
reportf("CPU time : %g s\n", cpu_time);
+#endif
} //end of PrintStats()
namespace MINISAT
{
class Solver;
+#if defined(CRYPTOMINISAT)
+#else
typedef int Var;
+#endif
}
namespace BEEV
.PHONY: core
core:
$(MAKE) -C core lib all
+
.PHONY: simp
simp:
$(MAKE) -C simp lib all
+
.PHONY: unsound
unsound:
$(MAKE) -C unsound lib all
+.PHONY: cryptominisat
+cryptominisat:
+ $(MAKE) -C cryptominisat
+ cp cryptominisat/libminisat.a .
+
.PHONY: clean
clean:
rm -rf *.or *~ libminisat.a
- $(MAKE) -C core clean
- $(MAKE) -C simp clean
+ $(MAKE) -C core clean
+ $(MAKE) -C simp clean
$(MAKE) -C unsound clean
+ $(MAKE) -C cryptominisat clean
\ No newline at end of file
MTL = ../mtl
CHDRS = $(wildcard *.h) $(wildcard $(MTL)/*.h)
EXEC = minisat
-CFLAGS = -I$(MTL) -Wall -DEXT_HASH_MAP -ffloat-store $(CFLAGS_M32)
+CFLAGS += -I$(MTL) -Wall -DEXT_HASH_MAP -ffloat-store $(CFLAGS_M32)
LFLAGS = -lz
include ../mtl/template.mk
#ifndef SAT_H_
#define SAT_H_
-#include "core/Solver.h"
-#include "core/SolverTypes.h"
-//#include "simp/SimpSolver.h"
-//#include "unsound/UnsoundSimpSolver.h"
+#ifdef CRYPTOMINISAT
+ #include "cryptominisat/Solver/Solver.h"
+ #include "cryptominisat/Solver/SolverTypes.h"
+#else
+ #include "core/Solver.h"
+ #include "core/SolverTypes.h"
+ //#include "simp/SimpSolver.h"
+ //#include "unsound/UnsoundSimpSolver.h"
+#endif
#endif
FatalError("toSATandSolve: Nothing to Solve", ASTUndefined);
}
+#ifdef CRYPTOMINISAT
+ newS.startClauseAdding();
+#endif
//iterate through the list (conjunction) of ASTclauses cll
- ClauseList::const_iterator i = cll.begin(), iend = cll.end();
- //ClauseList::reverse_iterator i = cll.rbegin(), iend = cll.rend();
+ ClauseList::const_iterator i = cll.begin(), iend = cll.end();
for (int count=0, flag=0; i != iend; i++)
{
//Clause for the SATSolver