diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index f53afdee7..000000000 --- a/Makefile.in +++ /dev/null @@ -1,383 +0,0 @@ - -SHELL=/bin/sh -SED=sed -AWK=awk -DOS2UNIX=@D2U@ - -@SET_MAKE@ - -##### Configuration ##### -CXX=@CXX@ -CPPFLAGS_CORE=@CPPFLAGS@ -I lib -fopenmp -msse -msse2 -mfpmath=sse -CXXFLAGS_CORE=@CXXFLAGS@ -ifeq ($(MODE),) -Z3_BUILD_MODE=external -else -Z3_BUILD_MODE=$(MODE) -endif -LIBS=@LIBS@ -## -lrt is for timer_create and timer_settime -LDFLAGS=@LDFLAGS@ -lpthread -fopenmp -LDFLAGS_EXTRA= -PREFIX=@prefix@ -HAS_PYTHON=@HAS_PYTHON@ -PYTHON_PACKAGE_DIR=@PYTHON_PACKAGE_DIR@ -PYTHON=@PYTHON@ -######################### - -Z3=z3 -TEST_CAPI=test_capi -TEST=test - -BIN_DIR=bin/$(Z3_BUILD_MODE) -OBJ_DIR=obj/$(Z3_BUILD_MODE) -SED_OBJ_DIR=obj\/$(Z3_BUILD_MODE) -OBJ_TEST_DIR=obj-test/$(Z3_BUILD_MODE) -SED_OBJ_TEST_DIR=obj-test\/$(Z3_BUILD_MODE) - -MAJ=$(shell grep 'Z3_MAJOR_VERSION' lib/version.h | cut -d ' ' -f 4) -MIN=$(shell grep 'Z3_MINOR_VERSION' lib/version.h | cut -d ' ' -f 4) -Z3_VERSION=$(MAJ).$(MIN) - -PLATFORM=@PLATFORM@ - - -ifeq ($(Z3_BUILD_MODE),release) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -CXXFLAGS=-O3 -fomit-frame-pointer $(CXXFLAGS_CORE) -else -ifeq ($(Z3_BUILD_MODE),smtcomp07) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -DSMTCOMP -CXXFLAGS=-O3 -fomit-frame-pointer $(CXXFLAGS_CORE) -# doesn't work on cygwin -LDFLAGS_EXTRA=@STATIC_FLAGS@ -else -ifeq ($(Z3_BUILD_MODE),external) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -D_EXTERNAL_RELEASE -CXXFLAGS=-O3 -fomit-frame-pointer $(CXXFLAGS_CORE) -# doesn't work on cygwin -LDFLAGS_EXTRA=@STATIC_FLAGS@ -else -ifeq ($(Z3_BUILD_MODE),debug) -CPPFLAGS=$(CPPFLAGS_CORE) -DZ3DEBUG -D_TRACE -CXXFLAGS=-g -Wall $(CXXFLAGS_CORE) -else -ifeq ($(Z3_BUILD_MODE),debugopt) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -DZ3DEBUG -D_TRACE -CXXFLAGS=-g -O1 $(CXXFLAGS_CORE) -else -ifeq ($(Z3_BUILD_MODE),trace) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -D_TRACE -CXXFLAGS=-g -O1 $(CXXFLAGS_CORE) -else -ifeq ($(Z3_BUILD_MODE),profile) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -CXXFLAGS=-g -pg -O2 $(CXXFLAGS_CORE) -LDFLAGS_EXTRA=-pg -else -ifeq ($(Z3_BUILD_MODE),gcov) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -CXXFLAGS=-g -fprofile-arcs -ftest-coverage -O2 $(CXXFLAGS_CORE) -LDFLAGS_EXTRA=-fprofile-arcs -ftest-coverage -else -ifeq ($(Z3_BUILD_MODE),external_parallel) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -D_EXTERNAL_RELEASE -D_Z3_BUILD_PARALLEL_SMT -CXXFLAGS=-O3 -fomit-frame-pointer $(CXXFLAGS_CORE) -# doesn't work on cygwin -LDFLAGS_EXTRA=@STATIC_FLAGS@ -else -ifeq ($(Z3_BUILD_MODE),debug_parallel) -CPPFLAGS=$(CPPFLAGS_CORE) -DZ3DEBUG -D_TRACE -D_Z3_BUILD_PARALLEL_SMT -CXXFLAGS=-g -Wall $(CXXFLAGS_CORE) -else -$(error INVALID BUILD MODE = $(Z3_BUILD_MODE)) -endif -endif -endif -endif -endif -endif -endif -endif -endif -endif - -LIBFLAGS=@SLIBFLAGS@ - -################################ -# -# Extract the source files from -# the MSVC++ project files. -# -# lib.vcproj ===> lib.srcs -# shell.vcproj ===> shell.srcs -# -################################ - -main: $(BIN_DIR)/$(Z3) - -lib.srcs: lib/lib.vcxproj - @echo Making 'lib.srcs'... - @cp $< lib0.srcs - @chmod +rw lib0.srcs - @$(DOS2UNIX) lib0.srcs - @$(AWK) '/cpp\"/{ print $$0 }' lib0.srcs > lib1.srcs - @$(SED) 's|\"||g;s|||g;s|Include=|lib/|g' lib1.srcs > lib2.srcs - @$(AWK) 'BEGIN { printf ("LIB_SRCS= "); } { printf($$1 " ") } END { print ""; }' lib2.srcs > $@ - @rm -f lib0.srcs - @rm -f lib1.srcs - @rm -f lib2.srcs - -shell.srcs: shell/shell.vcxproj - @echo Making 'shell.srcs'... - @cp $< shell0.srcs - @chmod +rw shell0.srcs - @$(DOS2UNIX) shell0.srcs - @$(AWK) '/cpp\"/{ print $$0 }' shell0.srcs > shell1.srcs - @$(SED) 's|\"||g;s|||g;s|Include=|shell/|g' shell1.srcs > shell2.srcs - @$(AWK) 'BEGIN { printf ("SHELL_SRCS= "); } { printf($$1 " ") } END { print ""; }' shell2.srcs > $@ - @rm -f shell0.srcs - @rm -f shell1.srcs - @rm -f shell2.srcs - -test.srcs: test/test.vcxproj - @echo Making 'test.srcs'... - @cp $< test0.srcs - @chmod +rw test0.srcs - @$(DOS2UNIX) test0.srcs - @$(AWK) '/cpp\"/{ print $$0 }' test0.srcs > test1.srcs - @$(SED) 's|\"||g;s|||g;s|Include=|test/|g' test1.srcs > test2.srcs - @$(AWK) 'BEGIN { printf ("TEST_SRCS= "); } { printf($$1 " ") } END { print ""; }' test2.srcs > $@ - @rm -f test0.srcs - @rm -f test1.srcs - @rm -f test2.srcs - - -include lib.srcs -include shell.srcs -include test.srcs - -LIB_SRCS+=@EXTRA_LIB_SRCS@ -LIB_OBJS=$(LIB_SRCS:lib/%.cpp=$(OBJ_DIR)/%.o) -SHELL_OBJS=$(SHELL_SRCS:shell/%.cpp=$(OBJ_DIR)/%.o) - -OBJS=$(LIB_OBJS) $(SHELL_OBJS) -TEST_CAPI_OBJS=$(OBJ_DIR)/test_capi.o $(LIB_OBJS) -TEST_OBJS=$(TEST_SRCS:test/%.cpp=$(OBJ_TEST_DIR)/%.o) - -$(BIN_DIR)/$(Z3): $(OBJ_DIR) $(BIN_DIR) $(OBJS) - @mkdir -p $(BIN_DIR) - $(CXX) -o $(BIN_DIR)/$(Z3) $(OBJS) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LIBS) - -$(BIN_DIR)/$(TEST): $(OBJ_DIR) $(BIN_DIR) $(LIB_OBJS) $(TEST_OBJS) - @mkdir -p $(BIN_DIR) - $(CXX) -o $(BIN_DIR)/$(TEST) $(LIB_OBJS) $(TEST_OBJS) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LIBS) - -$(BIN_DIR)/$(TEST_CAPI): $(OBJ_DIR) $(BIN_DIR) $(TEST_CAPI_OBJS) - @mkdir -p $(BIN_DIR) - $(CXX) -o $(BIN_DIR)/$(TEST_CAPI) $(TEST_CAPI_OBJS) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LIBS) - -$(BIN_DIR)/lib$(Z3).@SO_EXT@: $(OBJ_DIR) $(BIN_DIR) $(LIB_OBJS) - @mkdir -p $(BIN_DIR) - $(CXX) -o $(BIN_DIR)/lib$(Z3).@SO_EXT@ $(LIB_OBJS) $(LIBFLAGS) $(LIBS) @COMP_VERSIONS@ - -$(BIN_DIR)/lib$(Z3).a: $(OBJ_DIR) $(BIN_DIR) $(LIB_OBJS) - @mkdir -p $(BIN_DIR) - ar -cvr $(BIN_DIR)/lib$(Z3).a $(LIB_OBJS) - -$(BIN_DIR): - mkdir -p $(BIN_DIR) - -$(OBJ_DIR): - mkdir -p $(OBJ_DIR) - -$(OBJ_TEST_DIR): - mkdir -p $(OBJ_TEST_DIR) - -smtcomp07: $(BIN_DIR)/$(Z3) - rm -r -f z3 - mkdir z3 - cp $(BIN_DIR)/$(Z3) z3/run - strip z3/run - cp doc/MAGIC_NUMBER z3/ - cp doc/README-SMTCOMP07 z3/README - cp doc/NOTICES-SMTCOMP07 z3/NOTICES - cp doc/z3.pdf z3/ - tar -czf z3.tar.gz z3 - -test_capi: $(BIN_DIR)/$(TEST_CAPI) - -@SO_EXT@: $(BIN_DIR)/lib$(Z3).@SO_EXT@ - -a: $(BIN_DIR)/lib$(Z3).a - -test: $(BIN_DIR)/$(TEST) - -################################ -# -# Grobner -# -################################ -lib/grobner_main.cpp: test/igrobner.cpp - cp test/igrobner.cpp lib/grobner_main.cpp - chmod +rw lib/grobner_main.cpp - -$(OBJ_DIR)/grobner_main.o: lib/grobner_main.cpp - @mkdir -p $(OBJ_DIR) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -DGB_APP -c -o $@ $< - -################################ -# -# .cpp ===> .o -# -################################ - -$(OBJ_DIR)/%.o : lib/%.cpp - @mkdir -p $(OBJ_DIR) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -$(OBJ_TEST_DIR)/%.o : test/%.cpp - @mkdir -p $(OBJ_TEST_DIR) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -$(OBJ_DIR)/%.o : shell/%.cpp - @mkdir -p $(OBJ_DIR) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -$(OBJ_DIR)/%.o : test_capi/%.c - @mkdir -p $(OBJ_DIR) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -I ../lib -c -o $@ $< - -################################ -# -# Dependency files -# -# .cpp ===> .d -# -################################ - -$(OBJ_DIR)/%.d: lib/%.cpp - @echo Making dependency file \'$@\' ... - @mkdir -p $(OBJ_DIR) - @$(SHELL) -ec '$(CXX) -MM $(CPPFLAGS) $< | $(SED) '\''s/\($*\)\.o[ :]*/$(SED_OBJ_DIR)\/\1.o $(SED_OBJ_DIR)\/\1.d : /g'\'' > $@; [ -s $@ ] || rm -f $@' - -$(OBJ_DIR)/%.d: shell/%.cpp - @echo Making dependency file \'$@\' ... - @mkdir -p $(OBJ_DIR) - @$(SHELL) -ec '$(CXX) -MM $(CPPFLAGS) $< | $(SED) '\''s/\($*\)\.o[ :]*/$(SED_OBJ_DIR)\/\1.o $(SED_OBJ_DIR)\/\1.d : /g'\'' > $@; [ -s $@ ] || rm -f $@' - -$(OBJ_TEST_DIR)/%.d: test/%.cpp - @echo Making dependency file \'$@\' ... - @mkdir -p $(OBJ_TEST_DIR) - @$(SHELL) -ec '$(CXX) -MM $(CPPFLAGS) $< | $(SED) '\''s/\($*\)\.o[ :]*/$(SED_OBJ_TEST_DIR)\/\1.o $(SED_OBJ_TEST_DIR)\/\1.d : /g'\'' > $@; [ -s $@ ] || rm -f $@' - - -include $(LIB_SRCS:lib/%.cpp=$(OBJ_DIR)/%.d) -include $(SHELL_SRCS:shell/%.cpp=$(OBJ_DIR)/%.d) -include $(TEST_SRCS:test/%.cpp=$(OBJ_TEST_DIR)/%.d) - -################################ -# -# Cleanup -# -################################ -.PHONY: clean - -clean: - rm -f $(BIN_DIR)/$(Z3) - rm -f $(OBJ_DIR)/* - rm -f lib.srcs - rm -f shell.srcs - find . -name '*.bb' -exec rm -f '{}' ';' - find . -name '*.bbg' -exec rm -f '{}' ';' - find . -name '*.da' -exec rm -f '{}' ';' - find . -name '*.gcov' -exec rm -f '{}' ';' - find . -name 'cachegrind*' -exec rm -f '{}' ';' - find . -name 'a.out' -exec rm -f '{}' ';' - find . -name 'a.exe' -exec rm -f '{}' ';' - find . -name 'core' -exec rm -f '{}' ';' - -################################ -# -# Support -# -################################ - -Makefile: Makefile.in config.status - ./config.status - make - -config.status: configure - ./config.status --recheck - -################################ -# -# checkgmake -# -################################ -.PHONY: checkgmake - -checkgmake: - @ ./gmaketest --make=$(MAKE) || \ - (echo "Z3 needs GNU-Make to be built"; exit 1) - -################################ -# -# installation/uninstallation -# -################################ - -install: $(BIN_DIR)/$(Z3) $(BIN_DIR)/lib$(Z3).@SO_EXT@ $(BIN_DIR)/lib$(Z3).a - @mkdir -p $(PREFIX)/bin - @mkdir -p $(PREFIX)/lib - @mkdir -p $(PREFIX)/include - @cp $(BIN_DIR)/$(Z3) $(PREFIX)/bin - @cp $(BIN_DIR)/lib$(Z3).@SO_EXT@ $(PREFIX)/lib - @cp $(BIN_DIR)/lib$(Z3).a $(PREFIX)/lib - @cp lib/z3_api.h $(PREFIX)/include - @cp lib/z3.h $(PREFIX)/include - @cp lib/z3_v1.h $(PREFIX)/include - @cp lib/z3_macros.h $(PREFIX)/include - @cp lib/z3_internal.h $(PREFIX)/include - @cp lib/z3_internal_types.h $(PREFIX)/include - @cp lib/z3_poly.h $(PREFIX)/include - @cp c++/z3++.h $(PREFIX)/include - -uninstall: - @rm -f $(PREFIX)/bin/$(Z3) - @rm -f $(PREFIX)/lib/lib$(Z3).@SO_EXT@ - @rm -f $(PREFIX)/lib/lib$(Z3).a - @rm -f $(PREFIX)/include/z3_api.h - @rm -f $(PREFIX)/include/z3.h - @rm -f $(PREFIX)/include/z3_v1.h - @rm -f $(PREFIX)/include/z3_macros.h - @rm -f $(PREFIX)/include/z3++.h - @rm -f $(PREFIX)/include/z3_internal.h - @rm -f $(PREFIX)/include/z3_internal_types.h - @rm -f $(PREFIX)/include/z3_poly.h - -install-z3py: $(BIN_DIR)/lib$(Z3).@SO_EXT@ - @if test $(HAS_PYTHON) -eq 0; then echo "Python is not available in your system."; exit 1; fi - @echo "Installing Python bindings at $(PYTHON_PACKAGE_DIR)." - @$(PYTHON) python/example.py > /dev/null - @cp python/z3.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3core.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3types.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3consts.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3tactics.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3printer.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3poly.pyc $(PYTHON_PACKAGE_DIR) - @cp $(BIN_DIR)/lib$(Z3).@SO_EXT@ $(PYTHON_PACKAGE_DIR) - @if python python/z3test.py; then echo "Z3Py was successfully installed."; else echo "Failed to execute Z3Py regressions..."; exit 1; fi - -uninstall-z3py: - @if test $(HAS_PYTHON) -eq 0; then echo "Python is not available in your system."; exit 1; fi - @echo "Uninstalling Python bindings from $(PYTHON_PACKAGE_DIR)." - @rm -f $(PYTHON_PACKAGE_DIR)/z3.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3core.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3types.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3consts.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3tactics.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3printer.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3poly.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/$(BIN_DIR)/lib$(Z3).@SO_EXT@ diff --git a/README b/README index 390c81702..a90f43f70 100644 --- a/README +++ b/README @@ -1,38 +1,35 @@ Z3 is a theorem prover from Microsoft Research. Z3 is licensed under MSR-LA (Microsoft Research License Agreement). See http://z3.codeplex.com/license for more information about this license. -Z3 can be built using Visual Studio Command Prompt, Visual Studio and make/gcc. +Z3 can be built using Visual Studio Command Prompt and make/g++. 1) Building Z3 on Windows using Visual Studio Command Prompt -- Open a Visual Studio Command Prompt, then execute one of the following commands to build the desired component. + a) If you a source distribution that comes with pre-generated 'build' directory, + then go to step c) + b) Execute + python scripts/mk_make.py + c) Execute + cd build + nmake -- For building all components, execute - msbuild z3-prover.sln /p:configuration=external - All components will be located at \external +2) Building Z3 using make/g++ and Python +Execute: -- For building all components (64-bit), execute - msbuild z3-prover.sln /p:configuration=external /p:platform=x64 - All components will be located at \x64\external - -- For building all components (in debug mode), execute - msbuild z3-prover.sln - All components will be located at \Debug - -2) Building Z3 using g++/make -Your machine must also have the following commands to be able to build Z3: -autoconf, sed, awk, dos2unix commands - - autoconf - ./configure - make - sudo make install + autconf + ./configure + python scripts/mk_make.py + cd build + make + sudo make install It will install z3 executable at /usr/local/bin, libraries at /usr/local/lib, and include files at /usr/local/include. Use the following commands to install in a different prefix (e.g., /usr). autoconf ./configure --prefix=/usr + python scripts/mk_make.py + cd build make sudo make install @@ -40,15 +37,3 @@ To uninstall Z3, use sudo make uninstall -To install Z3 Python bindings, use - - sudo make install-python - -To uninstall Z3 Python bindings, use - - sudo make uninstall-python - - -Remark: the Z3 makefile imports the source file list from Visual Studio project files. -To add new source files to the Z3 core, you must include them at: lib/lib.vcxproj - diff --git a/configure.ac b/configure.ac new file mode 100644 index 000000000..07ef64102 --- /dev/null +++ b/configure.ac @@ -0,0 +1,205 @@ +AC_INIT([z3], [4.2]) + +################### +# +# Testing python +# +################### +AC_ARG_WITH(python, +[AS_HELP_STRING([--with-python=PYTHON_PATH], + [specify the location of the python 2.x executable.])]) + +PYTHON="python" +if test "x$with_python" != x; then + PYTHON="$with_python" +fi + +AC_SUBST(PYTHON) + +cat > tst_python.py <= "3": + exit(1) +exit(0) +EOF + +if $PYTHON tst_python.py; then + HAS_PYTHON="1" + HAS_PYTHON_MSG="yes" +cat > get_py_dir.py << EOF +import distutils.sysconfig +print distutils.sysconfig.get_python_lib() +EOF + if $PYTHON get_py_dir.py > dir.txt; then + PYTHON_PACKAGE_DIR=`cat dir.txt` + else + HAS_PYTHON="0" + HAS_PYTHON_MSG="no" + fi + rm -f dir.txt + rm -f get_py_dir.py +else + HAS_PYTHON="0" + HAS_PYTHON_MSG="no" +fi +AC_SUBST(PYTHON_PACKAGE_DIR) +AC_SUBST(HAS_PYTHON) +rm -f tst_python.py + +################### +# +# Configuring bignum package +# +################### +# Select big num package +ARITH="internal" +AC_ARG_WITH([gmp], [AS_HELP_STRING([--with-gmp], [Use GMP for multi-precision naturals (default=no)])], [use_gmp=yes], [use_gmp=no]) +AS_IF([test "$use_gmp" = "yes"],[ + ARITH="gmp" + CPPFLAGS="$CPPFLAGS -D_MP_GMP" +],[ + CPPFLAGS="$CPPFLAGS -D_MP_INTERNAL" +]) +AC_SUBST(EXTRA_LIB_SRCS) + +if test "$ARITH" = "gmp"; then + AC_CHECK_LIB(gmp, __gmpz_init, , + [AC_MSG_ERROR([GNU MP not found, see http://gmplib.org/])]) + AC_CHECK_HEADER([gmp.h], GMP='gmp', AC_MSG_ERROR([GMP include file not found])) + AC_SUBST(LIBS) + echo $CPPFLAGS +fi + +################### +# +# Basic configuration +# +################### +# Sets CXX +AC_PROG_CXX(g++) + +AC_PROG_MAKE_SET + +AC_LANG_CPLUSPLUS + +# Sets GREP +AC_PROG_GREP + +# Sets SED +AC_PROG_SED + +# Sets OPENMP_CFLAGS +AC_OPENMP + +AR=ar +AC_SUBST(AR) + +################### +# +# Platform characteristics +# +################### +host_os=`uname -s` + +AS_IF([test "$host_os" = "Darwin"], [ + PLATFORM=osx + SO_EXT=dylib + SLIBFLAGS="-dynamiclib -fopenmp" + COMP_VERSIONS="-compatibility_version \$(Z3_VERSION) -current_version \$(Z3_VERSION)" + STATIC_FLAGS= +], [test "$host_os" = "Linux"], [ + PLATFORM=linux + SO_EXT=so + SLIBFLAGS="-shared -fopenmp" + COMP_VERSIONS= + STATIC_FLAGS=-static +], [test "${host_os:0:6}" = "CYGWIN"], [ + PLATFORM=win + SO_EXT=dll + LDFLAGS= + SLIBFLAGS="-shared -fopenmp" + COMP_VERSIONS= + STATIC_FLAGS=-static + CXXFLAGS+=" -D_CYGWIN" +], +[ + AC_MSG_ERROR([Unknown host platform: $host_os]) +]) + +################### +# +# Checking if 32 or 64 bits +# +################### +AC_CHECK_SIZEOF(int *) + +if test $ac_cv_sizeof_int_p -eq 8; then + dnl In 64-bit systems we have to compile using -fPIC + CXXFLAGS="-fPIC" + CPPFLAGS="$CPPFLAGS -D_AMD64_" + dnl Only enable use of thread local storage for 64-bit Linux. It is disabled for OSX and 32-bit Linux + if test $PLATFORM = "linux"; then + CPPFLAGS="$CPPFLAGS -D_USE_THREAD_LOCAL" + fi + EXTRA_LIBS="" + IS_X64="yes" +else + CXXFLAGS="" + IS_X64="no" +fi + +################### +# +# Generating configuration +# +################### +AC_OUTPUT(scripts/config-debug.mk scripts/config-release.mk) + +################### +# +# Checking how to build Z3 +# +################### + +if test "$HAS_PYTHON" = "0"; then + if test -d build/Makefile; then + # Python is not installed, but Makefile was pre generated + # Just copy configuration and terminate + cp scripts/config-release.mk build/config.mk +cat < - - - - commercial - Win32 - - - commercial - x64 - - - Debug - Win32 - - - Debug - x64 - - - external - Win32 - - - external - x64 - - - release_mt - Win32 - - - release_mt - x64 - - - Release - Win32 - - - Release - x64 - - - Trace - Win32 - - - Trace - x64 - - - - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E} - lib - Win32Proj - - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - Application - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - - - - Disabled - WIN32;_DEBUG;Z3DEBUG;_LIB;_TRACE;_WINDOWS;ASYNC_COMMANDS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - - - Level3 - ProgramDatabase - StreamingSIMDExtensions2 - - - $(OutDir)z3lib.lib - %(AdditionalLibraryDirectories) - MachineX86 - - - - - X64 - - - Disabled - WIN32;Z3DEBUG;_DEBUG;_LIB;_TRACE;_WINDOWS;ASYNC_COMMANDS;_AMD64_;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - $(OutDir)z3lib.lib - %(AdditionalLibraryDirectories) - MachineX64 - - - - - Full - false - WIN32;NDEBUG;_LIB;_WINDOWS;ASYNC_COMMANDS;%(PreprocessorDefinitions) - MultiThreadedDLL - true - - - Level3 - ProgramDatabase - StreamingSIMDExtensions2 - - - $(OutDir)z3lib.lib - MachineX86 - - - - - X64 - - - MaxSpeed - false - WIN32;NDEBUG;_LIB;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - MachineX64 - - - - - false - WIN32;NDEBUG;_LIB;_WINDOWS;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - StreamingSIMDExtensions2 - - - - - X64 - - - WIN32;NDEBUG;_LIB;_WINDOWS;_TRACE;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - Full - false - _NO_OMP_;WIN32;NDEBUG;_LIB;_WINDOWS;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - false - StreamingSIMDExtensions2 - - - $(OutDir)z3lib.lib - false - - - - - Full - false - WIN32;NDEBUG;_LIB;_WINDOWS;_EXTERNAL_RELEASE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - StreamingSIMDExtensions2 - - - $(OutDir)z3lib.lib - - - - - Full - false - WIN32;NDEBUG;_LIB;_WINDOWS;_Z3_COMMERCIAL;_EXTERNAL_RELEASE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - StreamingSIMDExtensions2 - - - $(OutDir)z3lib.lib - - - - - X64 - - - MaxSpeed - false - _AMD64_;WIN32;NDEBUG;_LIB;_WINDOWS;_EXTERNAL_RELEASE;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - X64 - - - MaxSpeed - false - WIN32;NDEBUG;_LIB;_WINDOWS;_Z3_COMMERCIAL;_EXTERNAL_RELEASE;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - false - MultiThreaded - Level3 - Full - _NO_OMP_;_AMD64_;WIN32;NDEBUG;_LIB;_WINDOWS;%(PreprocessorDefinitions) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/lib/lockless_queue.h b/lib/lockless_queue.h deleted file mode 100644 index 83d9226c4..000000000 --- a/lib/lockless_queue.h +++ /dev/null @@ -1,115 +0,0 @@ -/*++ -Copyright (c) 2008 Microsoft Corporation - -Module Name: - - lockless_queue.h - -Abstract: - - A queue that doesn't require locking, as long as only - one thread pushes and another thread pops. - -Author: - - Christoph Wintersteiger (t-cwinte) 2008-12-26 - -Revision History: - ---*/ - -#ifndef _LOCKLESS_QUEUE_H_ -#define _LOCKLESS_QUEUE_H_ - -#include -#include "debug.h" - -template -class lockless_queue { -protected: - unsigned m_head; - unsigned m_tail; - unsigned m_size; - T *m_items; -public: - typedef T value_type; - - lockless_queue(unsigned size=4096) : - m_head(0), - m_tail(0), - m_size(size), - m_items(0) { - if(m_size>0) { - m_items = alloc_vect(m_size); - SASSERT(m_items!=0); - } - } - - lockless_queue(const lockless_queue &other) { - m_items = 0; - m_size = m_head = m_tail = 0; - this->operator=(other); - } - - ~lockless_queue() { - if(m_items) { - dealloc_vect(m_items, m_size); - m_items=0; - } - } - - inline bool push(const T& elem) { - volatile unsigned head = m_head; - - if(((head+1)%m_size) == m_tail) - return false; // queue is full. - - m_items[head++] = elem; - head %= m_size; - m_head = head; - return true; - } - - inline bool pop() { - volatile unsigned tail = m_tail; - - if(tail == m_head) - return false; // queue is empty. - - tail = (tail+1) % m_size; - m_tail = tail; - return true; - } - - inline T& back() const { - SASSERT(!empty()); - return m_items[m_tail]; - } - - inline bool empty() const { - return (m_tail == m_head); - } - - inline bool full() const { - return (m_tail == ((m_head+1)%m_size)); - } - - lockless_queue& operator=(const lockless_queue &other) { - if(m_size!=other.m_size) { - if(m_items) dealloc_vect(m_items, m_size); - m_items = alloc_vect(other.m_size); - m_size = other.m_size; - } - - for(size_t cur = other.m_tail; cur!=other.m_head; cur = (cur+1)%m_size) - m_items[cur] = other.m_items[cur]; - - m_tail = other.m_tail; - m_head = other.m_head; - - return *this; - } - -}; - -#endif diff --git a/lib/model_evaluator_params.cpp b/lib/model_evaluator_params.cpp deleted file mode 100644 index bfb4e2ee5..000000000 --- a/lib/model_evaluator_params.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/*++ -Copyright (c) 2011 Microsoft Corporation - -Module Name: - - model_evaluator_params.cpp - -Abstract: - - New parameter setting support for rewriter. - -Author: - - Leonardo (leonardo) 2011-04-22 - -Notes: - ---*/ -#include"model_evaluator_params.h" - -model_evaluator_params::model_evaluator_params() { - reset(); -} - -void model_evaluator_params::reset() { - m_model_completion = false; - m_cache = true; - m_max_steps = UINT_MAX; - m_max_memory = UINT_MAX; -} - -#define PARAM(name) param_names.push_back(name) - -void model_evaluator_params::get_params(svector & param_names) const { - PARAM(":model-completion"); - PARAM(":cache"); - PARAM(":max-steps"); - PARAM(":max-memory"); -} - -#define DESCR(NAME, DR) if (strcmp(name, NAME) == 0) return DR - -char const * model_evaluator_params::get_param_descr(char const * name) const { - DESCR(":model-completion", "(default: false) assigns an interpretation to symbols that are not intepreted by the model."); - DESCR(":cache", "(default: true) cache intermediate results."); - DESCR(":max-steps", "(default: infty) maximum number of steps."); - DESCR(":max-memory", "(default: infty) maximum amount of memory in megabytes."); - return 0; -} - -#define RBOOL(NAME) if (strcmp(name, NAME) == 0) return CPK_BOOL -#define RUINT(NAME) if (strcmp(name, NAME) == 0) return CPK_UINT - -param_kind model_evaluator_params::get_param_kind(char const * name) const { - RBOOL(":model-completion"); - RBOOL(":cache"); - RUINT(":max-steps"); - RUINT(":max-memory"); - return CPK_INVALID; -} - -#define SET(NAME, FIELD) if (strcmp(name, NAME) == 0) { FIELD = value; return true; } - -bool model_evaluator_params::set_bool_param(char const * name, bool value) { - SET(":model-completion", m_model_completion); - SET(":cache", m_cache); - return false; -} - -bool model_evaluator_params::set_uint_param(char const * name, unsigned value) { - SET(":max-steps", m_max_steps); - SET(":max-memory", m_max_memory); - return false; -} - - diff --git a/lib/value.cpp b/lib/value.cpp deleted file mode 100644 index b81bbbb0b..000000000 --- a/lib/value.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/*++ -Copyright (c) 2006 Microsoft Corporation - -Module Name: - - value.cpp - -Abstract: - - - -Author: - - Leonardo de Moura (leonardo) 2007-08-17. - -Revision History: - ---*/ -#include"value.h" - -void bool_value::display(std::ostream & out) const { - out << (m_value ? "true" : "false"); -} - -unsigned bool_value::hash() const { - return m_value ? 1 : 0; -} - -bool bool_value::operator==(const value & other) const { - const bool_value * o = dynamic_cast(&other); - return o && m_value == o->m_value; -} - -basic_factory::basic_factory(ast_manager & m): - value_factory(symbol("basic"), m), - m_bool(m) { - m_bool = m.mk_type(m.get_basic_family_id(), BOOL_SORT); - m_true = alloc(bool_value, true, m_bool.get()); - m_false = alloc(bool_value, false, m_bool.get()); -} - - diff --git a/lib/value.h b/lib/value.h deleted file mode 100644 index 2055449b8..000000000 --- a/lib/value.h +++ /dev/null @@ -1,162 +0,0 @@ -/*++ -Copyright (c) 2006 Microsoft Corporation - -Module Name: - - value.h - -Abstract: - - Abstract class used to represent values in a model. - -Author: - - Leonardo de Moura (leonardo) 2007-08-14. - -Revision History: - ---*/ -#ifndef _VALUE_H_ -#define _VALUE_H_ - -#include"core_model.h" -#include"ast.h" -#include"ref.h" - -class model; - -class value { - partition_id m_partition_id; - unsigned m_ref_count; - type_ast * m_type; - - friend class model; - - void set_partition_id(partition_id id) { - m_partition_id = id; - } - -public: - value(type_ast * ty): - m_partition_id(null_partition_id), - m_ref_count(0), - m_type(ty) { - } - - virtual ~value() {} - - void inc_ref() { m_ref_count ++; } - - void dec_ref() { - SASSERT(m_ref_count > 0); - m_ref_count--; - if (m_ref_count == 0) { - dealloc(this); - } - } - - partition_id get_partition_id() { return m_partition_id; } - - type_ast * get_type() const { return m_type; } - - virtual void display(std::ostream & out) const = 0; - - virtual unsigned hash() const = 0; - - virtual bool operator==(const value & other) const = 0; - - virtual void infer_types(ast_vector & result) { /* default: do nothing */ } - - virtual void collect_used_partitions(svector & result) { /* default: do nothing */ } -}; - -inline std::ostream & operator<<(std::ostream & target, const value & v) { - v.display(target); - return target; -} - -class value_factory { - family_id m_fid; -public: - value_factory(symbol fname, ast_manager & m): - m_fid(m.get_family_id(fname)) { - } - - virtual ~value_factory() {} - - // Return some value of the given type - virtual value * get_some_value(type_ast * ty) = 0; - - // Return two distinct values of the given type - virtual bool get_some_values(type_ast * ty, ref & v1, ref & v2) = 0; - - // Return a fresh value of the given type - virtual value * get_fresh_value(type_ast * ty) = 0; - - virtual value * update_value(value * source, const svector & pid2pid) { - return source; - } - - family_id get_family_id() const { return m_fid; } -}; - -class bool_value : public value { - friend class basic_factory; - bool m_value; - - bool_value(bool v, type_ast * ty): - value(ty), - m_value(v) { - } - -public: - - bool get_value() const { - return m_value; - } - - virtual void display(std::ostream & out) const; - - virtual unsigned hash() const; - - virtual bool operator==(const value & other) const; -}; - -class basic_factory : public value_factory { - ast_ref m_bool; - ref m_true; - ref m_false; -public: - basic_factory(ast_manager & m); - - virtual ~basic_factory() {} - - bool_value * get_true() const { - return m_true.get(); - } - - bool_value * get_false() const { - return m_false.get(); - } - - // Return some value of the given type - virtual value * get_some_value(type_ast * ty) { - return get_false(); - } - - // Return two distinct values of the given type - virtual bool get_some_values(type_ast * ty, ref & v1, ref & v2) { - v1 = get_false(); - v2 = get_true(); - return true; - } - - // Return a fresh value of the given type - virtual value * get_fresh_value(type_ast * ty) { - // it is not possible to create new fresh values... - return 0; - } -}; - -#endif /* _VALUE_H_ */ - diff --git a/scripts/config-debug.mk.in b/scripts/config-debug.mk.in new file mode 100644 index 000000000..6ceb8d737 --- /dev/null +++ b/scripts/config-debug.mk.in @@ -0,0 +1,14 @@ + + +CXX=@CXX@ +CXXFLAGS=@CPPFLAGS@ @CXXFLAGS@ -c -g -Wall -fopenmp -msse -msse2 -mfpmath=sse -fPIC +CXX_OUT_FLAG=-o +OBJ_EXT=.o +LIB_EXT=.a +AR=@AR@ +AR_FLAGS=rcs +AR_OUTFLAG= +EXE_EXT= +LINK=@CXX@ +LINK_FLAGS=-lpthread -fopenmp +LINK_OUT_FLAG=-o \ No newline at end of file diff --git a/scripts/config-release.mk.in b/scripts/config-release.mk.in new file mode 100644 index 000000000..27c87b0e3 --- /dev/null +++ b/scripts/config-release.mk.in @@ -0,0 +1,14 @@ + + +CXX=@CXX@ +CXXFLAGS=@CPPFLAGS@ @CXXFLAGS@ -c -O3 -fomit-frame-pointer -Wall -fopenmp -msse -msse2 -mfpmath=sse -fPIC +CXX_OUT_FLAG=-o +OBJ_EXT=.o +LIB_EXT=.a +AR=@AR@ +AR_FLAGS=rcs +AR_OUTFLAG= +EXE_EXT= +LINK=@CXX@ +LINK_FLAGS=-lpthread -fopenmp +LINK_OUT_FLAG=-o diff --git a/scripts/config-vs-debug.mk b/scripts/config-vs-debug.mk new file mode 100644 index 000000000..c4ff2dba4 --- /dev/null +++ b/scripts/config-vs-debug.mk @@ -0,0 +1,15 @@ +CXX=cl +CXXFLAGS=/c /ZI /nologo /W3 /WX- /Od /Oy- /D "WIN32" /D "_DEBUG" /D "Z3DEBUG" /D "_CONSOLE" /D "_TRACE" /D "_WINDOWS" /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /openmp /Gd /analyze- +CXX_OUT_FLAG=/Fo +OBJ_EXT=.obj +LIB_EXT=.lib +AR=lib +AR_FLAGS=/nologo +AR_OUTFLAG=/OUT: +EXE_EXT=.exe +LINK=cl +LINK_FLAGS=/nologo /MDd +LINK_EXTRA_FLAGS=/link /DEBUG /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:"8388608" /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT +LINK_OUT_FLAG=/Fe + + diff --git a/scripts/config-vs-release.mk b/scripts/config-vs-release.mk new file mode 100644 index 000000000..5c3ee5885 --- /dev/null +++ b/scripts/config-vs-release.mk @@ -0,0 +1,15 @@ +CXX=cl +CXXFLAGS=/nologo /c /W3 /WX- /O2 /Oy- /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WINDOWS" /D "ASYNC_COMMANDS" /Gm- /EHsc /GS /fp:precise /Zc:wchar_t /Zc:forScope /openmp /Gd /analyze- +CXX_OUT_FLAG=/Fo +OBJ_EXT=.obj +LIB_EXT=.lib +AR=lib +AR_FLAGS=/nologo +AR_OUTFLAG=/OUT: +EXE_EXT=.exe +LINK=cl +LINK_FLAGS=/nologo /MD +LINK_EXTRA_FLAGS=/link /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:"8388608" /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT +LINK_OUT_FLAG=/Fe + + diff --git a/scripts/mk_exception.py b/scripts/mk_exception.py new file mode 100644 index 000000000..05558855d --- /dev/null +++ b/scripts/mk_exception.py @@ -0,0 +1,12 @@ +############################################ +# Copyright (c) 2012 Microsoft Corporation +# +# Author: Leonardo de Moura (leonardo) +############################################ + +class MKException(Exception): + def __init__(self, value): + self.value = value + def __str__(self): + return repr(self.value) + diff --git a/scripts/mk_make.py b/scripts/mk_make.py new file mode 100644 index 000000000..2e21d45e5 --- /dev/null +++ b/scripts/mk_make.py @@ -0,0 +1,85 @@ +############################################ +# Copyright (c) 2012 Microsoft Corporation +# +# Scripts for generating Makefiles and Visual +# Studio project files. +# +# Author: Leonardo de Moura (leonardo) +############################################ +from mk_util import * + +parse_options() + +# set_build_dir('build') +# set_src_dir('src') +# set_modes(['Debug', 'Release']) +# set_platforms(['Win32', 'x64']) +# set_vs_options('WIN32;_WINDOWS;ASYNC_COMMANDS', +# 'Z3DEBUG;_TRACE;_DEBUG', +# 'NDEBUG;_EXTERNAL_RELEASE') + +add_lib('util', []) +add_lib('polynomial', ['util'], 'math/polynomial') +add_lib('sat', ['util']) +# nlsat only reuses the file sat_types.h from sat +add_lib('nlsat', ['polynomial', 'sat']) +add_lib('subpaving', ['util'], 'math/subpaving') +add_lib('ast', ['util', 'polynomial']) +add_lib('rewriter', ['ast', 'polynomial'], 'ast/rewriter') +# array_property is only used in test exe +add_lib('array_property', ['ast', 'rewriter'], 'ast/array_property') +# Simplifier module will be deleted in the future. +# It has been replaced with rewriter module. +add_lib('simplifier', ['rewriter'], 'ast/simplifier') +# Model module should not depend on simplifier module. +# We must replace all occurrences of simplifier with rewriter. +add_lib('model', ['rewriter', 'simplifier']) +add_lib('tactic', ['ast', 'model']) +# Old (non-modular) parameter framework. It has been subsumed by util\params.h. +# However, it is still used by many old components. +add_lib('old_params', ['model', 'simplifier']) +add_lib('cmd_context', ['tactic', 'rewriter', 'model', 'old_params', 'simplifier']) +# Assertion set is the old tactic framework used in Z3 3.x. It will be deleted as soon as we finish the porting old +# code to the new tactic framework. +add_lib('assertion_set', ['cmd_context']) +add_lib('substitution', ['ast'], 'ast/substitution') +add_lib('normal_forms', ['tactic', 'assertion_set']) +add_lib('pattern', ['normal_forms'], 'ast/pattern') +add_lib('spc', ['simplifier', 'substitution', 'old_params', 'pattern']) +add_lib('parser_util', ['ast']) +add_lib('smt2parser', ['cmd_context', 'parser_util']) +add_lib('macros', ['simplifier', 'old_params'], 'ast/macros') +add_lib('grobner', ['ast'], 'math/grobner') +add_lib('euclid', ['util'], 'math/euclid') +add_lib('proof_checker', ['rewriter', 'spc'], 'ast/proof_checker') +add_lib('bit_blaster', ['rewriter', 'simplifier', 'old_params', 'tactic', 'assertion_set'], 'tactic/bit_blaster') +add_lib('smt', ['assertion_set', 'bit_blaster', 'macros', 'normal_forms', 'cmd_context', + 'substitution', 'grobner', 'euclid', 'proof_checker', 'pattern', 'parser_util']) +add_lib('user_plugin', ['smt'], 'smt/user_plugin') +add_lib('core_tactics', ['tactic', 'normal_forms'], 'tactic/core_tactics') +add_lib('sat_tactic', ['tactic', 'sat'], 'tactic/sat_tactic') +add_lib('sat_strategy', ['assertion_set', 'sat_tactic'], 'assertion_set/sat_strategy') +add_lib('arith_tactics', ['core_tactics', 'assertion_set', 'sat', 'sat_strategy'], 'tactic/arith_tactics') +add_lib('nlsat_tactic', ['nlsat', 'sat_tactic', 'arith_tactics'], 'tactic/nlsat_tactic') +add_lib('subpaving_tactic', ['core_tactics', 'subpaving'], 'math/subpaving/tactic') +add_lib('bv_tactics', ['tactic', 'bit_blaster'], 'tactic/bv_tactics') +add_lib('fuzzing', ['ast'], 'test/fuzzing') +add_lib('fpa', ['core_tactics', 'bv_tactics', 'sat_tactic'], 'tactic/fpa') +add_lib('smt_tactic', ['smt'], 'smt/tactic') +add_lib('extra_cmds', ['cmd_context', 'subpaving_tactic', 'arith_tactics'], 'cmd_context/extra_cmds') +add_lib('sls_tactic', ['tactic', 'normal_forms', 'core_tactics', 'bv_tactics'], 'tactic/sls_tactic') +add_lib('aig', ['cmd_context', 'assertion_set'], 'tactic/aig') +# TODO: split muz_qe into muz, qe. Perhaps, we should also consider breaking muz into muz and pdr. +add_lib('muz_qe', ['smt', 'sat', 'smt2parser']) +add_lib('smtlogic_tactics', ['arith_tactics', 'bv_tactics', 'nlsat_tactic', 'smt_tactic', 'aig', 'muz_qe'], 'tactic/smtlogic_tactics') +# TODO: rewrite ufbv_strategy as a tactic and move to smtlogic_tactics. +add_lib('ufbv_tactic', ['normal_forms', 'core_tactics', 'macros', 'smt_tactic', 'rewriter'], 'tactic/ufbv_tactic') +add_lib('portfolio', ['smtlogic_tactics', 'ufbv_tactic', 'fpa', 'aig', 'muz_qe', 'sls_tactic', 'subpaving_tactic'], 'tactic/portfolio') +# TODO: delete SMT 1.0 frontend +add_lib('api', ['portfolio', 'user_plugin']) +add_exe('shell', ['api', 'sat', 'extra_cmds'], exe_name='z3') +add_exe('test', ['api', 'fuzzing', 'array_property'], exe_name='test-z3') + +# mk_vs_solution() + +mk_makefile() diff --git a/scripts/mk_util.py b/scripts/mk_util.py new file mode 100644 index 000000000..52571eb3d --- /dev/null +++ b/scripts/mk_util.py @@ -0,0 +1,370 @@ +############################################ +# Copyright (c) 2012 Microsoft Corporation +# +# Auxiliary scripts for generating Makefiles +# and Visual Studio project files. +# +# Author: Leonardo de Moura (leonardo) +############################################ +import os +import glob +import sets +import re +import getopt +import sys +import shutil +from mk_exception import * + +BUILD_DIR='build' +REV_BUILD_DIR='..' +SRC_DIR='src' +IS_WINDOW=False +VERBOSE=False +DEBUG_MODE=False +SHOW_CPPS = True +VS_X64 = False + +LIB_KIND = 0 +EXE_KIND = 1 + +if os.name == 'nt': + IS_WINDOW=True + # Visual Studio already displays the files being compiled + SHOW_CPPS=False + +def display_help(): + print "mk_make.py: Z3 Makefile generator\n" + print "This script generates the Makefile for the Z3 theorem prover." + print "It must be executed from the Z3 root directory." + print "\nOptions:" + print " -h, --help display this message" + print " -v, --verbose be verbose" + print " -b , --build= subdirectory where Z3 will be built (default: build)." + print " -d, --debug compile Z3 in debug mode." + print " -x, --x64 create 64 binary when using Visual Studio." + exit(0) + +# Parse configuration option for mk_make script +def parse_options(): + global VERBOSE, DEBUG_MODE, IS_WINDOW, VS_X64 + options, remainder = getopt.gnu_getopt(sys.argv[1:], 'b:dvxh', ['build=', + 'debug', + 'verbose', + 'x64', + 'help' + ]) + for opt, arg in options: + if opt in ('-b', '--build'): + if arg == 'src': + raise MKException('The src directory should not be used to host the Makefile') + set_build_dir(arg) + elif opt in ('-v', '--verbose'): + VERBOSE = True + elif opt in ('-d', '--debug'): + DEBUG_MODE = True + elif opt in ('-x', '--x64'): + if not IS_WINDOW: + raise MKException('x64 compilation mode can only be specified when using Visual Studio') + VS_X64 = True + elif opt in ('-h', '--help'): + display_help() + else: + raise MKException("Invalid command line option '%s'" % opt) + +# Return a list containing a file names included using '#include' in +# the given C/C++ file named fname. +def extract_c_includes(fname): + result = [] + # We look for well behaved #include directives + std_inc_pat = re.compile("[ \t]*#include[ \t]*\"(.*)\"[ \t]*") + system_inc_pat = re.compile("[ \t]*#include[ \t]*\<.*\>[ \t]*") + # We should generate and error for any occurrence of #include that does not match the previous pattern. + non_std_inc_pat = re.compile(".*#include.*") + + f = open(fname, 'r') + linenum = 1 + for line in f: + m1 = std_inc_pat.match(line) + if m1: + result.append(m1.group(1)) + elif not system_inc_pat.match(line) and non_std_inc_pat.match(line): + raise MKException("Invalid #include directive at '%s':%s" % (fname, line)) + linenum = linenum + 1 + return result + + +# Given a path dir1/subdir2/subdir3 returns ../../.. +def reverse_path(p): + l = p.split('/') + n = len(l) + r = '..' + for i in range(1, n): + r = '%s/%s' % (r, '..') + return r + +def mk_dir(d): + if not os.path.exists(d): + os.makedirs(d) + +def set_build_dir(d): + global BUILD_DIR, REV_BUILD_DIR + BUILD_DIR = d + REV_BUILD_DIR = reverse_path(d) + +_UNIQ_ID = 0 + +def mk_fresh_name(prefix): + global _UNIQ_ID + r = '%s_%s' % (prefix, _UNIQ_ID) + _UNIQ_ID = _UNIQ_ID + 1 + return r + +_Id = 0 +_Components = [] +_ComponentNames = sets.Set() +_Name2Component = {} +_Processed_Headers = sets.Set() + +def get_cpp_files(path): + return filter(lambda f: f.endswith('.cpp'), os.listdir(path)) + +def find_all_deps(name, deps): + new_deps = [] + for dep in deps: + if dep in _ComponentNames: + if not (dep in new_deps): + new_deps.append(dep) + for dep_dep in _Name2Component[dep].deps: + if not (dep_dep in new_deps): + new_deps.append(dep_dep) + else: + raise MKException("Unknown component '%s' at '%s'." % (dep, name)) + return new_deps + +class Component: + def __init__(self, name, kind, path, deps): + global BUILD_DIR, SRC_DIR, REV_BUILD_DIR + if name in _ComponentNames: + raise MKException("Component '%s' was already defined." % name) + if path == None: + path = name + self.kind = kind + self.name = name + self.path = path + self.deps = find_all_deps(name, deps) + self.build_dir = path + self.src_dir = '%s/%s' % (SRC_DIR, path) + self.to_src_dir = '%s/%s' % (REV_BUILD_DIR, self.src_dir) + + # Find fname in the include paths for the given component. + # ownerfile is only used for creating error messages. + # That is, we were looking for fname when processing ownerfile + def find_file(self, fname, ownerfile): + global _Name2Component + full_fname = '%s/%s' % (self.src_dir, fname) + if os.path.exists(full_fname): + return self + for dep in self.deps: + c_dep = _Name2Component[dep] + full_fname = '%s/%s' % (c_dep.src_dir, fname) + if os.path.exists(full_fname): + return c_dep + raise MKException("Failed to find include file '%s' for '%s' when processing '%s'." % (fname, ownerfile, self.name)) + + # Display all dependencies of file basename located in the given component directory. + # The result is displayed at out + def add_cpp_h_deps(self, out, basename): + includes = extract_c_includes('%s/%s' % (self.src_dir, basename)) + out.write('%s/%s' % (self.to_src_dir, basename)) + for include in includes: + owner = self.find_file(include, basename) + out.write(' %s/%s.node' % (owner.build_dir, include)) + + # Add a rule for each #include directive in the file basename located at the current component. + def add_rule_for_each_include(self, out, basename): + fullname = '%s/%s' % (self.src_dir, basename) + includes = extract_c_includes(fullname) + for include in includes: + owner = self.find_file(include, fullname) + owner.add_h_rule(out, include) + + # Display a Makefile rule for an include file located in the given component directory. + # 'include' is something of the form: ast.h, polynomial.h + # The rule displayed at out is of the form + # ast/ast_pp.h.node : ../src/util/ast_pp.h util/util.h.node ast/ast.h.node + # @echo "done" > ast/ast_pp.h.node + def add_h_rule(self, out, include): + include_src_path = '%s/%s' % (self.to_src_dir, include) + if include_src_path in _Processed_Headers: + return + _Processed_Headers.add(include_src_path) + self.add_rule_for_each_include(out, include) + include_node = '%s/%s.node' % (self.build_dir, include) + out.write('%s: ' % include_node) + self.add_cpp_h_deps(out, include) + out.write('\n') + out.write('\t@echo done > %s\n' % include_node) + + def add_cpp_rules(self, out, include_defs, cppfile): + self.add_rule_for_each_include(out, cppfile) + objfile = '%s/%s$(OBJ_EXT)' % (self.build_dir, os.path.splitext(cppfile)[0]) + srcfile = '%s/%s' % (self.to_src_dir, cppfile) + out.write('%s: ' % objfile) + self.add_cpp_h_deps(out, cppfile) + out.write('\n') + if SHOW_CPPS: + out.write('\t@echo %s/%s\n' % (self.src_dir, cppfile)) + out.write('\t@$(CXX) $(CXXFLAGS) $(%s) $(CXX_OUT_FLAG)%s %s\n' % (include_defs, objfile, srcfile)) + + def mk_makefile(self, out): + include_defs = mk_fresh_name('includes') + out.write('%s =' % include_defs) + for dep in self.deps: + out.write(' -I%s' % _Name2Component[dep].to_src_dir) + out.write('\n') + mk_dir('%s/%s' % (BUILD_DIR, self.build_dir)) + for cppfile in get_cpp_files(self.src_dir): + self.add_cpp_rules(out, include_defs, cppfile) + + # Return true if the component should be included in the all: rule + def main_component(self): + return False + +class LibComponent(Component): + def __init__(self, name, path, deps): + Component.__init__(self, name, LIB_KIND, path, deps) + + def mk_makefile(self, out): + Component.mk_makefile(self, out) + # generate rule for lib + objs = [] + for cppfile in get_cpp_files(self.src_dir): + objfile = '%s/%s$(OBJ_EXT)' % (self.build_dir, os.path.splitext(cppfile)[0]) + objs.append(objfile) + + libfile = '%s/%s$(LIB_EXT)' % (self.build_dir, self.name) + out.write('%s:' % libfile) + for obj in objs: + out.write(' ') + out.write(obj) + out.write('\n') + out.write('\t@$(AR) $(AR_FLAGS) $(AR_OUTFLAG)%s' % libfile) + for obj in objs: + out.write(' ') + out.write(obj) + out.write('\n') + out.write('%s: %s\n\n' % (self.name, libfile)) + +# Auxiliary function for sort_components +def comp_components(c1, c2): + id1 = _Name2Component[c1].id + id2 = _Name2Component[c2].id + return id2 - id1 + +# Sort components based on (reverse) definition time +def sort_components(cnames): + return sorted(cnames, cmp=comp_components) + +class ExeComponent(Component): + def __init__(self, name, exe_name, path, deps): + Component.__init__(self, name, EXE_KIND, path, deps) + if exe_name == None: + exe_name = name + self.exe_name = exe_name + + def mk_makefile(self, out): + global _Name2Component + Component.mk_makefile(self, out) + # generate rule for exe + + exefile = '%s$(EXE_EXT)' % self.exe_name + out.write('%s:' % exefile) + deps = sort_components(self.deps) + objs = [] + for cppfile in get_cpp_files(self.src_dir): + objfile = '%s/%s$(OBJ_EXT)' % (self.build_dir, os.path.splitext(cppfile)[0]) + objs.append(objfile) + for obj in objs: + out.write(' ') + out.write(obj) + for dep in deps: + c_dep = _Name2Component[dep] + out.write(' %s/%s$(LIB_EXT)' % (c_dep.build_dir, c_dep.name)) + out.write('\n') + out.write('\t$(LINK) $(LINK_OUT_FLAG)%s $(LINK_FLAGS)' % exefile) + for obj in objs: + out.write(' ') + out.write(obj) + for dep in deps: + c_dep = _Name2Component[dep] + out.write(' %s/%s$(LIB_EXT)' % (c_dep.build_dir, c_dep.name)) + out.write(' $(LINK_EXTRA_FLAGS)\n') + out.write('%s: %s\n\n' % (self.name, exefile)) + + # All executables are included in the all: rule + def main_component(self): + return True + +def reg_component(name, c): + global _Id, _Components, _ComponentNames, _Name2Component + c.id = _Id + _Id = _Id + 1 + _Components.append(c) + _ComponentNames.add(name) + _Name2Component[name] = c + if VERBOSE: + print "Processed '%s'" % name + +def add_lib(name, deps=[], path=None): + c = LibComponent(name, path, deps) + reg_component(name, c) + +def add_exe(name, deps=[], path=None, exe_name=None): + c = ExeComponent(name, exe_name, path, deps) + reg_component(name, c) + +# Copy configuration correct file to BUILD_DIR +def cp_config_mk(): + if IS_WINDOW: + if VS_X64: + # TODO + return + else: + if DEBUG_MODE: + shutil.copyfile('scripts/config-vs-debug.mk', '%s/config.mk' % BUILD_DIR) + else: + shutil.copyfile('scripts/config-vs-release.mk', '%s/config.mk' % BUILD_DIR) + else: + if DEBUG_MODE: + shutil.copyfile('scripts/config-debug.mk', '%s/config.mk' % BUILD_DIR) + else: + shutil.copyfile('scripts/config-release.mk', '%s/config.mk' % BUILD_DIR) + +# Generate the Z3 makefile +def mk_makefile(): + mk_dir(BUILD_DIR) + cp_config_mk() + if VERBOSE: + print "Writing %s/Makefile" % BUILD_DIR + out = open('%s/Makefile' % BUILD_DIR, 'w') + out.write('# Automatically generated file. Generator: scripts/mk_make.py\n') + out.write('include config.mk\n') + # Generate :all rule + out.write('all:') + for c in _Components: + if c.main_component: + out.write(' %s' % c.name) + out.write('\n\n') + # Generate components + for c in _Components: + c.mk_makefile(out) + # Finalize + if VERBOSE: + print "Makefile was successfully generated." + if DEBUG_MODE: + print " compilation mode: Debug" + else: + print " compilation mode: Release" + print "Type 'cd %s; make' to build Z3" % BUILD_DIR + + diff --git a/scripts/mk_util_old.py b/scripts/mk_util_old.py new file mode 100644 index 000000000..5870af710 --- /dev/null +++ b/scripts/mk_util_old.py @@ -0,0 +1,308 @@ +############################################ +# Copyright (c) 2012 Microsoft Corporation +# +# Auxiliary scripts for generating Makefiles +# and Visual Studio project files. +# +# Author: Leonardo de Moura (leonardo) +############################################ +import os +import glob + +BUILD_DIR='build' +SRC_DIR='src' +MODES=[] +PLATFORMS=[] + +class MKException(Exception): + def __init__(self, value): + self.value = value + def __str__(self): + return repr(self.value) + +def set_build_dir(d): + global BUILD_DIR + BUILD_DIR = d + mk_dir(BUILD_DIR) + +def set_src_dir(d): + global SRC_DIR + SRC_DIR = d + +def set_modes(l): + global MODES + MODES=l + +def set_platforms(l): + global PLATFORMS + PLATFORMS=l + +VS_COMMON_OPTIONS='WIN32' +VS_DBG_OPTIONS='_DEBUG' +VS_RELEASE_OPTIONS='NDEBUG' + +GUI = 0 +Name2GUI = {} + +def mk_gui_str(id): + return '4D2F40D8-E5F9-473B-B548-%012d' % id + +MODULES = [] +HEADERS = [] +LIBS = [] +EXES = [] +DEPS = {} + +def set_vs_options(common, dbg, release): + global VS_COMMON_OPTIONS, VS_DBG_OPTIONS, VS_RELEASE_OPTIONS + VS_COMMON_OPTIONS = common + VS_DBG_OPTIONS = dbg + VS_RELEASE_OPTIONS = release + +def is_debug(mode): + return mode == 'Debug' + +def is_x64(platform): + return platform == 'x64' + +def mk_dir(d): + if not os.path.exists(d): + os.makedirs(d) + +def module_src_dir(name): + return '%s%s%s' % (SRC_DIR, os.sep, name) + +def module_build_dir(name): + return '%s%s%s' % (BUILD_DIR, os.sep, name) + +LIB_KIND = 0 +EXE_KIND = 1 + +def get_extension(kind): + if kind == LIB_KIND: + return 'lib' + elif kind == EXE_KIND: + return 'exe' + else: + raise MKException('unknown kind %s' % kind) + +def vs_header(f): + f.write( +'\n' +'\n') + +def vs_project_configurations(f, name): + global GUI, Name2GUI + f.write(' \n') + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + f.write(' %s\n' % mode) + f.write(' %s\n' % platform) + f.write(' \n') + f.write(' \n') + + f.write(' \n') + f.write(' {%s}\n' % mk_gui_str(GUI)) + f.write(' %s\n' % name) + f.write(' Win32Proj\n') + f.write(' \n') + f.write(' \n') + Name2GUI[name] = GUI + GUI = GUI + 1 + +def vs_configurations(f, name, kind): + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + if kind == LIB_KIND: + f.write(' StaticLibrary\n') + elif kind == EXE_KIND: + f.write(' Application\n') + else: + raise MKException("unknown kind %s" % kind) + f.write(' Unicode\n') + f.write(' false\n') + f.write(' \n') + + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + + f.write(' \n') + for mode in MODES: + for platform in PLATFORMS: + if is_x64(platform): + f.write(' $(SolutionDir)$(Platform)\$(Configuration)\\n' % + (mode, platform)) + else: + f.write(' $(SolutionDir)$(Configuration)\\n' % (mode, platform)) + for mode in MODES: + for platform in PLATFORMS: + f.write(' %s\n' % (mode, platform, name)) + f.write(' .%s\n' % (mode, platform, get_extension(kind))) + f.write(' \n') + +def vs_compilation_options(f, name, deps, kind): + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + if is_x64(platform): + f.write(' \n') + f.write(' X64\n') + f.write(' \n') + f.write(' \n') + if is_debug(mode): + f.write(' Disabled\n') + else: + f.write(' Full\n') + options = VS_COMMON_OPTIONS + if is_debug(mode): + options = "%s;%s" % (options, VS_DBG_OPTIONS) + else: + options = "%s;%s" % (options, VS_RELEASE_OPTIONS) + if is_x64(platform): + options = "%s;_AMD64_" % options + f.write(' %s;%%(PreprocessorDefinitions)\n' % options) + if is_debug(mode): + f.write(' true\n') + f.write(' EnableFastChecks\n') + f.write(' Level3\n') + f.write(' MultiThreadedDebugDLL\n') + f.write(' true\n') + f.write(' ProgramDatabase\n') + f.write(' ') + f.write('..\..\src\%s' % name) + for dep in deps: + f.write(';..\..\src\%s' % dep) + f.write('\n') + f.write(' \n') + f.write(' \n') + f.write(' $(OutDir)%s.%s\n' % (name, get_extension(kind))) + f.write(' %(AdditionalLibraryDirectories)\n') + if is_x64(platform): + f.write(' MachineX64\n') + else: + f.write(' MachineX86\n') + if kind == EXE_KIND: + f.write('kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib') + for dep in deps: + f.write(';$(OutDir)%s.lib' % dep) + # if is_x64(platform): + # f.write(';..\%s\%s\%s\%s.lib' % (dep, platform, mode, dep)) + # else: + # f.write(';..\%s\%s\%s.lib' % (dep, mode, dep)) + f.write(';%(AdditionalDependencies)\n') + f.write(' \n') + f.write(' \n') + +def add_vs_cpps(f, name): + f.write(' \n') + srcs = module_src_dir(name) + for cppfile in glob.glob(os.path.join(srcs, '*.cpp')): + f.write(' \n' % (os.sep, os.sep, cppfile)) + f.write(' \n') + +def vs_footer(f): + f.write( +' \n' +' \n' +' \n' +'\n') + +def check_new_component(name): + if (name in HEADERS) or (name in LIBS) or (name in EXES): + raise MKException("Component '%s' was already defined" % name) + +# Add a directory containing only .h files +def add_header(name): + check_new_component(name) + HEADERS.append(name) + +def find_all_deps(name, deps): + new_deps = [] + for dep in deps: + if dep in LIBS: + if not (dep in new_deps): + new_deps.append(dep) + for dep_dep in DEPS[dep]: + if not (dep_dep in new_deps): + new_deps.append(dep_dep) + elif dep in HEADERS: + if not (dep in new_deps): + new_deps.append(dep) + else: + raise MKException("Unknown component '%s' at '%s'." % (dep, name)) + return new_deps + +def add_component(name, deps, kind): + check_new_component(name) + if kind == LIB_KIND: + LIBS.append(name) + elif kind == EXE_KIND: + EXES.append(name) + else: + raise MKException("unknown kind %s" % kind) + MODULES.append(name) + deps = find_all_deps(name, deps) + DEPS[name] = deps + print "Dependencies for '%s': %s" % (name, deps) + + module_dir = module_build_dir(name) + mk_dir(module_dir) + + vs_proj = open('%s%s%s.vcxproj' % (module_dir, os.sep, name), 'w') + vs_header(vs_proj) + vs_project_configurations(vs_proj, name) + vs_configurations(vs_proj, name, kind) + vs_compilation_options(vs_proj, name, deps, kind) + add_vs_cpps(vs_proj, name) + vs_footer(vs_proj) + +def add_lib(name, deps): + add_component(name, deps, LIB_KIND) + +def add_exe(name, deps): + add_component(name, deps, EXE_KIND) + +def is_lib(name): + # Add DLL dependency + return name in LIBS + +def mk_vs_solution(): + sln = open('%s%sz3.sln' % (BUILD_DIR, os.sep), 'w') + sln.write('\n') + sln.write("Microsoft Visual Studio Solution File, Format Version 11.00\n") + sln.write("# Visual Studio 2010\n") + for module in MODULES: + gui = Name2GUI[module] + deps = DEPS[module] + sln.write('Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "%s", "%s%s%s.vcxproj", "{%s}"\n' % + (module, module, os.sep, module, mk_gui_str(gui))) + if len(deps) > 0: + sln.write(' ProjectSection(ProjectDependencies) = postProject\n') + for dep in deps: + if is_lib(dep): + i = Name2GUI[dep] + sln.write(' {%s} = {%s}\n' % (mk_gui_str(i), mk_gui_str(i))) + sln.write(' EndProjectSection\n') + sln.write('EndProject\n') + sln.write('Global\n') + sln.write('GlobalSection(SolutionConfigurationPlatforms) = preSolution\n') + for mode in MODES: + for platform in PLATFORMS: + sln.write(' %s|%s = %s|%s\n' % (mode, platform, mode, platform)) + sln.write('EndGlobalSection\n') + sln.write('GlobalSection(ProjectConfigurationPlatforms) = postSolution\n') + for module in MODULES: + gui = Name2GUI[module] + for mode in MODES: + for platform in PLATFORMS: + sln.write(' {%s}.%s|%s.ActiveCfg = %s|%s\n' % (mk_gui_str(gui), mode, platform, mode, platform)) + sln.write(' {%s}.%s|%s.Build.0 = %s|%s\n' % (mk_gui_str(gui), mode, platform, mode, platform)) + sln.write('EndGlobalSection\n') + + print "Visual Solution was generated." diff --git a/update-version.sh b/scripts/update-version.sh similarity index 100% rename from update-version.sh rename to scripts/update-version.sh diff --git a/update_api.py b/scripts/update_api.py similarity index 100% rename from update_api.py rename to scripts/update_api.py diff --git a/update_api.txt b/scripts/update_api.txt similarity index 100% rename from update_api.txt rename to scripts/update_api.txt diff --git a/shell/shell.rc b/shell/shell.rc deleted file mode 100644 index ce6ee41f9..000000000 --- a/shell/shell.rc +++ /dev/null @@ -1,102 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 4,2,0,0 - PRODUCTVERSION 4,2,0,0 - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", "Microsoft" - VALUE "FileDescription", "Z3 shell" - VALUE "FileVersion" "4,2,0,0" - VALUE "InternalName", "Z3 shell" - VALUE "LegalCopyright", "(c) Microsoft Corporation. All rights reserved." - VALUE "OriginalFilename", "z3.exe" - VALUE "ProductName", "Z3" - VALUE "ProductVersion", "4,2,0,0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/shell/shell.vcxproj b/shell/shell.vcxproj deleted file mode 100644 index f39027d06..000000000 --- a/shell/shell.vcxproj +++ /dev/null @@ -1,641 +0,0 @@ - - - - - commercial - Win32 - - - commercial - x64 - - - debug_opt - Win32 - - - debug_opt - x64 - - - Debug - Win32 - - - Debug - x64 - - - external - Win32 - - - external - x64 - - - release_mt - Win32 - - - release_mt - x64 - - - Release - Win32 - - - Release - x64 - - - Trace - Win32 - - - Trace - x64 - - - - {BF547582-F16D-4BE5-B9AB-8B6A9364B447} - shell - Win32Proj - - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(Configuration)\ - false - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - false - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - - - - Disabled - ..\lib;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;Z3DEBUG;_CONSOLE;_TRACE;_WINDOWS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - - - Level3 - EditAndContinue - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - %(DelayLoadDLLs) - true - Console - 8388608 - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - X64 - - - Disabled - ..\lib;%(AdditionalIncludeDirectories) - WIN32;Z3DEBUG;_DEBUG;_CONSOLE;_TRACE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - MachineX64 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;ASYNC_COMMANDS;%(PreprocessorDefinitions) - MultiThreadedDLL - true - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 33554432 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - MachineX64 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - X64 - - - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - MachineX64 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;Z3DEBUG;NDEBUG;_CONSOLE;_WINDOWS;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - X64 - - - ..\lib;%(AdditionalIncludeDirectories) - WIN32;Z3DEBUG;_CONSOLE;_WINDOWS;_DEBUG;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - MachineX64 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_EXTERNAL_RELEASE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_Z3_COMMERCIAL;_EXTERNAL_RELEASE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - _AMD64_;WIN32;NDEBUG;_CONSOLE;_WINDOWS;_EXTERNAL_RELEASE;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - MachineX64 - $(OutDir)z3shell.lib - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_Z3_COMMERCIAL;_EXTERNAL_RELEASE;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - MachineX64 - $(OutDir)z3shell.lib - - - - - - - - - - - - - - - - - - - - - {4a7e5a93-19d8-4382-8950-fb2edec7a76e} - false - - - - - - \ No newline at end of file diff --git a/lib/api_arith.cpp b/src/api/api_arith.cpp similarity index 100% rename from lib/api_arith.cpp rename to src/api/api_arith.cpp diff --git a/lib/api_array.cpp b/src/api/api_array.cpp similarity index 100% rename from lib/api_array.cpp rename to src/api/api_array.cpp diff --git a/lib/api_ast.cpp b/src/api/api_ast.cpp similarity index 100% rename from lib/api_ast.cpp rename to src/api/api_ast.cpp diff --git a/lib/api_ast_map.cpp b/src/api/api_ast_map.cpp similarity index 100% rename from lib/api_ast_map.cpp rename to src/api/api_ast_map.cpp diff --git a/lib/api_ast_map.h b/src/api/api_ast_map.h similarity index 100% rename from lib/api_ast_map.h rename to src/api/api_ast_map.h diff --git a/lib/api_ast_vector.cpp b/src/api/api_ast_vector.cpp similarity index 100% rename from lib/api_ast_vector.cpp rename to src/api/api_ast_vector.cpp diff --git a/lib/api_ast_vector.h b/src/api/api_ast_vector.h similarity index 100% rename from lib/api_ast_vector.h rename to src/api/api_ast_vector.h diff --git a/lib/api_bv.cpp b/src/api/api_bv.cpp similarity index 100% rename from lib/api_bv.cpp rename to src/api/api_bv.cpp diff --git a/lib/api_commands.cpp b/src/api/api_commands.cpp similarity index 100% rename from lib/api_commands.cpp rename to src/api/api_commands.cpp diff --git a/lib/api_config_params.cpp b/src/api/api_config_params.cpp similarity index 100% rename from lib/api_config_params.cpp rename to src/api/api_config_params.cpp diff --git a/lib/api_config_params.h b/src/api/api_config_params.h similarity index 100% rename from lib/api_config_params.h rename to src/api/api_config_params.h diff --git a/lib/api_context.cpp b/src/api/api_context.cpp similarity index 99% rename from lib/api_context.cpp rename to src/api/api_context.cpp index d281af2bd..a6046a83e 100644 --- a/lib/api_context.cpp +++ b/src/api/api_context.cpp @@ -26,6 +26,7 @@ Revision History: #include"api_log_macros.h" #include"api_util.h" #include"install_tactics.h" +#include"reg_decl_plugins.h" namespace api { @@ -60,7 +61,7 @@ namespace api { } context::add_plugins::add_plugins(ast_manager & m) { - m.register_decl_plugins(); + reg_decl_plugins(m); } // ------------------------ diff --git a/lib/api_context.h b/src/api/api_context.h similarity index 100% rename from lib/api_context.h rename to src/api/api_context.h diff --git a/lib/api_datalog.cpp b/src/api/api_datalog.cpp similarity index 100% rename from lib/api_datalog.cpp rename to src/api/api_datalog.cpp diff --git a/lib/api_datalog.h b/src/api/api_datalog.h similarity index 100% rename from lib/api_datalog.h rename to src/api/api_datalog.h diff --git a/lib/api_datatype.cpp b/src/api/api_datatype.cpp similarity index 100% rename from lib/api_datatype.cpp rename to src/api/api_datatype.cpp diff --git a/lib/api_goal.cpp b/src/api/api_goal.cpp similarity index 100% rename from lib/api_goal.cpp rename to src/api/api_goal.cpp diff --git a/lib/api_goal.h b/src/api/api_goal.h similarity index 100% rename from lib/api_goal.h rename to src/api/api_goal.h diff --git a/lib/api_log.cpp b/src/api/api_log.cpp similarity index 100% rename from lib/api_log.cpp rename to src/api/api_log.cpp diff --git a/lib/api_log_macros.cpp b/src/api/api_log_macros.cpp similarity index 100% rename from lib/api_log_macros.cpp rename to src/api/api_log_macros.cpp diff --git a/lib/api_log_macros.h b/src/api/api_log_macros.h similarity index 100% rename from lib/api_log_macros.h rename to src/api/api_log_macros.h diff --git a/lib/api_model.cpp b/src/api/api_model.cpp similarity index 100% rename from lib/api_model.cpp rename to src/api/api_model.cpp diff --git a/lib/api_model.h b/src/api/api_model.h similarity index 100% rename from lib/api_model.h rename to src/api/api_model.h diff --git a/lib/api_numeral.cpp b/src/api/api_numeral.cpp similarity index 100% rename from lib/api_numeral.cpp rename to src/api/api_numeral.cpp diff --git a/lib/api_params.cpp b/src/api/api_params.cpp similarity index 100% rename from lib/api_params.cpp rename to src/api/api_params.cpp diff --git a/lib/api_parsers.cpp b/src/api/api_parsers.cpp similarity index 100% rename from lib/api_parsers.cpp rename to src/api/api_parsers.cpp diff --git a/lib/api_poly.cpp b/src/api/api_poly.cpp similarity index 100% rename from lib/api_poly.cpp rename to src/api/api_poly.cpp diff --git a/lib/api_poly.h b/src/api/api_poly.h similarity index 100% rename from lib/api_poly.h rename to src/api/api_poly.h diff --git a/lib/api_quant.cpp b/src/api/api_quant.cpp similarity index 100% rename from lib/api_quant.cpp rename to src/api/api_quant.cpp diff --git a/lib/api_solver.cpp b/src/api/api_solver.cpp similarity index 99% rename from lib/api_solver.cpp rename to src/api/api_solver.cpp index 1a4a2ef45..71a24c534 100644 --- a/lib/api_solver.cpp +++ b/src/api/api_solver.cpp @@ -29,6 +29,7 @@ Revision History: #include"cancel_eh.h" #include"scoped_timer.h" #include"smt_strategic_solver.h" +#include"default_solver.h" extern "C" { diff --git a/lib/api_solver.h b/src/api/api_solver.h similarity index 100% rename from lib/api_solver.h rename to src/api/api_solver.h diff --git a/lib/api_solver_old.cpp b/src/api/api_solver_old.cpp similarity index 100% rename from lib/api_solver_old.cpp rename to src/api/api_solver_old.cpp diff --git a/lib/api_stats.cpp b/src/api/api_stats.cpp similarity index 100% rename from lib/api_stats.cpp rename to src/api/api_stats.cpp diff --git a/lib/api_stats.h b/src/api/api_stats.h similarity index 100% rename from lib/api_stats.h rename to src/api/api_stats.h diff --git a/lib/api_tactic.cpp b/src/api/api_tactic.cpp similarity index 100% rename from lib/api_tactic.cpp rename to src/api/api_tactic.cpp diff --git a/lib/api_tactic.h b/src/api/api_tactic.h similarity index 100% rename from lib/api_tactic.h rename to src/api/api_tactic.h diff --git a/lib/api_user_theory.cpp b/src/api/api_user_theory.cpp similarity index 100% rename from lib/api_user_theory.cpp rename to src/api/api_user_theory.cpp diff --git a/lib/api_util.h b/src/api/api_util.h similarity index 100% rename from lib/api_util.h rename to src/api/api_util.h diff --git a/lib/expr_pattern_match.cpp b/src/api/expr_pattern_match.cpp similarity index 100% rename from lib/expr_pattern_match.cpp rename to src/api/expr_pattern_match.cpp diff --git a/lib/expr_pattern_match.h b/src/api/expr_pattern_match.h similarity index 94% rename from lib/expr_pattern_match.h rename to src/api/expr_pattern_match.h index eb3c05a94..f0075b1ba 100644 --- a/lib/expr_pattern_match.h +++ b/src/api/expr_pattern_match.h @@ -23,8 +23,9 @@ Notes: #include"ast.h" #include"map.h" #include"front_end_params.h" +#include"pattern_inference.h" -class expr_pattern_match { +class expr_pattern_match : public pattern_database { enum instr_kind { BACKTRACK, @@ -132,8 +133,8 @@ class expr_pattern_match { public: expr_pattern_match(ast_manager & manager); ~expr_pattern_match(); - bool match_quantifier(quantifier* qf, app_ref_vector& patterns, unsigned& weight); - void initialize(char const * database); + virtual bool match_quantifier(quantifier * qf, app_ref_vector & patterns, unsigned & weight); + virtual void initialize(char const * database); void display(std::ostream& out) const; private: diff --git a/lib/smtlib.cpp b/src/api/smtlib.cpp similarity index 100% rename from lib/smtlib.cpp rename to src/api/smtlib.cpp diff --git a/lib/smtlib.h b/src/api/smtlib.h similarity index 100% rename from lib/smtlib.h rename to src/api/smtlib.h diff --git a/lib/smtlib_solver.cpp b/src/api/smtlib_solver.cpp similarity index 99% rename from lib/smtlib_solver.cpp rename to src/api/smtlib_solver.cpp index f9ec045ce..d268d7ac2 100644 --- a/lib/smtlib_solver.cpp +++ b/src/api/smtlib_solver.cpp @@ -26,7 +26,6 @@ Revision History: #include"spc_prover.h" #include"model.h" #include"model_v2_pp.h" -#include"expr2dot.h" #include"solver.h" #include"smt_strategic_solver.h" #include"cmd_context.h" diff --git a/lib/smtlib_solver.h b/src/api/smtlib_solver.h similarity index 100% rename from lib/smtlib_solver.h rename to src/api/smtlib_solver.h diff --git a/lib/smtparser.cpp b/src/api/smtparser.cpp similarity index 99% rename from lib/smtparser.cpp rename to src/api/smtparser.cpp index 216f34b5b..04f9ba619 100644 --- a/lib/smtparser.cpp +++ b/src/api/smtparser.cpp @@ -45,11 +45,8 @@ Revision History: #include"well_sorted.h" #include "str_hashtable.h" #include "front_end_params.h" -#include "z3_private.h" #include "stopwatch.h" -#include "dl_rule.h" -// private method defined in z3.cpp: -front_end_params& Z3_API Z3_get_parameters(__in Z3_context c); +front_end_params& Z3_API Z3_get_parameters(Z3_context c); class id_param_info { symbol m_string; diff --git a/lib/smtparser.h b/src/api/smtparser.h similarity index 100% rename from lib/smtparser.h rename to src/api/smtparser.h diff --git a/lib/z3.h b/src/api/z3.h similarity index 100% rename from lib/z3.h rename to src/api/z3.h diff --git a/lib/z3_api.h b/src/api/z3_api.h similarity index 100% rename from lib/z3_api.h rename to src/api/z3_api.h diff --git a/lib/z3_internal.h b/src/api/z3_internal.h similarity index 100% rename from lib/z3_internal.h rename to src/api/z3_internal.h diff --git a/lib/z3_internal_types.h b/src/api/z3_internal_types.h similarity index 100% rename from lib/z3_internal_types.h rename to src/api/z3_internal_types.h diff --git a/lib/z3_logger.h b/src/api/z3_logger.h similarity index 100% rename from lib/z3_logger.h rename to src/api/z3_logger.h diff --git a/lib/z3_macros.h b/src/api/z3_macros.h similarity index 100% rename from lib/z3_macros.h rename to src/api/z3_macros.h diff --git a/lib/z3_poly.h b/src/api/z3_poly.h similarity index 100% rename from lib/z3_poly.h rename to src/api/z3_poly.h diff --git a/lib/z3_private.h b/src/api/z3_private.h similarity index 100% rename from lib/z3_private.h rename to src/api/z3_private.h diff --git a/lib/z3_replayer.cpp b/src/api/z3_replayer.cpp similarity index 100% rename from lib/z3_replayer.cpp rename to src/api/z3_replayer.cpp diff --git a/lib/z3_replayer.h b/src/api/z3_replayer.h similarity index 100% rename from lib/z3_replayer.h rename to src/api/z3_replayer.h diff --git a/lib/z3_solver.cpp b/src/api/z3_solver.cpp similarity index 100% rename from lib/z3_solver.cpp rename to src/api/z3_solver.cpp diff --git a/lib/z3_solver.h b/src/api/z3_solver.h similarity index 100% rename from lib/z3_solver.h rename to src/api/z3_solver.h diff --git a/lib/z3_v1.h b/src/api/z3_v1.h similarity index 100% rename from lib/z3_v1.h rename to src/api/z3_v1.h diff --git a/src/assertion_set/README b/src/assertion_set/README new file mode 100644 index 000000000..ed699ed82 --- /dev/null +++ b/src/assertion_set/README @@ -0,0 +1 @@ +This module is obsolete. It is subsumed by the tactic module. \ No newline at end of file diff --git a/lib/assertion_set.cpp b/src/assertion_set/assertion_set.cpp similarity index 100% rename from lib/assertion_set.cpp rename to src/assertion_set/assertion_set.cpp diff --git a/lib/assertion_set.h b/src/assertion_set/assertion_set.h similarity index 100% rename from lib/assertion_set.h rename to src/assertion_set/assertion_set.h diff --git a/lib/assertion_set_rewriter.cpp b/src/assertion_set/assertion_set_rewriter.cpp similarity index 100% rename from lib/assertion_set_rewriter.cpp rename to src/assertion_set/assertion_set_rewriter.cpp diff --git a/lib/assertion_set_rewriter.h b/src/assertion_set/assertion_set_rewriter.h similarity index 100% rename from lib/assertion_set_rewriter.h rename to src/assertion_set/assertion_set_rewriter.h diff --git a/lib/assertion_set_strategy.cpp b/src/assertion_set/assertion_set_strategy.cpp similarity index 87% rename from lib/assertion_set_strategy.cpp rename to src/assertion_set/assertion_set_strategy.cpp index 3ba1fd9c9..209f20351 100644 --- a/lib/assertion_set_strategy.cpp +++ b/src/assertion_set/assertion_set_strategy.cpp @@ -21,7 +21,6 @@ Notes: #include"cooperate.h" #include"scoped_timer.h" #include"cancel_eh.h" -#include"smt_solver.h" #include"front_end_params.h" #include"progress_callback.h" #include"params2front_end_params.h" @@ -1201,164 +1200,6 @@ struct check_decided_test : public as_test { as_test * check_decided() { return alloc(check_decided_test); } -class as_st_solver : public assertion_set_strategy { - scoped_ptr m_params; - params_ref m_params_ref; - statistics m_stats; - std::string m_failure; - smt::solver * m_ctx; - bool m_candidate_models; - symbol m_logic; - progress_callback * m_callback; -public: - as_st_solver(bool candidate_models):m_ctx(0), m_candidate_models(candidate_models), m_callback(0) {} - - front_end_params & fparams() { - if (!m_params) - m_params = alloc(front_end_params); - return *m_params; - } - - struct scoped_init_ctx { - as_st_solver & m_owner; - - scoped_init_ctx(as_st_solver & o, ast_manager & m):m_owner(o) { - smt::solver * new_ctx = alloc(smt::solver, m, o.fparams()); - TRACE("as_solver", tout << "logic: " << o.m_logic << "\n";); - new_ctx->set_logic(o.m_logic); - if (o.m_callback) { - new_ctx->set_progress_callback(o.m_callback); - } - #pragma omp critical (as_st_solver) - { - o.m_ctx = new_ctx; - } - } - - ~scoped_init_ctx() { - smt::solver * d = m_owner.m_ctx; - #pragma omp critical (as_st_cancel) - { - m_owner.m_ctx = 0; - } - if (d) - dealloc(d); - } - }; - - virtual ~as_st_solver() { - SASSERT(m_ctx == 0); - } - - virtual void updt_params(params_ref const & p) { - TRACE("as_solver", tout << "updt_params: " << p << "\n";); - m_params_ref = p; - params2front_end_params(m_params_ref, fparams()); - } - - virtual void collect_param_descrs(param_descrs & r) { - } - - virtual void set_cancel(bool f) { - if (m_ctx) - m_ctx->set_cancel(f); - } - - virtual void operator()(assertion_set & s, model_converter_ref & mc) { - SASSERT(is_well_sorted(s)); - IF_VERBOSE(ST_VERBOSITY_LVL, verbose_stream() << "(smt-solver)" << std::endl;); - TRACE("as_solver", tout << "AUTO_CONFIG: " << fparams().m_auto_config << " HIDIV0: " << fparams().m_hi_div0 << " " - << " PREPROCESS: " << fparams().m_preprocess << ", SOLVER:" << fparams().m_solver << "\n";); - TRACE("as_solver_detail", s.display(tout);); - ast_manager & m = s.m(); - TRACE("as_solver_memory", tout << "wasted_size: " << m.get_allocator().get_wasted_size() << "\n";); - // verbose_stream() << "wasted_size: " << m.get_allocator().get_wasted_size() << ", free_objs: " << m.get_allocator().get_num_free_objs() << "\n"; - // m.get_allocator().consolidate(); - scoped_init_ctx init(*this, m); - SASSERT(m_ctx != 0); - unsigned sz = s.size(); - for (unsigned i = 0; i < sz; i++) { - expr * f = s.form(i); - m_ctx->assert_expr(f); - } - lbool r = m_ctx->setup_and_check(); - m_ctx->collect_statistics(m_stats); - switch (r) { - case l_true: { - // the empty assertion set is trivially satifiable. - s.reset(); - // store the model in a do nothin model converter. - model_ref md; - m_ctx->get_model(md); - mc = model2model_converter(md.get()); - return; - } - case l_false: - // formula is unsat, reset the assertion set, and store false there. - s.reset(); - s.assert_expr(m.mk_false(), m_ctx->get_proof()); - return; - case l_undef: - if (m_candidate_models) { - switch (m_ctx->last_failure()) { - case smt::NUM_CONFLICTS: - case smt::THEORY: - case smt::QUANTIFIERS: { - model_ref md; - m_ctx->get_model(md); - mc = model2model_converter(md.get()); - return; - } - default: - break; - } - } - m_failure = m_ctx->last_failure_as_string(); - throw strategy_exception(m_failure.c_str()); - } - } - - virtual void collect_statistics(statistics & st) const { - if (m_ctx) - m_ctx->collect_statistics(st); // ctx is still running... - else - st.copy(m_stats); - } - - virtual void cleanup() { - } - - virtual void reset_statistics() { - m_stats.reset(); - } - - // for backward compatibility - virtual void set_front_end_params(front_end_params & p) { - m_params = alloc(front_end_params, p); - // must propagate the params_ref to fparams - params2front_end_params(m_params_ref, fparams()); - } - - virtual void set_logic(symbol const & l) { - m_logic = l; - } - - virtual void set_progress_callback(progress_callback * callback) { - m_callback = callback; - } -}; - -as_st * mk_smt_solver_core(bool candidate_models) { - return alloc(as_st_solver, candidate_models); -} - -as_st * mk_smt_solver(bool auto_config, bool candidate_models) { - as_st * solver = mk_smt_solver_core(candidate_models); - params_ref solver_p; - solver_p.set_bool(":auto-config", auto_config); - return using_params(solver, solver_p); -}; - /** \brief Execute strategy st on the given assertion set. */ diff --git a/lib/assertion_set_strategy.h b/src/assertion_set/assertion_set_strategy.h similarity index 97% rename from lib/assertion_set_strategy.h rename to src/assertion_set/assertion_set_strategy.h index c1209f6ae..0b02fad49 100644 --- a/lib/assertion_set_strategy.h +++ b/src/assertion_set/assertion_set_strategy.h @@ -167,9 +167,6 @@ as_test * check_as_size(unsigned l); as_test * check_decided(); as_st * cond(as_test * c, as_st * t, as_st * e); -as_st * mk_smt_solver_core(bool candidate_models = false); -as_st * mk_smt_solver(bool auto_config = true, bool candidate_models = false); - void exec(as_st * st, assertion_set & s, model_converter_ref & mc); lbool check_sat(as_st * st, assertion_set & s, model_ref & md, proof_ref & pr, std::string & reason_unknown); @@ -207,8 +204,6 @@ public: #define MK_SIMPLE_ST_FACTORY(NAME, ST) MK_ST_FACTORY(NAME, return ST;) -MK_SIMPLE_ST_FACTORY(smt_solver_stf, mk_smt_solver()); - struct is_qfbv_test : public as_test { virtual bool operator()(assertion_set const & s) const { return is_qfbv(s); } }; diff --git a/lib/assertion_set_util.cpp b/src/assertion_set/assertion_set_util.cpp similarity index 100% rename from lib/assertion_set_util.cpp rename to src/assertion_set/assertion_set_util.cpp diff --git a/lib/assertion_set_util.h b/src/assertion_set/assertion_set_util.h similarity index 100% rename from lib/assertion_set_util.h rename to src/assertion_set/assertion_set_util.h diff --git a/src/assertion_set/der_strategy.cpp b/src/assertion_set/der_strategy.cpp new file mode 100644 index 000000000..ba294f2ee --- /dev/null +++ b/src/assertion_set/der_strategy.cpp @@ -0,0 +1,94 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + der_strategy.cpp + +Abstract: + + DER strategy + +Author: + + Leonardo de Moura (leonardo) 2012-10-20 + +--*/ +#include"der_strategy.h" + +struct der_strategy::imp { + ast_manager & m_manager; + der_rewriter m_r; + + imp(ast_manager & m): + m_manager(m), + m_r(m) { + } + + ast_manager & m() const { return m_manager; } + + void set_cancel(bool f) { + m_r.set_cancel(f); + } + + void reset() { + m_r.reset(); + } + + void operator()(assertion_set & s) { + SASSERT(is_well_sorted(s)); + as_st_report report("der", s); + TRACE("before_der", s.display(tout);); + if (s.inconsistent()) + return; + expr_ref new_curr(m()); + proof_ref new_pr(m()); + unsigned size = s.size(); + for (unsigned idx = 0; idx < size; idx++) { + if (s.inconsistent()) + break; + expr * curr = s.form(idx); + m_r(curr, new_curr, new_pr); + if (m().proofs_enabled()) { + proof * pr = s.pr(idx); + new_pr = m().mk_modus_ponens(pr, new_pr); + } + s.update(idx, new_curr, new_pr); + } + s.elim_redundancies(); + TRACE("after_der", s.display(tout);); + SASSERT(is_well_sorted(s)); + } +}; + +der_strategy::der_strategy(ast_manager & m) { + m_imp = alloc(imp, m); +} + +der_strategy::~der_strategy() { + dealloc(m_imp); +} + +void der_strategy::operator()(assertion_set & s) { + m_imp->operator()(s); +} + +void der_strategy::set_cancel(bool f) { + if (m_imp) + m_imp->set_cancel(f); +} + +void der_strategy::cleanup() { + ast_manager & m = m_imp->m(); + imp * d = m_imp; + #pragma omp critical (as_st_cancel) + { + m_imp = 0; + } + dealloc(d); + d = alloc(imp, m); + #pragma omp critical (as_st_cancel) + { + m_imp = d; + } +} diff --git a/src/assertion_set/der_strategy.h b/src/assertion_set/der_strategy.h new file mode 100644 index 000000000..ace90eb3c --- /dev/null +++ b/src/assertion_set/der_strategy.h @@ -0,0 +1,47 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + der_strategy.h + +Abstract: + + DER strategy + +Author: + + Leonardo de Moura (leonardo) 2012-10-20 + +--*/ +#ifndef _DER_STRATEGY_H_ +#define _DER_STRATEGY_H_ + +#include"der.h" +#include"assertion_set_strategy.h" + +// TODO: delete obsolete class +class der_strategy : public assertion_set_strategy { + struct imp; + imp * m_imp; +public: + der_strategy(ast_manager & m); + virtual ~der_strategy(); + + void operator()(assertion_set & s); + + virtual void operator()(assertion_set & s, model_converter_ref & mc) { + operator()(s); + mc = 0; + } + + virtual void cleanup(); + virtual void set_cancel(bool f); +}; + +inline as_st * mk_der(ast_manager & m) { + return alloc(der_strategy, m); +} + + +#endif diff --git a/lib/elim_distinct.cpp b/src/assertion_set/elim_distinct.cpp similarity index 100% rename from lib/elim_distinct.cpp rename to src/assertion_set/elim_distinct.cpp diff --git a/lib/elim_distinct.h b/src/assertion_set/elim_distinct.h similarity index 100% rename from lib/elim_distinct.h rename to src/assertion_set/elim_distinct.h diff --git a/lib/elim_var_model_converter.cpp b/src/assertion_set/elim_var_model_converter.cpp similarity index 100% rename from lib/elim_var_model_converter.cpp rename to src/assertion_set/elim_var_model_converter.cpp diff --git a/lib/elim_var_model_converter.h b/src/assertion_set/elim_var_model_converter.h similarity index 100% rename from lib/elim_var_model_converter.h rename to src/assertion_set/elim_var_model_converter.h diff --git a/lib/gaussian_elim.cpp b/src/assertion_set/gaussian_elim.cpp similarity index 100% rename from lib/gaussian_elim.cpp rename to src/assertion_set/gaussian_elim.cpp diff --git a/lib/gaussian_elim.h b/src/assertion_set/gaussian_elim.h similarity index 100% rename from lib/gaussian_elim.h rename to src/assertion_set/gaussian_elim.h diff --git a/src/assertion_set/num_occurs_assertion_set.cpp b/src/assertion_set/num_occurs_assertion_set.cpp new file mode 100644 index 000000000..2f35d4b5c --- /dev/null +++ b/src/assertion_set/num_occurs_assertion_set.cpp @@ -0,0 +1,29 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + num_occurs_assertion_set.cpp + +Abstract: + + TODO: delete + +Author: + + Leonardo de Moura (leonardo) 2012-10-20. + +Revision History: + +--*/ +#include"num_occurs_assertion_set.h" +#include"assertion_set.h" + +// TODO delete +void num_occurs_as::operator()(assertion_set const & s) { + expr_fast_mark1 visited; + unsigned sz = s.size(); + for (unsigned i = 0; i < sz; i++) { + process(s.form(i), visited); + } +} diff --git a/src/assertion_set/num_occurs_assertion_set.h b/src/assertion_set/num_occurs_assertion_set.h new file mode 100644 index 000000000..50e8ac4e8 --- /dev/null +++ b/src/assertion_set/num_occurs_assertion_set.h @@ -0,0 +1,38 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + num_occurs_assertion_set.h + +Abstract: + + TODO: delete + +Author: + + Leonardo de Moura (leonardo) 2012-10-20. + +Revision History: + +--*/ +#ifndef _NUM_OCCURS_AS_H_ +#define _NUM_OCCURS_AS_H_ + +#include"num_occurs.h" + +class assertion_set; + +/** + \brief Functor for computing the number of occurrences of each sub-expression in a expression F. +*/ +class num_occurs_as : public num_occurs { +public: + num_occurs_as(bool ignore_ref_count1 = false, bool ignore_quantifiers = false): + num_occurs(ignore_ref_count1, ignore_quantifiers) { + } + + void operator()(assertion_set const & s); // TODO delete +}; + +#endif diff --git a/lib/reduce_args.cpp b/src/assertion_set/reduce_args.cpp similarity index 100% rename from lib/reduce_args.cpp rename to src/assertion_set/reduce_args.cpp diff --git a/lib/reduce_args.h b/src/assertion_set/reduce_args.h similarity index 100% rename from lib/reduce_args.h rename to src/assertion_set/reduce_args.h diff --git a/lib/assertion_set2sat.cpp b/src/assertion_set/sat_strategy/assertion_set2sat.cpp similarity index 90% rename from lib/assertion_set2sat.cpp rename to src/assertion_set/sat_strategy/assertion_set2sat.cpp index 11fc66228..b81c32e51 100644 --- a/lib/assertion_set2sat.cpp +++ b/src/assertion_set/sat_strategy/assertion_set2sat.cpp @@ -715,3 +715,77 @@ void sat2assertion_set::set_cancel(bool f) { m_imp->set_cancel(f); } } + +// HACK introduced during code reorg. +// NOTE: the whole file will be deleted. +struct collect_boolean_interface_proc2 { + struct visitor { + obj_hashtable & m_r; + visitor(obj_hashtable & r):m_r(r) {} + void operator()(var * n) {} + void operator()(app * n) { if (is_uninterp_const(n)) m_r.insert(n); } + void operator()(quantifier * n) {} + }; + + ast_manager & m; + expr_fast_mark2 fvisited; + expr_fast_mark1 tvisited; + ptr_vector todo; + visitor proc; + + collect_boolean_interface_proc2(ast_manager & _m, obj_hashtable & r): + m(_m), + proc(r) { + } + + void process(expr * f) { + if (fvisited.is_marked(f)) + return; + fvisited.mark(f); + todo.push_back(f); + while (!todo.empty()) { + expr * t = todo.back(); + todo.pop_back(); + if (is_uninterp_const(t)) + continue; + if (is_app(t) && to_app(t)->get_family_id() == m.get_basic_family_id() && to_app(t)->get_num_args() > 0) { + decl_kind k = to_app(t)->get_decl_kind(); + if (k == OP_OR || k == OP_NOT || k == OP_IFF || ((k == OP_EQ || k == OP_ITE) && m.is_bool(to_app(t)->get_arg(1)))) { + unsigned num = to_app(t)->get_num_args(); + for (unsigned i = 0; i < num; i++) { + expr * arg = to_app(t)->get_arg(i); + if (fvisited.is_marked(arg)) + continue; + fvisited.mark(arg); + todo.push_back(arg); + } + } + } + else { + quick_for_each_expr(proc, tvisited, t); + } + } + } + + template + void operator()(T const & g) { + unsigned sz = g.size(); + for (unsigned i = 0; i < sz; i++) + process(g.form(i)); + } + + void operator()(unsigned sz, expr * const * fs) { + for (unsigned i = 0; i < sz; i++) + process(fs[i]); + } +}; + +template +void collect_boolean_interface_core2(T const & s, obj_hashtable & r) { + collect_boolean_interface_proc2 proc(s.m(), r); + proc(s); +} + +void collect_boolean_interface(assertion_set const & s, obj_hashtable & r) { + collect_boolean_interface_core2(s, r); +} diff --git a/lib/assertion_set2sat.h b/src/assertion_set/sat_strategy/assertion_set2sat.h similarity index 96% rename from lib/assertion_set2sat.h rename to src/assertion_set/sat_strategy/assertion_set2sat.h index b58f6d647..8f90b1367 100644 --- a/lib/assertion_set2sat.h +++ b/src/assertion_set/sat_strategy/assertion_set2sat.h @@ -35,6 +35,9 @@ Notes: #include"model_converter.h" #include"atom2bool_var.h" +class assertion_set; // TODO: delete +void collect_boolean_interface(assertion_set const & s, obj_hashtable & r); + MK_ST_EXCEPTION(assertion_set2sat_exception); class assertion_set2sat { diff --git a/lib/sat_solver_strategy.cpp b/src/assertion_set/sat_strategy/sat_solver_strategy.cpp similarity index 100% rename from lib/sat_solver_strategy.cpp rename to src/assertion_set/sat_strategy/sat_solver_strategy.cpp diff --git a/lib/sat_solver_strategy.h b/src/assertion_set/sat_strategy/sat_solver_strategy.h similarity index 100% rename from lib/sat_solver_strategy.h rename to src/assertion_set/sat_strategy/sat_solver_strategy.h diff --git a/lib/shallow_context_simplifier.cpp b/src/assertion_set/shallow_context_simplifier.cpp similarity index 100% rename from lib/shallow_context_simplifier.cpp rename to src/assertion_set/shallow_context_simplifier.cpp diff --git a/lib/shallow_context_simplifier.h b/src/assertion_set/shallow_context_simplifier.h similarity index 100% rename from lib/shallow_context_simplifier.h rename to src/assertion_set/shallow_context_simplifier.h diff --git a/lib/st2tactic.cpp b/src/assertion_set/st2tactic.cpp similarity index 100% rename from lib/st2tactic.cpp rename to src/assertion_set/st2tactic.cpp diff --git a/lib/st2tactic.h b/src/assertion_set/st2tactic.h similarity index 100% rename from lib/st2tactic.h rename to src/assertion_set/st2tactic.h diff --git a/lib/strategy_exception.cpp b/src/assertion_set/strategy_exception.cpp similarity index 100% rename from lib/strategy_exception.cpp rename to src/assertion_set/strategy_exception.cpp diff --git a/lib/strategy_exception.h b/src/assertion_set/strategy_exception.h similarity index 100% rename from lib/strategy_exception.h rename to src/assertion_set/strategy_exception.h diff --git a/lib/act_cache.cpp b/src/ast/act_cache.cpp similarity index 100% rename from lib/act_cache.cpp rename to src/ast/act_cache.cpp diff --git a/lib/act_cache.h b/src/ast/act_cache.h similarity index 100% rename from lib/act_cache.h rename to src/ast/act_cache.h diff --git a/lib/arith_decl_plugin.cpp b/src/ast/arith_decl_plugin.cpp similarity index 100% rename from lib/arith_decl_plugin.cpp rename to src/ast/arith_decl_plugin.cpp diff --git a/lib/arith_decl_plugin.h b/src/ast/arith_decl_plugin.h similarity index 100% rename from lib/arith_decl_plugin.h rename to src/ast/arith_decl_plugin.h diff --git a/lib/array_decl_plugin.cpp b/src/ast/array_decl_plugin.cpp similarity index 100% rename from lib/array_decl_plugin.cpp rename to src/ast/array_decl_plugin.cpp diff --git a/lib/array_decl_plugin.h b/src/ast/array_decl_plugin.h similarity index 100% rename from lib/array_decl_plugin.h rename to src/ast/array_decl_plugin.h diff --git a/lib/array_property_expander.cpp b/src/ast/array_property/array_property_expander.cpp similarity index 100% rename from lib/array_property_expander.cpp rename to src/ast/array_property/array_property_expander.cpp diff --git a/lib/array_property_expander.h b/src/ast/array_property/array_property_expander.h similarity index 100% rename from lib/array_property_expander.h rename to src/ast/array_property/array_property_expander.h diff --git a/lib/array_property_recognizer.cpp b/src/ast/array_property/array_property_recognizer.cpp similarity index 100% rename from lib/array_property_recognizer.cpp rename to src/ast/array_property/array_property_recognizer.cpp diff --git a/lib/array_property_recognizer.h b/src/ast/array_property/array_property_recognizer.h similarity index 100% rename from lib/array_property_recognizer.h rename to src/ast/array_property/array_property_recognizer.h diff --git a/lib/ast.cpp b/src/ast/ast.cpp similarity index 98% rename from lib/ast.cpp rename to src/ast/ast.cpp index 8e878165c..856060a52 100644 --- a/lib/ast.cpp +++ b/src/ast/ast.cpp @@ -25,13 +25,6 @@ Revision History: #include"string_buffer.h" #include"ast_util.h" #include"ast_smt2_pp.h" -#include"arith_decl_plugin.h" -#include"array_decl_plugin.h" -#include"bv_decl_plugin.h" -#include"datatype_decl_plugin.h" -#include"dl_decl_plugin.h" -#include"seq_decl_plugin.h" -#include"float_decl_plugin.h" // ----------------------------------- // @@ -1403,30 +1396,6 @@ void ast_manager::register_plugin(symbol const & s, decl_plugin * plugin) { register_plugin(id, plugin); } -void ast_manager::register_decl_plugins() { - if (!get_plugin(get_family_id(symbol("arith")))) { - register_plugin(symbol("arith"), alloc(arith_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("bv")))) { - register_plugin(symbol("bv"), alloc(bv_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("array")))) { - register_plugin(symbol("array"), alloc(array_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("datatype")))) { - register_plugin(symbol("datatype"), alloc(datatype_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("datalog_relation")))) { - register_plugin(symbol("datalog_relation"), alloc(datalog::dl_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("seq")))) { - register_plugin(symbol("seq"), alloc(seq_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("float")))) { - register_plugin(symbol("float"), alloc(float_decl_plugin)); - } -} - decl_plugin * ast_manager::get_plugin(family_id fid) const { return m_plugins.get(fid, 0); } diff --git a/lib/ast.h b/src/ast/ast.h similarity index 99% rename from lib/ast.h rename to src/ast/ast.h index 8de390ee0..17b4d2dac 100644 --- a/lib/ast.h +++ b/src/ast/ast.h @@ -1283,8 +1283,6 @@ enum proof_gen_mode { // // ----------------------------------- -class arith_decl_plugin; - class ast_manager { protected: protected: @@ -1411,8 +1409,6 @@ public: void register_plugin(family_id id, decl_plugin * plugin); - void register_decl_plugins(); - decl_plugin * get_plugin(family_id fid) const; bool has_plugin(family_id fid) const { return get_plugin(fid) != 0; } diff --git a/lib/ast_dag_pp.cpp b/src/ast/ast_dag_pp.cpp similarity index 100% rename from lib/ast_dag_pp.cpp rename to src/ast/ast_dag_pp.cpp diff --git a/lib/ast_dag_pp.h b/src/ast/ast_dag_pp.h similarity index 100% rename from lib/ast_dag_pp.h rename to src/ast/ast_dag_pp.h diff --git a/lib/ast_list.h b/src/ast/ast_list.h similarity index 100% rename from lib/ast_list.h rename to src/ast/ast_list.h diff --git a/lib/ast_ll_pp.cpp b/src/ast/ast_ll_pp.cpp similarity index 100% rename from lib/ast_ll_pp.cpp rename to src/ast/ast_ll_pp.cpp diff --git a/lib/ast_ll_pp.h b/src/ast/ast_ll_pp.h similarity index 100% rename from lib/ast_ll_pp.h rename to src/ast/ast_ll_pp.h diff --git a/lib/ast_lt.cpp b/src/ast/ast_lt.cpp similarity index 100% rename from lib/ast_lt.cpp rename to src/ast/ast_lt.cpp diff --git a/lib/ast_lt.h b/src/ast/ast_lt.h similarity index 100% rename from lib/ast_lt.h rename to src/ast/ast_lt.h diff --git a/lib/ast_pp.cpp b/src/ast/ast_pp.cpp similarity index 100% rename from lib/ast_pp.cpp rename to src/ast/ast_pp.cpp diff --git a/lib/ast_pp.h b/src/ast/ast_pp.h similarity index 100% rename from lib/ast_pp.h rename to src/ast/ast_pp.h diff --git a/src/ast/ast_printer.cpp b/src/ast/ast_printer.cpp new file mode 100644 index 000000000..015075d9b --- /dev/null +++ b/src/ast/ast_printer.cpp @@ -0,0 +1,52 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + ast_printer.cpp + +Abstract: + + Abstract AST printer + +Author: + + Leonardo de Moura (leonardo) 2012-10-21 + +Revision History: + +--*/ +#include"ast_printer.h" +#include"pp.h" + +class simple_ast_printer_context : public ast_printer_context { + ast_manager & m_manager; + smt2_pp_environment_dbg m_env; +public: + simple_ast_printer_context(ast_manager & m):m_manager(m), m_env(m) {} + virtual ~simple_ast_printer_context() {} + ast_manager & m() const { return m_manager; } + virtual ast_manager & get_ast_manager() { return m_manager; } + virtual void display(std::ostream & out, sort * s, unsigned indent = 0) { out << mk_ismt2_pp(s, m(), indent); } + virtual void display(std::ostream & out, expr * n, unsigned indent = 0) { out << mk_ismt2_pp(n, m(), indent); } + virtual void display(std::ostream & out, func_decl * f, unsigned indent = 0) const { + out << f->get_name(); + } + virtual void pp(sort * s, format_ns::format_ref & r) { mk_smt2_format(s, m_env, get_pp_default_params(), r); } + virtual void pp(func_decl * f, format_ns::format_ref & r) { mk_smt2_format(f, m_env, get_pp_default_params(), r); } + virtual void pp(expr * n, format_ns::format_ref & r) { + sbuffer buf; + mk_smt2_format(n, m_env, get_pp_default_params(), 0, 0, r, buf); + } + virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) { + mk_smt2_format(n, m_env, get_pp_default_params(), num_vars, var_prefix, r, var_names); + } + virtual void display(std::ostream & out, expr * n, unsigned indent, unsigned num_vars, char const * var_prefix, sbuffer & var_names) const { + NOT_IMPLEMENTED_YET(); + } + +}; + +ast_printer_context * mk_simple_ast_printer_context(ast_manager & m) { + return alloc(simple_ast_printer_context, m); +} diff --git a/src/ast/ast_printer.h b/src/ast/ast_printer.h new file mode 100644 index 000000000..3566c62bb --- /dev/null +++ b/src/ast/ast_printer.h @@ -0,0 +1,57 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + ast_printer.h + +Abstract: + + Abstract AST printer + +Author: + + Leonardo de Moura (leonardo) 2012-10-21 + +Revision History: + +--*/ +#ifndef _AST_PRINTER_H_ +#define _AST_PRINTER_H_ + +#include"ast.h" +#include"ast_smt2_pp.h" + +class ast_printer { +public: + virtual ~ast_printer() {} + virtual void pp(sort * s, format_ns::format_ref & r) const { UNREACHABLE(); } + virtual void pp(func_decl * f, format_ns::format_ref & r) const { UNREACHABLE(); } + virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) const { UNREACHABLE(); } + virtual void pp(expr * n, format_ns::format_ref & r) const { UNREACHABLE(); } + virtual void display(std::ostream & out, sort * s, unsigned indent = 0) const { + out << "#" << s->get_id() << "\n"; + } + virtual void display(std::ostream & out, expr * n, unsigned indent, unsigned num_vars, char const * var_prefix, sbuffer & var_names) const { + out << "#" << n->get_id() << "\n"; + } + virtual void display(std::ostream & out, expr * n, unsigned indent = 0) const { + out << "#" << n->get_id() << "\n"; + } + virtual void display(std::ostream & out, func_decl * f, unsigned indent = 0) const { + out << "#" << f->get_id() << "\n"; + } +}; + +class ast_printer_context : public ast_printer { +public: + virtual ~ast_printer_context() {} + virtual ast_manager & get_ast_manager() = 0; + virtual std::ostream & regular_stream() { return std::cout; } + virtual std::ostream & diagnostic_stream() { return std::cerr; } +}; + + +ast_printer_context * mk_simple_ast_printer_context(ast_manager & m); + +#endif diff --git a/lib/ast_smt2_pp.cpp b/src/ast/ast_smt2_pp.cpp similarity index 96% rename from lib/ast_smt2_pp.cpp rename to src/ast/ast_smt2_pp.cpp index c4044d0d4..dcc7a1a0d 100644 --- a/lib/ast_smt2_pp.cpp +++ b/src/ast/ast_smt2_pp.cpp @@ -30,49 +30,6 @@ using namespace format_ns; #define MAX_INDENT 16 #define SMALL_INDENT 2 -bool is_smt2_simple_symbol_char(char s) { - return - ('0' <= s && s <= '9') || - ('a' <= s && s <= 'z') || - ('A' <= s && s <= 'Z') || - s == '~' || s == '!' || s == '@' || s == '$' || s == '%' || s == '^' || s == '&' || - s == '*' || s == '_' || s == '-' || s == '+' || s == '=' || s == '<' || s == '>' || - s == '.' || s == '?' || s == '/'; -} - -bool is_smt2_quoted_symbol(char const * s) { - if (s == 0) - return false; - if ('0' <= s[0] && s[0] <= '9') - return true; - unsigned len = static_cast(strlen(s)); - for (unsigned i = 0; i < len; i++) - if (!is_smt2_simple_symbol_char(s[i])) - return true; - return false; -} - -bool is_smt2_quoted_symbol(symbol const & s) { - if (s.is_numerical()) - return false; - return is_smt2_quoted_symbol(s.bare_str()); -} - -std::string mk_smt2_quoted_symbol(symbol const & s) { - SASSERT(is_smt2_quoted_symbol(s)); - string_buffer<> buffer; - buffer.append('|'); - char const * str = s.bare_str(); - while (*str) { - if (*str == '|' || *str == '\\') - buffer.append('\\'); - buffer.append(*str); - str++; - } - buffer.append('|'); - return std::string(buffer.c_str()); -} - format * smt2_pp_environment::pp_fdecl_name(symbol const & s, unsigned & len) const { ast_manager & m = get_manager(); if (is_smt2_quoted_symbol(s)) { diff --git a/lib/ast_smt2_pp.h b/src/ast/ast_smt2_pp.h similarity index 96% rename from lib/ast_smt2_pp.h rename to src/ast/ast_smt2_pp.h index a3550323a..048dd8d67 100644 --- a/lib/ast_smt2_pp.h +++ b/src/ast/ast_smt2_pp.h @@ -29,11 +29,7 @@ Revision History: #include"array_decl_plugin.h" #include"float_decl_plugin.h" #include"dl_decl_plugin.h" - -bool is_smt2_simple_symbol_char(char c); -bool is_smt2_quoted_symbol(char const * s); -bool is_smt2_quoted_symbol(symbol const & s); -std::string mk_smt2_quoted_symbol(symbol const & s); +#include"smt2_util.h" class smt2_pp_environment { protected: diff --git a/lib/ast_smt_pp.cpp b/src/ast/ast_smt_pp.cpp similarity index 100% rename from lib/ast_smt_pp.cpp rename to src/ast/ast_smt_pp.cpp diff --git a/lib/ast_smt_pp.h b/src/ast/ast_smt_pp.h similarity index 100% rename from lib/ast_smt_pp.h rename to src/ast/ast_smt_pp.h diff --git a/lib/ast_translation.cpp b/src/ast/ast_translation.cpp similarity index 100% rename from lib/ast_translation.cpp rename to src/ast/ast_translation.cpp diff --git a/lib/ast_translation.h b/src/ast/ast_translation.h similarity index 100% rename from lib/ast_translation.h rename to src/ast/ast_translation.h diff --git a/lib/ast_util.cpp b/src/ast/ast_util.cpp similarity index 100% rename from lib/ast_util.cpp rename to src/ast/ast_util.cpp diff --git a/lib/ast_util.h b/src/ast/ast_util.h similarity index 100% rename from lib/ast_util.h rename to src/ast/ast_util.h diff --git a/lib/bv_decl_plugin.cpp b/src/ast/bv_decl_plugin.cpp similarity index 100% rename from lib/bv_decl_plugin.cpp rename to src/ast/bv_decl_plugin.cpp diff --git a/lib/bv_decl_plugin.h b/src/ast/bv_decl_plugin.h similarity index 100% rename from lib/bv_decl_plugin.h rename to src/ast/bv_decl_plugin.h diff --git a/lib/datatype_decl_plugin.cpp b/src/ast/datatype_decl_plugin.cpp similarity index 100% rename from lib/datatype_decl_plugin.cpp rename to src/ast/datatype_decl_plugin.cpp diff --git a/lib/datatype_decl_plugin.h b/src/ast/datatype_decl_plugin.h similarity index 100% rename from lib/datatype_decl_plugin.h rename to src/ast/datatype_decl_plugin.h diff --git a/lib/decl_collector.cpp b/src/ast/decl_collector.cpp similarity index 100% rename from lib/decl_collector.cpp rename to src/ast/decl_collector.cpp diff --git a/lib/decl_collector.h b/src/ast/decl_collector.h similarity index 100% rename from lib/decl_collector.h rename to src/ast/decl_collector.h diff --git a/lib/dl_decl_plugin.cpp b/src/ast/dl_decl_plugin.cpp similarity index 99% rename from lib/dl_decl_plugin.cpp rename to src/ast/dl_decl_plugin.cpp index db1fbd1dc..76f34f316 100644 --- a/lib/dl_decl_plugin.cpp +++ b/src/ast/dl_decl_plugin.cpp @@ -23,6 +23,7 @@ Revision History: #include "datatype_decl_plugin.h" #include "dl_decl_plugin.h" #include "warning.h" +#include "reg_decl_plugins.h" namespace datalog { @@ -621,7 +622,7 @@ namespace datalog { dl_decl_util::ast_plugin_registrator::ast_plugin_registrator(ast_manager& m) { // ensure required plugins are installed into the ast_manager - m.register_decl_plugins(); + reg_decl_plugins(m); } dl_decl_util::dl_decl_util(ast_manager& m): diff --git a/lib/dl_decl_plugin.h b/src/ast/dl_decl_plugin.h similarity index 100% rename from lib/dl_decl_plugin.h rename to src/ast/dl_decl_plugin.h diff --git a/lib/expr2dot.cpp b/src/ast/expr2dot.cpp similarity index 100% rename from lib/expr2dot.cpp rename to src/ast/expr2dot.cpp diff --git a/lib/expr2dot.h b/src/ast/expr2dot.h similarity index 100% rename from lib/expr2dot.h rename to src/ast/expr2dot.h diff --git a/lib/expr2polynomial.cpp b/src/ast/expr2polynomial.cpp similarity index 100% rename from lib/expr2polynomial.cpp rename to src/ast/expr2polynomial.cpp diff --git a/lib/expr2polynomial.h b/src/ast/expr2polynomial.h similarity index 100% rename from lib/expr2polynomial.h rename to src/ast/expr2polynomial.h diff --git a/lib/expr2var.cpp b/src/ast/expr2var.cpp similarity index 100% rename from lib/expr2var.cpp rename to src/ast/expr2var.cpp diff --git a/lib/expr2var.h b/src/ast/expr2var.h similarity index 100% rename from lib/expr2var.h rename to src/ast/expr2var.h diff --git a/lib/expr_abstract.cpp b/src/ast/expr_abstract.cpp similarity index 100% rename from lib/expr_abstract.cpp rename to src/ast/expr_abstract.cpp diff --git a/lib/expr_abstract.h b/src/ast/expr_abstract.h similarity index 100% rename from lib/expr_abstract.h rename to src/ast/expr_abstract.h diff --git a/lib/expr_delta_pair.h b/src/ast/expr_delta_pair.h similarity index 100% rename from lib/expr_delta_pair.h rename to src/ast/expr_delta_pair.h diff --git a/lib/expr_functors.cpp b/src/ast/expr_functors.cpp similarity index 100% rename from lib/expr_functors.cpp rename to src/ast/expr_functors.cpp diff --git a/lib/expr_functors.h b/src/ast/expr_functors.h similarity index 100% rename from lib/expr_functors.h rename to src/ast/expr_functors.h diff --git a/lib/expr_map.cpp b/src/ast/expr_map.cpp similarity index 100% rename from lib/expr_map.cpp rename to src/ast/expr_map.cpp diff --git a/lib/expr_map.h b/src/ast/expr_map.h similarity index 100% rename from lib/expr_map.h rename to src/ast/expr_map.h diff --git a/lib/expr_stat.cpp b/src/ast/expr_stat.cpp similarity index 100% rename from lib/expr_stat.cpp rename to src/ast/expr_stat.cpp diff --git a/lib/expr_stat.h b/src/ast/expr_stat.h similarity index 100% rename from lib/expr_stat.h rename to src/ast/expr_stat.h diff --git a/lib/expr_substitution.cpp b/src/ast/expr_substitution.cpp similarity index 100% rename from lib/expr_substitution.cpp rename to src/ast/expr_substitution.cpp diff --git a/lib/expr_substitution.h b/src/ast/expr_substitution.h similarity index 100% rename from lib/expr_substitution.h rename to src/ast/expr_substitution.h diff --git a/lib/float_decl_plugin.cpp b/src/ast/float_decl_plugin.cpp similarity index 100% rename from lib/float_decl_plugin.cpp rename to src/ast/float_decl_plugin.cpp diff --git a/lib/float_decl_plugin.h b/src/ast/float_decl_plugin.h similarity index 100% rename from lib/float_decl_plugin.h rename to src/ast/float_decl_plugin.h diff --git a/lib/for_each_ast.cpp b/src/ast/for_each_ast.cpp similarity index 100% rename from lib/for_each_ast.cpp rename to src/ast/for_each_ast.cpp diff --git a/lib/for_each_ast.h b/src/ast/for_each_ast.h similarity index 100% rename from lib/for_each_ast.h rename to src/ast/for_each_ast.h diff --git a/lib/for_each_expr.cpp b/src/ast/for_each_expr.cpp similarity index 100% rename from lib/for_each_expr.cpp rename to src/ast/for_each_expr.cpp diff --git a/lib/for_each_expr.h b/src/ast/for_each_expr.h similarity index 100% rename from lib/for_each_expr.h rename to src/ast/for_each_expr.h diff --git a/lib/format.cpp b/src/ast/format.cpp similarity index 100% rename from lib/format.cpp rename to src/ast/format.cpp diff --git a/lib/format.h b/src/ast/format.h similarity index 100% rename from lib/format.h rename to src/ast/format.h diff --git a/lib/func_decl_dependencies.cpp b/src/ast/func_decl_dependencies.cpp similarity index 100% rename from lib/func_decl_dependencies.cpp rename to src/ast/func_decl_dependencies.cpp diff --git a/lib/func_decl_dependencies.h b/src/ast/func_decl_dependencies.h similarity index 100% rename from lib/func_decl_dependencies.h rename to src/ast/func_decl_dependencies.h diff --git a/lib/has_free_vars.cpp b/src/ast/has_free_vars.cpp similarity index 100% rename from lib/has_free_vars.cpp rename to src/ast/has_free_vars.cpp diff --git a/lib/has_free_vars.h b/src/ast/has_free_vars.h similarity index 100% rename from lib/has_free_vars.h rename to src/ast/has_free_vars.h diff --git a/lib/macro_finder.cpp b/src/ast/macros/macro_finder.cpp similarity index 100% rename from lib/macro_finder.cpp rename to src/ast/macros/macro_finder.cpp diff --git a/lib/macro_finder.h b/src/ast/macros/macro_finder.h similarity index 100% rename from lib/macro_finder.h rename to src/ast/macros/macro_finder.h diff --git a/lib/macro_manager.cpp b/src/ast/macros/macro_manager.cpp similarity index 100% rename from lib/macro_manager.cpp rename to src/ast/macros/macro_manager.cpp diff --git a/lib/macro_manager.h b/src/ast/macros/macro_manager.h similarity index 100% rename from lib/macro_manager.h rename to src/ast/macros/macro_manager.h diff --git a/lib/macro_substitution.cpp b/src/ast/macros/macro_substitution.cpp similarity index 100% rename from lib/macro_substitution.cpp rename to src/ast/macros/macro_substitution.cpp diff --git a/lib/macro_substitution.h b/src/ast/macros/macro_substitution.h similarity index 100% rename from lib/macro_substitution.h rename to src/ast/macros/macro_substitution.h diff --git a/lib/macro_util.cpp b/src/ast/macros/macro_util.cpp similarity index 100% rename from lib/macro_util.cpp rename to src/ast/macros/macro_util.cpp diff --git a/lib/macro_util.h b/src/ast/macros/macro_util.h similarity index 100% rename from lib/macro_util.h rename to src/ast/macros/macro_util.h diff --git a/lib/quasi_macros.cpp b/src/ast/macros/quasi_macros.cpp similarity index 100% rename from lib/quasi_macros.cpp rename to src/ast/macros/quasi_macros.cpp diff --git a/lib/quasi_macros.h b/src/ast/macros/quasi_macros.h similarity index 100% rename from lib/quasi_macros.h rename to src/ast/macros/quasi_macros.h diff --git a/lib/num_occurs.cpp b/src/ast/num_occurs.cpp similarity index 82% rename from lib/num_occurs.cpp rename to src/ast/num_occurs.cpp index ee4b76258..c5d50475e 100644 --- a/lib/num_occurs.cpp +++ b/src/ast/num_occurs.cpp @@ -18,8 +18,6 @@ Revision History: --*/ #include"num_occurs.h" -#include"assertion_set.h" -#include"goal.h" void num_occurs::process(expr * t, expr_fast_mark1 & visited) { ptr_buffer stack; @@ -74,19 +72,3 @@ void num_occurs::operator()(unsigned num, expr * const * ts) { } } -// TODO delete -void num_occurs::operator()(assertion_set const & s) { - expr_fast_mark1 visited; - unsigned sz = s.size(); - for (unsigned i = 0; i < sz; i++) { - process(s.form(i), visited); - } -} - -void num_occurs::operator()(goal const & g) { - expr_fast_mark1 visited; - unsigned sz = g.size(); - for (unsigned i = 0; i < sz; i++) { - process(g.form(i), visited); - } -} diff --git a/lib/num_occurs.h b/src/ast/num_occurs.h similarity index 88% rename from lib/num_occurs.h rename to src/ast/num_occurs.h index 01d160ac5..ecd77e356 100644 --- a/lib/num_occurs.h +++ b/src/ast/num_occurs.h @@ -22,13 +22,11 @@ Revision History: #include"ast.h" #include"obj_hashtable.h" -class assertion_set; // TODO delete -class goal; - /** \brief Functor for computing the number of occurrences of each sub-expression in a expression F. */ class num_occurs { +protected: bool m_ignore_ref_count1; bool m_ignore_quantifiers; obj_map m_num_occurs; @@ -44,8 +42,6 @@ public: void operator()(expr * t); void operator()(unsigned num, expr * const * ts); - void operator()(assertion_set const & s); // TODO delete - void operator()(goal const & s); unsigned get_num_occs(expr * n) const { unsigned val; diff --git a/lib/occurs.cpp b/src/ast/occurs.cpp similarity index 100% rename from lib/occurs.cpp rename to src/ast/occurs.cpp diff --git a/lib/occurs.h b/src/ast/occurs.h similarity index 100% rename from lib/occurs.h rename to src/ast/occurs.h diff --git a/lib/pattern_inference.cpp b/src/ast/pattern/pattern_inference.cpp similarity index 99% rename from lib/pattern_inference.cpp rename to src/ast/pattern/pattern_inference.cpp index 07e649905..79cf41a71 100644 --- a/lib/pattern_inference.cpp +++ b/src/ast/pattern/pattern_inference.cpp @@ -87,7 +87,7 @@ bool smaller_pattern::operator()(unsigned num_bindings, expr * p1, expr * p2) { return process(p1, p2); } -pattern_inference::pattern_inference(ast_manager & m, pattern_inference_params & params): +pattern_inference::pattern_inference(ast_manager & m, pattern_inference_params & params, pattern_database * db): simplifier(m), m_params(params), m_bfid(m.get_basic_family_id()), @@ -99,7 +99,7 @@ pattern_inference::pattern_inference(ast_manager & m, pattern_inference_params & m_pattern_weight_lt(m_candidates_info), m_collect(m, *this), m_contains_subpattern(*this), - m_database(m) { + m_database(db) { if (params.m_pi_arith == AP_NO) register_forbidden_family(m_afid); enable_ac_support(false); @@ -574,8 +574,6 @@ void pattern_inference::mk_patterns(unsigned num_bindings, m_candidates.reset(); } -#include"database.h" // defines g_pattern_database - void pattern_inference::reduce1_quantifier(quantifier * q) { TRACE("pattern_inference", tout << "processing:\n" << mk_pp(q, m_manager) << "\n";); if (!q->is_forall()) { @@ -585,11 +583,10 @@ void pattern_inference::reduce1_quantifier(quantifier * q) { int weight = q->get_weight(); - if (m_params.m_pi_use_database) { - m_database.initialize(g_pattern_database); + if (m_database) { app_ref_vector new_patterns(m_manager); unsigned new_weight; - if (m_database.match_quantifier(q, new_patterns, new_weight)) { + if (m_database->match_quantifier(q, new_patterns, new_weight)) { #ifdef Z3DEBUG for (unsigned i = 0; i < new_patterns.size(); i++) { SASSERT(is_well_sorted(m_manager, new_patterns.get(i))); } #endif diff --git a/lib/pattern_inference.h b/src/ast/pattern/pattern_inference.h similarity index 95% rename from lib/pattern_inference.h rename to src/ast/pattern/pattern_inference.h index 057a74f76..c477b0228 100644 --- a/lib/pattern_inference.h +++ b/src/ast/pattern/pattern_inference.h @@ -28,7 +28,13 @@ Revision History: #include"obj_hashtable.h" #include"obj_pair_hashtable.h" #include"map.h" -#include"expr_pattern_match.h" + +class pattern_database { +public: + virtual ~pattern_database() {} + virtual void initialize(char const * smt_patterns) = 0; + virtual bool match_quantifier(quantifier * qf, app_ref_vector & patterns, unsigned & weight) = 0; +}; /** \brief A pattern p_1 is smaller than a pattern p_2 iff @@ -188,8 +194,8 @@ class pattern_inference : public simplifier { } }; - ptr_vector m_pre_patterns; - expr_pattern_match m_database; + ptr_vector m_pre_patterns; + pattern_database * m_database; void candidates2unary_patterns(ptr_vector const & candidate_patterns, ptr_vector & remaining_candidate_patterns, @@ -217,7 +223,7 @@ class pattern_inference : public simplifier { virtual void reduce1_quantifier(quantifier * q); public: - pattern_inference(ast_manager & m, pattern_inference_params & params); + pattern_inference(ast_manager & m, pattern_inference_params & params, pattern_database * db); void register_forbidden_family(family_id fid) { SASSERT(fid != m_bfid); diff --git a/lib/pp.cpp b/src/ast/pp.cpp similarity index 100% rename from lib/pp.cpp rename to src/ast/pp.cpp diff --git a/lib/pp.h b/src/ast/pp.h similarity index 100% rename from lib/pp.h rename to src/ast/pp.h diff --git a/lib/pp_params.cpp b/src/ast/pp_params.cpp similarity index 100% rename from lib/pp_params.cpp rename to src/ast/pp_params.cpp diff --git a/lib/pp_params.h b/src/ast/pp_params.h similarity index 100% rename from lib/pp_params.h rename to src/ast/pp_params.h diff --git a/lib/proof_checker.cpp b/src/ast/proof_checker/proof_checker.cpp similarity index 100% rename from lib/proof_checker.cpp rename to src/ast/proof_checker/proof_checker.cpp diff --git a/lib/proof_checker.h b/src/ast/proof_checker/proof_checker.h similarity index 100% rename from lib/proof_checker.h rename to src/ast/proof_checker/proof_checker.h diff --git a/lib/recurse_expr.h b/src/ast/recurse_expr.h similarity index 100% rename from lib/recurse_expr.h rename to src/ast/recurse_expr.h diff --git a/lib/recurse_expr_def.h b/src/ast/recurse_expr_def.h similarity index 100% rename from lib/recurse_expr_def.h rename to src/ast/recurse_expr_def.h diff --git a/src/ast/reg_decl_plugins.cpp b/src/ast/reg_decl_plugins.cpp new file mode 100644 index 000000000..fd4d49789 --- /dev/null +++ b/src/ast/reg_decl_plugins.cpp @@ -0,0 +1,51 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + reg_decl_plugins + +Abstract: + + Goodie for installing all available declarations + plugins in an ast_manager + +Author: + + Leonardo de Moura (leonardo) 2012-10-24. + +Revision History: + +--*/ +#include"ast.h" +#include"arith_decl_plugin.h" +#include"array_decl_plugin.h" +#include"bv_decl_plugin.h" +#include"datatype_decl_plugin.h" +#include"dl_decl_plugin.h" +#include"seq_decl_plugin.h" +#include"float_decl_plugin.h" + +void reg_decl_plugins(ast_manager & m) { + if (!m.get_plugin(m.get_family_id(symbol("arith")))) { + m.register_plugin(symbol("arith"), alloc(arith_decl_plugin)); + } + if (!m.get_plugin(m.get_family_id(symbol("bv")))) { + m.register_plugin(symbol("bv"), alloc(bv_decl_plugin)); + } + if (!m.get_plugin(m.get_family_id(symbol("array")))) { + m.register_plugin(symbol("array"), alloc(array_decl_plugin)); + } + if (!m.get_plugin(m.get_family_id(symbol("datatype")))) { + m.register_plugin(symbol("datatype"), alloc(datatype_decl_plugin)); + } + if (!m.get_plugin(m.get_family_id(symbol("datalog_relation")))) { + m.register_plugin(symbol("datalog_relation"), alloc(datalog::dl_decl_plugin)); + } + if (!m.get_plugin(m.get_family_id(symbol("seq")))) { + m.register_plugin(symbol("seq"), alloc(seq_decl_plugin)); + } + if (!m.get_plugin(m.get_family_id(symbol("float")))) { + m.register_plugin(symbol("float"), alloc(float_decl_plugin)); + } +} diff --git a/src/ast/reg_decl_plugins.h b/src/ast/reg_decl_plugins.h new file mode 100644 index 000000000..57185181e --- /dev/null +++ b/src/ast/reg_decl_plugins.h @@ -0,0 +1,27 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + reg_decl_plugins + +Abstract: + + Goodie for installing all available declarations + plugins in an ast_manager + +Author: + + Leonardo de Moura (leonardo) 2012-10-24. + +Revision History: + +--*/ +#ifndef _REG_DECL_PLUGINS_H_ +#define _REG_DECL_PLUGINS_H_ + +class ast_manager; + +void reg_decl_plugins(ast_manager & m); + +#endif diff --git a/lib/arith_rewriter.cpp b/src/ast/rewriter/arith_rewriter.cpp similarity index 100% rename from lib/arith_rewriter.cpp rename to src/ast/rewriter/arith_rewriter.cpp diff --git a/lib/arith_rewriter.h b/src/ast/rewriter/arith_rewriter.h similarity index 100% rename from lib/arith_rewriter.h rename to src/ast/rewriter/arith_rewriter.h diff --git a/lib/array_rewriter.cpp b/src/ast/rewriter/array_rewriter.cpp similarity index 100% rename from lib/array_rewriter.cpp rename to src/ast/rewriter/array_rewriter.cpp diff --git a/lib/array_rewriter.h b/src/ast/rewriter/array_rewriter.h similarity index 100% rename from lib/array_rewriter.h rename to src/ast/rewriter/array_rewriter.h diff --git a/lib/bool_rewriter.cpp b/src/ast/rewriter/bool_rewriter.cpp similarity index 100% rename from lib/bool_rewriter.cpp rename to src/ast/rewriter/bool_rewriter.cpp diff --git a/lib/bool_rewriter.h b/src/ast/rewriter/bool_rewriter.h similarity index 100% rename from lib/bool_rewriter.h rename to src/ast/rewriter/bool_rewriter.h diff --git a/lib/bv_rewriter.cpp b/src/ast/rewriter/bv_rewriter.cpp similarity index 100% rename from lib/bv_rewriter.cpp rename to src/ast/rewriter/bv_rewriter.cpp diff --git a/lib/bv_rewriter.h b/src/ast/rewriter/bv_rewriter.h similarity index 100% rename from lib/bv_rewriter.h rename to src/ast/rewriter/bv_rewriter.h diff --git a/lib/datatype_rewriter.cpp b/src/ast/rewriter/datatype_rewriter.cpp similarity index 100% rename from lib/datatype_rewriter.cpp rename to src/ast/rewriter/datatype_rewriter.cpp diff --git a/lib/datatype_rewriter.h b/src/ast/rewriter/datatype_rewriter.h similarity index 100% rename from lib/datatype_rewriter.h rename to src/ast/rewriter/datatype_rewriter.h diff --git a/lib/der.cpp b/src/ast/rewriter/der.cpp similarity index 77% rename from lib/der.cpp rename to src/ast/rewriter/der.cpp index 6df1a0105..4a4f438a7 100644 --- a/lib/der.cpp +++ b/src/ast/rewriter/der.cpp @@ -25,7 +25,6 @@ Revision History: #include"ast_pp.h" #include"ast_ll_pp.h" #include"ast_smt2_pp.h" -#include"tactical.h" static bool is_var(expr * e, unsigned num_decls) { return is_var(e) && to_var(e)->get_idx() < num_decls; @@ -465,175 +464,4 @@ void der_rewriter::reset() { m_imp->reset(); } -struct der_strategy::imp { - ast_manager & m_manager; - der_rewriter m_r; - imp(ast_manager & m): - m_manager(m), - m_r(m) { - } - - ast_manager & m() const { return m_manager; } - - void set_cancel(bool f) { - m_r.set_cancel(f); - } - - void reset() { - m_r.reset(); - } - - void operator()(assertion_set & s) { - SASSERT(is_well_sorted(s)); - as_st_report report("der", s); - TRACE("before_der", s.display(tout);); - if (s.inconsistent()) - return; - expr_ref new_curr(m()); - proof_ref new_pr(m()); - unsigned size = s.size(); - for (unsigned idx = 0; idx < size; idx++) { - if (s.inconsistent()) - break; - expr * curr = s.form(idx); - m_r(curr, new_curr, new_pr); - if (m().proofs_enabled()) { - proof * pr = s.pr(idx); - new_pr = m().mk_modus_ponens(pr, new_pr); - } - s.update(idx, new_curr, new_pr); - } - s.elim_redundancies(); - TRACE("after_der", s.display(tout);); - SASSERT(is_well_sorted(s)); - } -}; - -der_strategy::der_strategy(ast_manager & m) { - m_imp = alloc(imp, m); -} - -der_strategy::~der_strategy() { - dealloc(m_imp); -} - -void der_strategy::operator()(assertion_set & s) { - m_imp->operator()(s); -} - -void der_strategy::set_cancel(bool f) { - if (m_imp) - m_imp->set_cancel(f); -} - -void der_strategy::cleanup() { - ast_manager & m = m_imp->m(); - imp * d = m_imp; - #pragma omp critical (as_st_cancel) - { - m_imp = 0; - } - dealloc(d); - d = alloc(imp, m); - #pragma omp critical (as_st_cancel) - { - m_imp = d; - } -} - -class der_tactic : public tactic { - struct imp { - ast_manager & m_manager; - der_rewriter m_r; - - imp(ast_manager & m): - m_manager(m), - m_r(m) { - } - - ast_manager & m() const { return m_manager; } - - void set_cancel(bool f) { - m_r.set_cancel(f); - } - - void reset() { - m_r.reset(); - } - - void operator()(goal & g) { - SASSERT(g.is_well_sorted()); - bool proofs_enabled = g.proofs_enabled(); - tactic_report report("der", g); - TRACE("before_der", g.display(tout);); - expr_ref new_curr(m()); - proof_ref new_pr(m()); - unsigned size = g.size(); - for (unsigned idx = 0; idx < size; idx++) { - if (g.inconsistent()) - break; - expr * curr = g.form(idx); - m_r(curr, new_curr, new_pr); - if (proofs_enabled) { - proof * pr = g.pr(idx); - new_pr = m().mk_modus_ponens(pr, new_pr); - } - g.update(idx, new_curr, new_pr, g.dep(idx)); - } - g.elim_redundancies(); - TRACE("after_der", g.display(tout);); - SASSERT(g.is_well_sorted()); - } - }; - - imp * m_imp; - -public: - der_tactic(ast_manager & m) { - m_imp = alloc(imp, m); - } - - virtual tactic * translate(ast_manager & m) { - return alloc(der_tactic, m); - } - - virtual ~der_tactic() { - dealloc(m_imp); - } - - virtual void operator()(goal_ref const & in, - goal_ref_buffer & result, - model_converter_ref & mc, - proof_converter_ref & pc, - expr_dependency_ref & core) { - mc = 0; pc = 0; core = 0; - (*m_imp)(*(in.get())); - in->inc_depth(); - result.push_back(in.get()); - } - - virtual void cleanup() { - ast_manager & m = m_imp->m(); - imp * d = m_imp; - #pragma omp critical (tactic_cancel) - { - m_imp = 0; - } - dealloc(d); - d = alloc(imp, m); - #pragma omp critical (tactic_cancel) - { - m_imp = d; - } - } - - virtual void set_cancel(bool f) { - if (m_imp) - m_imp->set_cancel(f); - } -}; - -tactic * mk_der_tactic(ast_manager & m) { - return alloc(der_tactic, m); -} diff --git a/lib/der.h b/src/ast/rewriter/der.h similarity index 91% rename from lib/der.h rename to src/ast/rewriter/der.h index 69f294fd4..a0be33c5c 100644 --- a/lib/der.h +++ b/src/ast/rewriter/der.h @@ -23,7 +23,6 @@ Revision History: #include"ast.h" #include"var_subst.h" -#include"assertion_set_strategy.h" /* New DER: the class DER (above) eliminates variables one by one. @@ -184,32 +183,5 @@ public: typedef der_rewriter der_star; -// TODO: delete obsolete class -class der_strategy : public assertion_set_strategy { - struct imp; - imp * m_imp; -public: - der_strategy(ast_manager & m); - virtual ~der_strategy(); - - void operator()(assertion_set & s); - - virtual void operator()(assertion_set & s, model_converter_ref & mc) { - operator()(s); - mc = 0; - } - - virtual void cleanup(); - virtual void set_cancel(bool f); -}; - -inline as_st * mk_der(ast_manager & m) { - return alloc(der_strategy, m); -} - -class tactic; - -tactic * mk_der_tactic(ast_manager & m); - #endif /* _DER_H_ */ diff --git a/lib/dl_rewriter.cpp b/src/ast/rewriter/dl_rewriter.cpp similarity index 100% rename from lib/dl_rewriter.cpp rename to src/ast/rewriter/dl_rewriter.cpp diff --git a/lib/dl_rewriter.h b/src/ast/rewriter/dl_rewriter.h similarity index 100% rename from lib/dl_rewriter.h rename to src/ast/rewriter/dl_rewriter.h diff --git a/lib/expr_replacer.cpp b/src/ast/rewriter/expr_replacer.cpp similarity index 100% rename from lib/expr_replacer.cpp rename to src/ast/rewriter/expr_replacer.cpp diff --git a/lib/expr_replacer.h b/src/ast/rewriter/expr_replacer.h similarity index 100% rename from lib/expr_replacer.h rename to src/ast/rewriter/expr_replacer.h diff --git a/lib/factor_rewriter.cpp b/src/ast/rewriter/factor_rewriter.cpp similarity index 100% rename from lib/factor_rewriter.cpp rename to src/ast/rewriter/factor_rewriter.cpp diff --git a/lib/factor_rewriter.h b/src/ast/rewriter/factor_rewriter.h similarity index 100% rename from lib/factor_rewriter.h rename to src/ast/rewriter/factor_rewriter.h diff --git a/lib/float_rewriter.cpp b/src/ast/rewriter/float_rewriter.cpp similarity index 100% rename from lib/float_rewriter.cpp rename to src/ast/rewriter/float_rewriter.cpp diff --git a/lib/float_rewriter.h b/src/ast/rewriter/float_rewriter.h similarity index 100% rename from lib/float_rewriter.h rename to src/ast/rewriter/float_rewriter.h diff --git a/lib/mk_simplified_app.cpp b/src/ast/rewriter/mk_simplified_app.cpp similarity index 100% rename from lib/mk_simplified_app.cpp rename to src/ast/rewriter/mk_simplified_app.cpp diff --git a/lib/mk_simplified_app.h b/src/ast/rewriter/mk_simplified_app.h similarity index 100% rename from lib/mk_simplified_app.h rename to src/ast/rewriter/mk_simplified_app.h diff --git a/lib/poly_rewriter.h b/src/ast/rewriter/poly_rewriter.h similarity index 100% rename from lib/poly_rewriter.h rename to src/ast/rewriter/poly_rewriter.h diff --git a/lib/poly_rewriter_def.h b/src/ast/rewriter/poly_rewriter_def.h similarity index 100% rename from lib/poly_rewriter_def.h rename to src/ast/rewriter/poly_rewriter_def.h diff --git a/lib/quant_hoist.cpp b/src/ast/rewriter/quant_hoist.cpp similarity index 100% rename from lib/quant_hoist.cpp rename to src/ast/rewriter/quant_hoist.cpp diff --git a/lib/quant_hoist.h b/src/ast/rewriter/quant_hoist.h similarity index 100% rename from lib/quant_hoist.h rename to src/ast/rewriter/quant_hoist.h diff --git a/lib/rewriter.cpp b/src/ast/rewriter/rewriter.cpp similarity index 100% rename from lib/rewriter.cpp rename to src/ast/rewriter/rewriter.cpp diff --git a/lib/rewriter.h b/src/ast/rewriter/rewriter.h similarity index 100% rename from lib/rewriter.h rename to src/ast/rewriter/rewriter.h diff --git a/lib/rewriter.txt b/src/ast/rewriter/rewriter.txt similarity index 100% rename from lib/rewriter.txt rename to src/ast/rewriter/rewriter.txt diff --git a/lib/rewriter_def.h b/src/ast/rewriter/rewriter_def.h similarity index 100% rename from lib/rewriter_def.h rename to src/ast/rewriter/rewriter_def.h diff --git a/lib/rewriter_types.h b/src/ast/rewriter/rewriter_types.h similarity index 100% rename from lib/rewriter_types.h rename to src/ast/rewriter/rewriter_types.h diff --git a/lib/th_rewriter.cpp b/src/ast/rewriter/th_rewriter.cpp similarity index 100% rename from lib/th_rewriter.cpp rename to src/ast/rewriter/th_rewriter.cpp diff --git a/lib/th_rewriter.h b/src/ast/rewriter/th_rewriter.h similarity index 100% rename from lib/th_rewriter.h rename to src/ast/rewriter/th_rewriter.h diff --git a/lib/var_subst.cpp b/src/ast/rewriter/var_subst.cpp similarity index 100% rename from lib/var_subst.cpp rename to src/ast/rewriter/var_subst.cpp diff --git a/lib/var_subst.h b/src/ast/rewriter/var_subst.h similarity index 100% rename from lib/var_subst.h rename to src/ast/rewriter/var_subst.h diff --git a/lib/seq_decl_plugin.cpp b/src/ast/seq_decl_plugin.cpp similarity index 100% rename from lib/seq_decl_plugin.cpp rename to src/ast/seq_decl_plugin.cpp diff --git a/lib/seq_decl_plugin.h b/src/ast/seq_decl_plugin.h similarity index 100% rename from lib/seq_decl_plugin.h rename to src/ast/seq_decl_plugin.h diff --git a/lib/shared_occs.cpp b/src/ast/shared_occs.cpp similarity index 100% rename from lib/shared_occs.cpp rename to src/ast/shared_occs.cpp diff --git a/lib/shared_occs.h b/src/ast/shared_occs.h similarity index 100% rename from lib/shared_occs.h rename to src/ast/shared_occs.h diff --git a/src/ast/simplifier/README b/src/ast/simplifier/README new file mode 100644 index 000000000..4725d9de9 --- /dev/null +++ b/src/ast/simplifier/README @@ -0,0 +1,2 @@ +Simplifier module is now obsolete. +It is still being used in many places, but we will eventually replace all occurrences with the new rewriter module. diff --git a/lib/arith_simplifier_params.cpp b/src/ast/simplifier/arith_simplifier_params.cpp similarity index 100% rename from lib/arith_simplifier_params.cpp rename to src/ast/simplifier/arith_simplifier_params.cpp diff --git a/lib/arith_simplifier_params.h b/src/ast/simplifier/arith_simplifier_params.h similarity index 100% rename from lib/arith_simplifier_params.h rename to src/ast/simplifier/arith_simplifier_params.h diff --git a/lib/arith_simplifier_plugin.cpp b/src/ast/simplifier/arith_simplifier_plugin.cpp similarity index 100% rename from lib/arith_simplifier_plugin.cpp rename to src/ast/simplifier/arith_simplifier_plugin.cpp diff --git a/lib/arith_simplifier_plugin.h b/src/ast/simplifier/arith_simplifier_plugin.h similarity index 100% rename from lib/arith_simplifier_plugin.h rename to src/ast/simplifier/arith_simplifier_plugin.h diff --git a/lib/array_simplifier_plugin.cpp b/src/ast/simplifier/array_simplifier_plugin.cpp similarity index 100% rename from lib/array_simplifier_plugin.cpp rename to src/ast/simplifier/array_simplifier_plugin.cpp diff --git a/lib/array_simplifier_plugin.h b/src/ast/simplifier/array_simplifier_plugin.h similarity index 100% rename from lib/array_simplifier_plugin.h rename to src/ast/simplifier/array_simplifier_plugin.h diff --git a/lib/base_simplifier.h b/src/ast/simplifier/base_simplifier.h similarity index 100% rename from lib/base_simplifier.h rename to src/ast/simplifier/base_simplifier.h diff --git a/lib/basic_simplifier_plugin.cpp b/src/ast/simplifier/basic_simplifier_plugin.cpp similarity index 100% rename from lib/basic_simplifier_plugin.cpp rename to src/ast/simplifier/basic_simplifier_plugin.cpp diff --git a/lib/basic_simplifier_plugin.h b/src/ast/simplifier/basic_simplifier_plugin.h similarity index 100% rename from lib/basic_simplifier_plugin.h rename to src/ast/simplifier/basic_simplifier_plugin.h diff --git a/lib/bit2int.cpp b/src/ast/simplifier/bit2int.cpp similarity index 100% rename from lib/bit2int.cpp rename to src/ast/simplifier/bit2int.cpp diff --git a/lib/bit2int.h b/src/ast/simplifier/bit2int.h similarity index 100% rename from lib/bit2int.h rename to src/ast/simplifier/bit2int.h diff --git a/lib/bv_elim.cpp b/src/ast/simplifier/bv_elim.cpp similarity index 100% rename from lib/bv_elim.cpp rename to src/ast/simplifier/bv_elim.cpp diff --git a/lib/bv_elim.h b/src/ast/simplifier/bv_elim.h similarity index 100% rename from lib/bv_elim.h rename to src/ast/simplifier/bv_elim.h diff --git a/lib/bv_simplifier_params.h b/src/ast/simplifier/bv_simplifier_params.h similarity index 100% rename from lib/bv_simplifier_params.h rename to src/ast/simplifier/bv_simplifier_params.h diff --git a/lib/bv_simplifier_plugin.cpp b/src/ast/simplifier/bv_simplifier_plugin.cpp similarity index 100% rename from lib/bv_simplifier_plugin.cpp rename to src/ast/simplifier/bv_simplifier_plugin.cpp diff --git a/lib/bv_simplifier_plugin.h b/src/ast/simplifier/bv_simplifier_plugin.h similarity index 100% rename from lib/bv_simplifier_plugin.h rename to src/ast/simplifier/bv_simplifier_plugin.h diff --git a/lib/datatype_simplifier_plugin.cpp b/src/ast/simplifier/datatype_simplifier_plugin.cpp similarity index 100% rename from lib/datatype_simplifier_plugin.cpp rename to src/ast/simplifier/datatype_simplifier_plugin.cpp diff --git a/lib/datatype_simplifier_plugin.h b/src/ast/simplifier/datatype_simplifier_plugin.h similarity index 100% rename from lib/datatype_simplifier_plugin.h rename to src/ast/simplifier/datatype_simplifier_plugin.h diff --git a/lib/distribute_forall.cpp b/src/ast/simplifier/distribute_forall.cpp similarity index 100% rename from lib/distribute_forall.cpp rename to src/ast/simplifier/distribute_forall.cpp diff --git a/lib/distribute_forall.h b/src/ast/simplifier/distribute_forall.h similarity index 100% rename from lib/distribute_forall.h rename to src/ast/simplifier/distribute_forall.h diff --git a/lib/elim_bounds.cpp b/src/ast/simplifier/elim_bounds.cpp similarity index 100% rename from lib/elim_bounds.cpp rename to src/ast/simplifier/elim_bounds.cpp diff --git a/lib/elim_bounds.h b/src/ast/simplifier/elim_bounds.h similarity index 100% rename from lib/elim_bounds.h rename to src/ast/simplifier/elim_bounds.h diff --git a/lib/inj_axiom.cpp b/src/ast/simplifier/inj_axiom.cpp similarity index 100% rename from lib/inj_axiom.cpp rename to src/ast/simplifier/inj_axiom.cpp diff --git a/lib/inj_axiom.h b/src/ast/simplifier/inj_axiom.h similarity index 100% rename from lib/inj_axiom.h rename to src/ast/simplifier/inj_axiom.h diff --git a/lib/maximise_ac_sharing.cpp b/src/ast/simplifier/maximise_ac_sharing.cpp similarity index 100% rename from lib/maximise_ac_sharing.cpp rename to src/ast/simplifier/maximise_ac_sharing.cpp diff --git a/lib/maximise_ac_sharing.h b/src/ast/simplifier/maximise_ac_sharing.h similarity index 100% rename from lib/maximise_ac_sharing.h rename to src/ast/simplifier/maximise_ac_sharing.h diff --git a/lib/poly_simplifier_plugin.cpp b/src/ast/simplifier/poly_simplifier_plugin.cpp similarity index 100% rename from lib/poly_simplifier_plugin.cpp rename to src/ast/simplifier/poly_simplifier_plugin.cpp diff --git a/lib/poly_simplifier_plugin.h b/src/ast/simplifier/poly_simplifier_plugin.h similarity index 100% rename from lib/poly_simplifier_plugin.h rename to src/ast/simplifier/poly_simplifier_plugin.h diff --git a/lib/pull_ite_tree.cpp b/src/ast/simplifier/pull_ite_tree.cpp similarity index 100% rename from lib/pull_ite_tree.cpp rename to src/ast/simplifier/pull_ite_tree.cpp diff --git a/lib/pull_ite_tree.h b/src/ast/simplifier/pull_ite_tree.h similarity index 100% rename from lib/pull_ite_tree.h rename to src/ast/simplifier/pull_ite_tree.h diff --git a/lib/push_app_ite.cpp b/src/ast/simplifier/push_app_ite.cpp similarity index 100% rename from lib/push_app_ite.cpp rename to src/ast/simplifier/push_app_ite.cpp diff --git a/lib/push_app_ite.h b/src/ast/simplifier/push_app_ite.h similarity index 100% rename from lib/push_app_ite.h rename to src/ast/simplifier/push_app_ite.h diff --git a/lib/simplifier.cpp b/src/ast/simplifier/simplifier.cpp similarity index 100% rename from lib/simplifier.cpp rename to src/ast/simplifier/simplifier.cpp diff --git a/lib/simplifier.h b/src/ast/simplifier/simplifier.h similarity index 100% rename from lib/simplifier.h rename to src/ast/simplifier/simplifier.h diff --git a/lib/simplifier_plugin.cpp b/src/ast/simplifier/simplifier_plugin.cpp similarity index 100% rename from lib/simplifier_plugin.cpp rename to src/ast/simplifier/simplifier_plugin.cpp diff --git a/lib/simplifier_plugin.h b/src/ast/simplifier/simplifier_plugin.h similarity index 100% rename from lib/simplifier_plugin.h rename to src/ast/simplifier/simplifier_plugin.h diff --git a/lib/theory_array_params.h b/src/ast/simplifier/theory_array_params.h similarity index 100% rename from lib/theory_array_params.h rename to src/ast/simplifier/theory_array_params.h diff --git a/lib/static_features.cpp b/src/ast/static_features.cpp similarity index 100% rename from lib/static_features.cpp rename to src/ast/static_features.cpp diff --git a/lib/static_features.h b/src/ast/static_features.h similarity index 100% rename from lib/static_features.h rename to src/ast/static_features.h diff --git a/lib/expr_offset.h b/src/ast/substitution/expr_offset.h similarity index 100% rename from lib/expr_offset.h rename to src/ast/substitution/expr_offset.h diff --git a/lib/expr_offset_map.h b/src/ast/substitution/expr_offset_map.h similarity index 100% rename from lib/expr_offset_map.h rename to src/ast/substitution/expr_offset_map.h diff --git a/lib/matcher.cpp b/src/ast/substitution/matcher.cpp similarity index 100% rename from lib/matcher.cpp rename to src/ast/substitution/matcher.cpp diff --git a/lib/matcher.h b/src/ast/substitution/matcher.h similarity index 100% rename from lib/matcher.h rename to src/ast/substitution/matcher.h diff --git a/lib/substitution.cpp b/src/ast/substitution/substitution.cpp similarity index 100% rename from lib/substitution.cpp rename to src/ast/substitution/substitution.cpp diff --git a/lib/substitution.h b/src/ast/substitution/substitution.h similarity index 100% rename from lib/substitution.h rename to src/ast/substitution/substitution.h diff --git a/lib/substitution_tree.cpp b/src/ast/substitution/substitution_tree.cpp similarity index 100% rename from lib/substitution_tree.cpp rename to src/ast/substitution/substitution_tree.cpp diff --git a/lib/substitution_tree.h b/src/ast/substitution/substitution_tree.h similarity index 100% rename from lib/substitution_tree.h rename to src/ast/substitution/substitution_tree.h diff --git a/lib/unifier.cpp b/src/ast/substitution/unifier.cpp similarity index 100% rename from lib/unifier.cpp rename to src/ast/substitution/unifier.cpp diff --git a/lib/unifier.h b/src/ast/substitution/unifier.h similarity index 100% rename from lib/unifier.h rename to src/ast/substitution/unifier.h diff --git a/lib/var_offset_map.h b/src/ast/substitution/var_offset_map.h similarity index 100% rename from lib/var_offset_map.h rename to src/ast/substitution/var_offset_map.h diff --git a/lib/trail.h b/src/ast/trail.h similarity index 100% rename from lib/trail.h rename to src/ast/trail.h diff --git a/lib/used_symbols.h b/src/ast/used_symbols.h similarity index 100% rename from lib/used_symbols.h rename to src/ast/used_symbols.h diff --git a/lib/used_vars.cpp b/src/ast/used_vars.cpp similarity index 100% rename from lib/used_vars.cpp rename to src/ast/used_vars.cpp diff --git a/lib/used_vars.h b/src/ast/used_vars.h similarity index 100% rename from lib/used_vars.h rename to src/ast/used_vars.h diff --git a/lib/well_sorted.cpp b/src/ast/well_sorted.cpp similarity index 100% rename from lib/well_sorted.cpp rename to src/ast/well_sorted.cpp diff --git a/lib/well_sorted.h b/src/ast/well_sorted.h similarity index 100% rename from lib/well_sorted.h rename to src/ast/well_sorted.h diff --git a/src/cmd_context/README b/src/cmd_context/README new file mode 100644 index 000000000..c44a00690 --- /dev/null +++ b/src/cmd_context/README @@ -0,0 +1,2 @@ +Command context provides the infrastructure for executing commands in front-ends such as SMT-LIB 2.0. +It is also provides the solver abstraction to plugin solvers in this kind of front-end. \ No newline at end of file diff --git a/lib/basic_cmds.cpp b/src/cmd_context/basic_cmds.cpp similarity index 99% rename from lib/basic_cmds.cpp rename to src/cmd_context/basic_cmds.cpp index d05c69baa..879f8f4d3 100644 --- a/lib/basic_cmds.cpp +++ b/src/cmd_context/basic_cmds.cpp @@ -27,7 +27,6 @@ Notes: #include"cmd_util.h" #include"simplify_cmd.h" #include"eval_cmd.h" -#include"qe_cmd.h" class help_cmd : public cmd { svector m_cmds; @@ -770,5 +769,4 @@ void install_ext_basic_cmds(cmd_context & ctx) { ctx.insert(alloc(builtin_cmd, "reset", 0, "reset the shell (all declarations and assertions will be erased)")); install_simplify_cmd(ctx); install_eval_cmd(ctx); - install_qe_cmd(ctx); } diff --git a/lib/basic_cmds.h b/src/cmd_context/basic_cmds.h similarity index 100% rename from lib/basic_cmds.h rename to src/cmd_context/basic_cmds.h diff --git a/lib/check_logic.cpp b/src/cmd_context/check_logic.cpp similarity index 99% rename from lib/check_logic.cpp rename to src/cmd_context/check_logic.cpp index 550240a71..820ef59a4 100644 --- a/lib/check_logic.cpp +++ b/src/cmd_context/check_logic.cpp @@ -21,6 +21,7 @@ Revision History: #include"array_decl_plugin.h" #include"bv_decl_plugin.h" #include"ast_pp.h" +#include"for_each_expr.h" struct check_logic::imp { ast_manager & m; diff --git a/lib/check_logic.h b/src/cmd_context/check_logic.h similarity index 95% rename from lib/check_logic.h rename to src/cmd_context/check_logic.h index 8521ed57b..6fdfc5654 100644 --- a/lib/check_logic.h +++ b/src/cmd_context/check_logic.h @@ -19,7 +19,7 @@ Revision History: #ifndef _CHECK_LOGIC_H_ #define _CHECK_LOGIC_H_ -#include"assertion_set.h" +#include"ast.h" class check_logic { struct imp; diff --git a/lib/check_sat_result.h b/src/cmd_context/check_sat_result.h similarity index 100% rename from lib/check_sat_result.h rename to src/cmd_context/check_sat_result.h diff --git a/lib/cmd_context.cpp b/src/cmd_context/cmd_context.cpp similarity index 99% rename from lib/cmd_context.cpp rename to src/cmd_context/cmd_context.cpp index 333e53b3a..5e80863de 100644 --- a/lib/cmd_context.cpp +++ b/src/cmd_context/cmd_context.cpp @@ -16,6 +16,7 @@ Notes: --*/ #include +#include"front_end_params.h" #include"tptr.h" #include"cmd_context.h" #include"func_decl_dependencies.h" @@ -36,6 +37,7 @@ Notes: #include"decl_collector.h" #include"well_sorted.h" #include"model_evaluator.h" +#include"for_each_expr.h" func_decls::func_decls(ast_manager & m, func_decl * f): m_decls(TAG(func_decl*, f, 0)) { @@ -321,7 +323,7 @@ cmd_context::cmd_context(front_end_params & params, bool main_ctx, ast_manager * SASSERT(m != 0 || !has_manager()); install_basic_cmds(*this); install_ext_basic_cmds(*this); - install_tactic_cmds(*this); + install_core_tactic_cmds(*this); SASSERT(m != 0 || !has_manager()); if (m) init_external_manager(); @@ -1599,3 +1601,4 @@ std::ostream & operator<<(std::ostream & out, cmd_context::status st) { } return out; } + diff --git a/lib/cmd_context.h b/src/cmd_context/cmd_context.h similarity index 93% rename from lib/cmd_context.h rename to src/cmd_context/cmd_context.h index 381abce1c..d730ba002 100644 --- a/lib/cmd_context.h +++ b/src/cmd_context/cmd_context.h @@ -23,8 +23,8 @@ Notes: #include #include"ast.h" +#include"ast_printer.h" #include"pdecl.h" -#include"front_end_params.h" #include"dictionary.h" #include"solver.h" #include"datatype_decl_plugin.h" @@ -37,6 +37,8 @@ Notes: #include"progress_callback.h" #include"scoped_ptr_vector.h" +struct front_end_params; + class func_decls { func_decl * m_decls; public: @@ -110,7 +112,7 @@ struct builtin_decl { builtin_decl(family_id fid, decl_kind k, builtin_decl * n = 0):m_fid(fid), m_decl(k), m_next(n) {} }; -class cmd_context : public progress_callback, public tactic_manager { +class cmd_context : public progress_callback, public tactic_manager, public ast_printer_context { public: enum status { UNSAT, SAT, UNKNOWN @@ -278,6 +280,7 @@ public: bool has_manager() const { return m_manager != 0; } ast_manager & m() const { if (!m_manager) const_cast(this)->init_manager(); return *m_manager; } + virtual ast_manager & get_ast_manager() { return m(); } pdecl_manager & pm() const { if (!m_pmanager) const_cast(this)->init_manager(); return *m_pmanager; } sexpr_manager & sm() const { if (!m_sexpr_manager) const_cast(this)->m_sexpr_manager = alloc(sexpr_manager); return *m_sexpr_manager; } front_end_params & params() const { return m_params; } @@ -328,8 +331,8 @@ public: void reset_user_tactics(); void set_regular_stream(char const * name) { m_regular.set(name); } void set_diagnostic_stream(char const * name); - std::ostream & regular_stream() { return *m_regular; } - std::ostream & diagnostic_stream() { return *m_diagnostic; } + virtual std::ostream & regular_stream() { return *m_regular; } + virtual std::ostream & diagnostic_stream() { return *m_diagnostic; } char const * get_regular_stream_name() const { return m_regular.name(); } char const * get_diagnostic_stream_name() const { return m_diagnostic.name(); } typedef dictionary::iterator cmd_iterator; @@ -381,13 +384,14 @@ public: } format_ns::format * pp(sort * s) const; - void pp(func_decl * f, format_ns::format_ref & r) const; - void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) const; - void pp(expr * n, format_ns::format_ref & r) const; - void display(std::ostream & out, sort * s, unsigned indent = 0) const; - void display(std::ostream & out, expr * n, unsigned indent, unsigned num_vars, char const * var_prefix, sbuffer & var_names) const; - void display(std::ostream & out, expr * n, unsigned indent = 0) const; - void display(std::ostream & out, func_decl * f, unsigned indent = 0) const; + virtual void pp(sort * s, format_ns::format_ref & r) const { r = pp(s); } + virtual void pp(func_decl * f, format_ns::format_ref & r) const; + virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) const; + virtual void pp(expr * n, format_ns::format_ref & r) const; + virtual void display(std::ostream & out, sort * s, unsigned indent = 0) const; + virtual void display(std::ostream & out, expr * n, unsigned indent, unsigned num_vars, char const * var_prefix, sbuffer & var_names) const; + virtual void display(std::ostream & out, expr * n, unsigned indent = 0) const; + virtual void display(std::ostream & out, func_decl * f, unsigned indent = 0) const; // dump assertions in out using the pretty printer. void dump_assertions(std::ostream & out) const; diff --git a/src/cmd_context/cmd_context_to_goal.cpp b/src/cmd_context/cmd_context_to_goal.cpp new file mode 100644 index 000000000..21f8445d5 --- /dev/null +++ b/src/cmd_context/cmd_context_to_goal.cpp @@ -0,0 +1,46 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + cmd_context_to_goal.cpp + +Abstract: + Procedure for copying the assertions in the + command context to a goal object. + +Author: + + Leonardo (leonardo) 2012-10-21 + +Notes: + +--*/ +#include"cmd_context.h" +#include"goal.h" + +/** + \brief Assert expressions from ctx into t. +*/ +void assert_exprs_from(cmd_context const & ctx, goal & t) { + if (ctx.produce_proofs() && ctx.produce_unsat_cores()) + throw cmd_exception("Frontend does not support simultaneous generation of proofs and unsat cores"); + ast_manager & m = t.m(); + bool proofs_enabled = t.proofs_enabled(); + ptr_vector::const_iterator it = ctx.begin_assertions(); + ptr_vector::const_iterator end = ctx.end_assertions(); + for (; it != end; ++it) { + t.assert_expr(*it, proofs_enabled ? m.mk_asserted(*it) : 0, 0); + } + if (ctx.produce_unsat_cores()) { + SASSERT(!ctx.produce_proofs()); + it = ctx.begin_assumptions(); + end = ctx.end_assumptions(); + for (; it != end; ++it) { + t.assert_expr(*it, 0, m.mk_leaf(*it)); + } + } + else { + SASSERT(ctx.begin_assumptions() == ctx.end_assumptions()); + } +} diff --git a/src/cmd_context/cmd_context_to_goal.h b/src/cmd_context/cmd_context_to_goal.h new file mode 100644 index 000000000..2bc27baa7 --- /dev/null +++ b/src/cmd_context/cmd_context_to_goal.h @@ -0,0 +1,24 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + cmd_context_to_goal.h + +Abstract: + Procedure for copying the assertions in the + command context to a goal object. + +Author: + + Leonardo (leonardo) 2012-10-21 + +Notes: + +--*/ +#ifndef _CMD_CONTEXT_TO_GOAL_H_ +#define _CMD_CONTEXT_TO_GOAL_H_ + +void assert_exprs_from(cmd_context const & ctx, goal & t); + +#endif diff --git a/lib/cmd_util.cpp b/src/cmd_context/cmd_util.cpp similarity index 100% rename from lib/cmd_util.cpp rename to src/cmd_context/cmd_util.cpp diff --git a/lib/cmd_util.h b/src/cmd_context/cmd_util.h similarity index 100% rename from lib/cmd_util.h rename to src/cmd_context/cmd_util.h diff --git a/src/cmd_context/echo_tactic.cpp b/src/cmd_context/echo_tactic.cpp new file mode 100644 index 000000000..10d671542 --- /dev/null +++ b/src/cmd_context/echo_tactic.cpp @@ -0,0 +1,84 @@ +/*++ +Copyright (c) 2011 Microsoft Corporation + +Module Name: + + echo_tactic.h + +Abstract: + + Tactic and probe for dumping data. + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#include"tactic.h" +#include"probe.h" +#include"cmd_context.h" + +class echo_tactic : public skip_tactic { + cmd_context & m_ctx; + char const * m_msg; + bool m_newline; +public: + echo_tactic(cmd_context & ctx, char const * msg, bool newline):m_ctx(ctx), m_msg(msg), m_newline(newline) {} + + virtual void operator()(goal_ref const & in, + goal_ref_buffer & result, + model_converter_ref & mc, + proof_converter_ref & pc, + expr_dependency_ref & core) { + #pragma omp critical (echo_tactic) + { + m_ctx.diagnostic_stream() << m_msg; + if (m_newline) + m_ctx.diagnostic_stream() << std::endl; + } + skip_tactic::operator()(in, result, mc, pc, core); + } +}; + +tactic * mk_echo_tactic(cmd_context & ctx, char const * msg, bool newline) { + return alloc(echo_tactic, ctx, msg, newline); +} + +class probe_value_tactic : public skip_tactic { + cmd_context & m_ctx; + char const * m_msg; + probe * m_p; + bool m_newline; +public: + probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline):m_ctx(ctx), m_msg(msg), m_p(p), m_newline(newline) { + SASSERT(m_p); + m_p->inc_ref(); + } + + ~probe_value_tactic() { + m_p->dec_ref(); + } + + virtual void operator()(goal_ref const & in, + goal_ref_buffer & result, + model_converter_ref & mc, + proof_converter_ref & pc, + expr_dependency_ref & core) { + double val = (*m_p)(*(in.get())).get_value(); + #pragma omp critical (probe_value_tactic) + { + if (m_msg) + m_ctx.diagnostic_stream() << m_msg << " "; + m_ctx.diagnostic_stream() << val; + if (m_newline) + m_ctx.diagnostic_stream() << std::endl; + } + skip_tactic::operator()(in, result, mc, pc, core); + } +}; + +tactic * mk_probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline) { + return alloc(probe_value_tactic, ctx, msg, p, newline); +} diff --git a/src/cmd_context/echo_tactic.h b/src/cmd_context/echo_tactic.h new file mode 100644 index 000000000..8760820bd --- /dev/null +++ b/src/cmd_context/echo_tactic.h @@ -0,0 +1,30 @@ +/*++ +Copyright (c) 2011 Microsoft Corporation + +Module Name: + + echo_tactic.h + +Abstract: + + Tactic and probe for dumping data. + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#ifndef _ECHO_TACTICS_H_ +#define _ECHO_TACTICS_H_ + +class cmd_context; +class tactic; +class probe; + +tactic * mk_echo_tactic(cmd_context & ctx, char const * msg, bool newline = true); +// Display the value returned by p in the diagnostic_stream +tactic * mk_probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline = true); + +#endif diff --git a/lib/eval_cmd.cpp b/src/cmd_context/eval_cmd.cpp similarity index 100% rename from lib/eval_cmd.cpp rename to src/cmd_context/eval_cmd.cpp diff --git a/lib/eval_cmd.h b/src/cmd_context/eval_cmd.h similarity index 100% rename from lib/eval_cmd.h rename to src/cmd_context/eval_cmd.h diff --git a/lib/dbg_cmds.cpp b/src/cmd_context/extra_cmds/dbg_cmds.cpp similarity index 100% rename from lib/dbg_cmds.cpp rename to src/cmd_context/extra_cmds/dbg_cmds.cpp diff --git a/lib/dbg_cmds.h b/src/cmd_context/extra_cmds/dbg_cmds.h similarity index 100% rename from lib/dbg_cmds.h rename to src/cmd_context/extra_cmds/dbg_cmds.h diff --git a/lib/polynomial_cmds.cpp b/src/cmd_context/extra_cmds/polynomial_cmds.cpp similarity index 100% rename from lib/polynomial_cmds.cpp rename to src/cmd_context/extra_cmds/polynomial_cmds.cpp diff --git a/lib/polynomial_cmds.h b/src/cmd_context/extra_cmds/polynomial_cmds.h similarity index 100% rename from lib/polynomial_cmds.h rename to src/cmd_context/extra_cmds/polynomial_cmds.h diff --git a/lib/subpaving_cmds.cpp b/src/cmd_context/extra_cmds/subpaving_cmds.cpp similarity index 100% rename from lib/subpaving_cmds.cpp rename to src/cmd_context/extra_cmds/subpaving_cmds.cpp diff --git a/lib/subpaving_cmds.h b/src/cmd_context/extra_cmds/subpaving_cmds.h similarity index 100% rename from lib/subpaving_cmds.h rename to src/cmd_context/extra_cmds/subpaving_cmds.h diff --git a/lib/parametric_cmd.cpp b/src/cmd_context/parametric_cmd.cpp similarity index 100% rename from lib/parametric_cmd.cpp rename to src/cmd_context/parametric_cmd.cpp diff --git a/lib/parametric_cmd.h b/src/cmd_context/parametric_cmd.h similarity index 86% rename from lib/parametric_cmd.h rename to src/cmd_context/parametric_cmd.h index 4acf41b9e..762d6bd72 100644 --- a/lib/parametric_cmd.h +++ b/src/cmd_context/parametric_cmd.h @@ -58,16 +58,19 @@ public: m_last = symbol::null; } virtual void set_next_arg(cmd_context & ctx, sort * s) { - m_params.set_sort(m_last, s); - m_last = symbol::null; + NOT_IMPLEMENTED_YET(); + // m_params.set_sort(m_last, s); + // m_last = symbol::null; } virtual void set_next_arg(cmd_context & ctx, expr * t) { - m_params.set_expr(m_last, t); - m_last = symbol::null; + NOT_IMPLEMENTED_YET(); + // m_params.set_expr(m_last, t); + // m_last = symbol::null; } virtual void set_next_arg(cmd_context & ctx, func_decl * f) { - m_params.set_func_decl(m_last, f); - m_last = symbol::null; + NOT_IMPLEMENTED_YET(); + // m_params.set_func_decl(m_last, f); + // m_last = symbol::null; } }; diff --git a/lib/pdecl.cpp b/src/cmd_context/pdecl.cpp similarity index 100% rename from lib/pdecl.cpp rename to src/cmd_context/pdecl.cpp diff --git a/lib/pdecl.h b/src/cmd_context/pdecl.h similarity index 100% rename from lib/pdecl.h rename to src/cmd_context/pdecl.h diff --git a/lib/progress_callback.h b/src/cmd_context/progress_callback.h similarity index 100% rename from lib/progress_callback.h rename to src/cmd_context/progress_callback.h diff --git a/lib/simplify_cmd.cpp b/src/cmd_context/simplify_cmd.cpp similarity index 100% rename from lib/simplify_cmd.cpp rename to src/cmd_context/simplify_cmd.cpp diff --git a/lib/simplify_cmd.h b/src/cmd_context/simplify_cmd.h similarity index 100% rename from lib/simplify_cmd.h rename to src/cmd_context/simplify_cmd.h diff --git a/src/cmd_context/solver.cpp b/src/cmd_context/solver.cpp new file mode 100644 index 000000000..59118c5ca --- /dev/null +++ b/src/cmd_context/solver.cpp @@ -0,0 +1,34 @@ +/*++ +Copyright (c) 2011 Microsoft Corporation + +Module Name: + + solver.h + +Abstract: + + abstract solver interface + +Author: + + Leonardo (leonardo) 2011-03-19 + +Notes: + +--*/ +#include"solver.h" + +unsigned solver::get_num_assertions() const { + NOT_IMPLEMENTED_YET(); + return 0; +} + +expr * solver::get_assertion(unsigned idx) const { + NOT_IMPLEMENTED_YET(); + return 0; +} + +void solver::display(std::ostream & out) const { + out << "(solver)"; +} + diff --git a/lib/solver.h b/src/cmd_context/solver.h similarity index 97% rename from lib/solver.h rename to src/cmd_context/solver.h index c7077a0a2..373f878bb 100644 --- a/lib/solver.h +++ b/src/cmd_context/solver.h @@ -58,6 +58,4 @@ public: virtual void display(std::ostream & out) const; }; -solver * mk_default_solver(); - #endif diff --git a/lib/strategic_solver.cpp b/src/cmd_context/strategic_solver.cpp similarity index 100% rename from lib/strategic_solver.cpp rename to src/cmd_context/strategic_solver.cpp diff --git a/lib/strategic_solver.h b/src/cmd_context/strategic_solver.h similarity index 100% rename from lib/strategic_solver.h rename to src/cmd_context/strategic_solver.h diff --git a/lib/tactic2solver.cpp b/src/cmd_context/tactic2solver.cpp similarity index 100% rename from lib/tactic2solver.cpp rename to src/cmd_context/tactic2solver.cpp diff --git a/lib/tactic2solver.h b/src/cmd_context/tactic2solver.h similarity index 100% rename from lib/tactic2solver.h rename to src/cmd_context/tactic2solver.h diff --git a/lib/tactic_cmds.cpp b/src/cmd_context/tactic_cmds.cpp similarity index 99% rename from lib/tactic_cmds.cpp rename to src/cmd_context/tactic_cmds.cpp index f0b255696..f6d9a5e5f 100644 --- a/lib/tactic_cmds.cpp +++ b/src/cmd_context/tactic_cmds.cpp @@ -20,7 +20,6 @@ Notes: #include"cmd_context.h" #include"cmd_util.h" #include"parametric_cmd.h" -#include"install_tactics.h" #include"scoped_timer.h" #include"scoped_ctrl_c.h" #include"cancel_eh.h" @@ -31,6 +30,8 @@ Notes: #include"tactical.h" #include"probe.h" #include"check_sat_result.h" +#include"cmd_context_to_goal.h" +#include"echo_tactic.h" tactic_cmd::~tactic_cmd() { dealloc(m_factory); @@ -390,13 +391,12 @@ public: }; -void install_tactic_cmds(cmd_context & ctx) { +void install_core_tactic_cmds(cmd_context & ctx) { ctx.insert(alloc(declare_tactic_cmd)); ctx.insert(alloc(get_user_tactics_cmd)); ctx.insert(alloc(help_tactic_cmd)); ctx.insert(alloc(check_sat_using_tactict_cmd)); ctx.insert(alloc(apply_tactic_cmd)); - install_tactics(ctx); } static tactic * mk_and_then(cmd_context & ctx, sexpr * n) { diff --git a/lib/tactic_cmds.h b/src/cmd_context/tactic_cmds.h similarity index 96% rename from lib/tactic_cmds.h rename to src/cmd_context/tactic_cmds.h index 10f1d6276..c44078a90 100644 --- a/lib/tactic_cmds.h +++ b/src/cmd_context/tactic_cmds.h @@ -45,7 +45,7 @@ public: tactic * mk(ast_manager & m); }; -void install_tactic_cmds(cmd_context & ctx); +void install_core_tactic_cmds(cmd_context & ctx); tactic * sexpr2tactic(cmd_context & ctx, sexpr * n); class probe_info { diff --git a/lib/tactic_manager.cpp b/src/cmd_context/tactic_manager.cpp similarity index 100% rename from lib/tactic_manager.cpp rename to src/cmd_context/tactic_manager.cpp diff --git a/lib/tactic_manager.h b/src/cmd_context/tactic_manager.h similarity index 100% rename from lib/tactic_manager.h rename to src/cmd_context/tactic_manager.h diff --git a/lib/assertion_stack.cpp b/src/dead/assertion_stack.cpp similarity index 100% rename from lib/assertion_stack.cpp rename to src/dead/assertion_stack.cpp diff --git a/lib/assertion_stack.h b/src/dead/assertion_stack.h similarity index 100% rename from lib/assertion_stack.h rename to src/dead/assertion_stack.h diff --git a/lib/big_rational.h b/src/dead/big_rational.h similarity index 100% rename from lib/big_rational.h rename to src/dead/big_rational.h diff --git a/configure.in b/src/dead/configure.in similarity index 100% rename from configure.in rename to src/dead/configure.in diff --git a/lib/contains_var.h b/src/dead/contains_var.h similarity index 100% rename from lib/contains_var.h rename to src/dead/contains_var.h diff --git a/lib/dl_simplifier_plugin.cpp b/src/dead/dl_simplifier_plugin.cpp similarity index 100% rename from lib/dl_simplifier_plugin.cpp rename to src/dead/dl_simplifier_plugin.cpp diff --git a/lib/dl_simplifier_plugin.h b/src/dead/dl_simplifier_plugin.h similarity index 100% rename from lib/dl_simplifier_plugin.h rename to src/dead/dl_simplifier_plugin.h diff --git a/lib/dummy_big_rational.h b/src/dead/dummy_big_rational.h similarity index 100% rename from lib/dummy_big_rational.h rename to src/dead/dummy_big_rational.h diff --git a/lib/expr_weight.cpp b/src/dead/expr_weight.cpp similarity index 100% rename from lib/expr_weight.cpp rename to src/dead/expr_weight.cpp diff --git a/lib/expr_weight.h b/src/dead/expr_weight.h similarity index 100% rename from lib/expr_weight.h rename to src/dead/expr_weight.h diff --git a/lib/gl_tactic.cpp b/src/dead/gl_tactic.cpp similarity index 100% rename from lib/gl_tactic.cpp rename to src/dead/gl_tactic.cpp diff --git a/lib/gl_tactic.h b/src/dead/gl_tactic.h similarity index 100% rename from lib/gl_tactic.h rename to src/dead/gl_tactic.h diff --git a/lib/gmp_big_rational.cpp b/src/dead/gmp_big_rational.cpp similarity index 100% rename from lib/gmp_big_rational.cpp rename to src/dead/gmp_big_rational.cpp diff --git a/lib/gmp_big_rational.h b/src/dead/gmp_big_rational.h similarity index 100% rename from lib/gmp_big_rational.h rename to src/dead/gmp_big_rational.h diff --git a/lib/lru_cache.cpp b/src/dead/lru_cache.cpp similarity index 100% rename from lib/lru_cache.cpp rename to src/dead/lru_cache.cpp diff --git a/lib/lru_cache.h b/src/dead/lru_cache.h similarity index 100% rename from lib/lru_cache.h rename to src/dead/lru_cache.h diff --git a/lib/parameters.h b/src/dead/parameters.h similarity index 100% rename from lib/parameters.h rename to src/dead/parameters.h diff --git a/shell/simple_sat.cpp b/src/dead/simple_sat.cpp similarity index 100% rename from shell/simple_sat.cpp rename to src/dead/simple_sat.cpp diff --git a/shell/simple_sat.h b/src/dead/simple_sat.h similarity index 100% rename from shell/simple_sat.h rename to src/dead/simple_sat.h diff --git a/lib/smt_classifier.h b/src/dead/smt_classifier.h similarity index 100% rename from lib/smt_classifier.h rename to src/dead/smt_classifier.h diff --git a/lib/smt_euf.cpp b/src/dead/smt_euf.cpp similarity index 100% rename from lib/smt_euf.cpp rename to src/dead/smt_euf.cpp diff --git a/lib/smt_euf.h b/src/dead/smt_euf.h similarity index 100% rename from lib/smt_euf.h rename to src/dead/smt_euf.h diff --git a/lib/smt_trail.h b/src/dead/smt_trail.h similarity index 100% rename from lib/smt_trail.h rename to src/dead/smt_trail.h diff --git a/lib/st_cmds.h b/src/dead/st_cmds.h similarity index 100% rename from lib/st_cmds.h rename to src/dead/st_cmds.h diff --git a/test/ackermanize.cpp b/src/dead/test/ackermanize.cpp similarity index 100% rename from test/ackermanize.cpp rename to src/dead/test/ackermanize.cpp diff --git a/test/core_theory.cpp b/src/dead/test/core_theory.cpp similarity index 100% rename from test/core_theory.cpp rename to src/dead/test/core_theory.cpp diff --git a/test/dimacs.cpp b/src/dead/test/dimacs.cpp similarity index 100% rename from test/dimacs.cpp rename to src/dead/test/dimacs.cpp diff --git a/test/distinct.cpp b/src/dead/test/distinct.cpp similarity index 100% rename from test/distinct.cpp rename to src/dead/test/distinct.cpp diff --git a/test/fingerprint.cpp b/src/dead/test/fingerprint.cpp similarity index 100% rename from test/fingerprint.cpp rename to src/dead/test/fingerprint.cpp diff --git a/test/gate.cpp b/src/dead/test/gate.cpp similarity index 100% rename from test/gate.cpp rename to src/dead/test/gate.cpp diff --git a/test/interval_arithmetic.cpp b/src/dead/test/interval_arithmetic.cpp similarity index 100% rename from test/interval_arithmetic.cpp rename to src/dead/test/interval_arithmetic.cpp diff --git a/test/relevancy.cpp b/src/dead/test/relevancy.cpp similarity index 100% rename from test/relevancy.cpp rename to src/dead/test/relevancy.cpp diff --git a/test/sat.cpp b/src/dead/test/sat.cpp similarity index 100% rename from test/sat.cpp rename to src/dead/test/sat.cpp diff --git a/test/simplex_polynomial.cpp b/src/dead/test/simplex_polynomial.cpp similarity index 100% rename from test/simplex_polynomial.cpp rename to src/dead/test/simplex_polynomial.cpp diff --git a/test/template_models.cpp b/src/dead/test/template_models.cpp similarity index 100% rename from test/template_models.cpp rename to src/dead/test/template_models.cpp diff --git a/test/th_propagation.cpp b/src/dead/test/th_propagation.cpp similarity index 100% rename from test/th_propagation.cpp rename to src/dead/test/th_propagation.cpp diff --git a/test/trail.cpp b/src/dead/test/trail.cpp similarity index 100% rename from test/trail.cpp rename to src/dead/test/trail.cpp diff --git a/test/watch_list.cpp b/src/dead/test/watch_list.cpp similarity index 100% rename from test/watch_list.cpp rename to src/dead/test/watch_list.cpp diff --git a/lib/value_compiler_extension.h b/src/dead/value_compiler_extension.h similarity index 100% rename from lib/value_compiler_extension.h rename to src/dead/value_compiler_extension.h diff --git a/dll/dll.cpp b/src/dll/dll.cpp similarity index 100% rename from dll/dll.cpp rename to src/dll/dll.cpp diff --git a/dll/dll.rc b/src/dll/dll.rc similarity index 100% rename from dll/dll.rc rename to src/dll/dll.rc diff --git a/dll/dll.vcxproj b/src/dll/dll.vcxproj similarity index 100% rename from dll/dll.vcxproj rename to src/dll/dll.vcxproj diff --git a/dll/resource.h b/src/dll/resource.h similarity index 100% rename from dll/resource.h rename to src/dll/resource.h diff --git a/dll/z3.def b/src/dll/z3.def similarity index 100% rename from dll/z3.def rename to src/dll/z3.def diff --git a/Microsoft.Z3/AST.cs b/src/dotnet/Microsoft.Z3/AST.cs similarity index 100% rename from Microsoft.Z3/AST.cs rename to src/dotnet/Microsoft.Z3/AST.cs diff --git a/Microsoft.Z3/ASTMap.cs b/src/dotnet/Microsoft.Z3/ASTMap.cs similarity index 100% rename from Microsoft.Z3/ASTMap.cs rename to src/dotnet/Microsoft.Z3/ASTMap.cs diff --git a/Microsoft.Z3/ASTVector.cs b/src/dotnet/Microsoft.Z3/ASTVector.cs similarity index 100% rename from Microsoft.Z3/ASTVector.cs rename to src/dotnet/Microsoft.Z3/ASTVector.cs diff --git a/Microsoft.Z3/ApplyResult.cs b/src/dotnet/Microsoft.Z3/ApplyResult.cs similarity index 100% rename from Microsoft.Z3/ApplyResult.cs rename to src/dotnet/Microsoft.Z3/ApplyResult.cs diff --git a/Microsoft.Z3/Constructor.cs b/src/dotnet/Microsoft.Z3/Constructor.cs similarity index 100% rename from Microsoft.Z3/Constructor.cs rename to src/dotnet/Microsoft.Z3/Constructor.cs diff --git a/Microsoft.Z3/Context.cs b/src/dotnet/Microsoft.Z3/Context.cs similarity index 100% rename from Microsoft.Z3/Context.cs rename to src/dotnet/Microsoft.Z3/Context.cs diff --git a/Microsoft.Z3/DecRefQUeue.cs b/src/dotnet/Microsoft.Z3/DecRefQUeue.cs similarity index 100% rename from Microsoft.Z3/DecRefQUeue.cs rename to src/dotnet/Microsoft.Z3/DecRefQUeue.cs diff --git a/Microsoft.Z3/Enumerations.cs b/src/dotnet/Microsoft.Z3/Enumerations.cs similarity index 100% rename from Microsoft.Z3/Enumerations.cs rename to src/dotnet/Microsoft.Z3/Enumerations.cs diff --git a/Microsoft.Z3/Expr.cs b/src/dotnet/Microsoft.Z3/Expr.cs similarity index 100% rename from Microsoft.Z3/Expr.cs rename to src/dotnet/Microsoft.Z3/Expr.cs diff --git a/Microsoft.Z3/Fixedpoint.cs b/src/dotnet/Microsoft.Z3/Fixedpoint.cs similarity index 100% rename from Microsoft.Z3/Fixedpoint.cs rename to src/dotnet/Microsoft.Z3/Fixedpoint.cs diff --git a/Microsoft.Z3/FuncDecl.cs b/src/dotnet/Microsoft.Z3/FuncDecl.cs similarity index 100% rename from Microsoft.Z3/FuncDecl.cs rename to src/dotnet/Microsoft.Z3/FuncDecl.cs diff --git a/Microsoft.Z3/FuncInterp.cs b/src/dotnet/Microsoft.Z3/FuncInterp.cs similarity index 100% rename from Microsoft.Z3/FuncInterp.cs rename to src/dotnet/Microsoft.Z3/FuncInterp.cs diff --git a/Microsoft.Z3/Goal.cs b/src/dotnet/Microsoft.Z3/Goal.cs similarity index 100% rename from Microsoft.Z3/Goal.cs rename to src/dotnet/Microsoft.Z3/Goal.cs diff --git a/Microsoft.Z3/Log.cs b/src/dotnet/Microsoft.Z3/Log.cs similarity index 100% rename from Microsoft.Z3/Log.cs rename to src/dotnet/Microsoft.Z3/Log.cs diff --git a/Microsoft.Z3/Microsoft.Z3.csproj b/src/dotnet/Microsoft.Z3/Microsoft.Z3.csproj similarity index 100% rename from Microsoft.Z3/Microsoft.Z3.csproj rename to src/dotnet/Microsoft.Z3/Microsoft.Z3.csproj diff --git a/Microsoft.Z3/Microsoft.Z3_35.csproj b/src/dotnet/Microsoft.Z3/Microsoft.Z3_35.csproj similarity index 100% rename from Microsoft.Z3/Microsoft.Z3_35.csproj rename to src/dotnet/Microsoft.Z3/Microsoft.Z3_35.csproj diff --git a/Microsoft.Z3/Model.cs b/src/dotnet/Microsoft.Z3/Model.cs similarity index 100% rename from Microsoft.Z3/Model.cs rename to src/dotnet/Microsoft.Z3/Model.cs diff --git a/Microsoft.Z3/Native.cs b/src/dotnet/Microsoft.Z3/Native.cs similarity index 100% rename from Microsoft.Z3/Native.cs rename to src/dotnet/Microsoft.Z3/Native.cs diff --git a/Microsoft.Z3/Numeral.cs b/src/dotnet/Microsoft.Z3/Numeral.cs similarity index 100% rename from Microsoft.Z3/Numeral.cs rename to src/dotnet/Microsoft.Z3/Numeral.cs diff --git a/Microsoft.Z3/ParamDescrs.cs b/src/dotnet/Microsoft.Z3/ParamDescrs.cs similarity index 100% rename from Microsoft.Z3/ParamDescrs.cs rename to src/dotnet/Microsoft.Z3/ParamDescrs.cs diff --git a/Microsoft.Z3/Params.cs b/src/dotnet/Microsoft.Z3/Params.cs similarity index 100% rename from Microsoft.Z3/Params.cs rename to src/dotnet/Microsoft.Z3/Params.cs diff --git a/Microsoft.Z3/Pattern.cs b/src/dotnet/Microsoft.Z3/Pattern.cs similarity index 100% rename from Microsoft.Z3/Pattern.cs rename to src/dotnet/Microsoft.Z3/Pattern.cs diff --git a/Microsoft.Z3/Probe.cs b/src/dotnet/Microsoft.Z3/Probe.cs similarity index 100% rename from Microsoft.Z3/Probe.cs rename to src/dotnet/Microsoft.Z3/Probe.cs diff --git a/Microsoft.Z3/Properties/AssemblyInfo.cs b/src/dotnet/Microsoft.Z3/Properties/AssemblyInfo.cs similarity index 100% rename from Microsoft.Z3/Properties/AssemblyInfo.cs rename to src/dotnet/Microsoft.Z3/Properties/AssemblyInfo.cs diff --git a/Microsoft.Z3/Quantifier.cs b/src/dotnet/Microsoft.Z3/Quantifier.cs similarity index 100% rename from Microsoft.Z3/Quantifier.cs rename to src/dotnet/Microsoft.Z3/Quantifier.cs diff --git a/Microsoft.Z3/Solver.cs b/src/dotnet/Microsoft.Z3/Solver.cs similarity index 100% rename from Microsoft.Z3/Solver.cs rename to src/dotnet/Microsoft.Z3/Solver.cs diff --git a/Microsoft.Z3/Sort.cs b/src/dotnet/Microsoft.Z3/Sort.cs similarity index 100% rename from Microsoft.Z3/Sort.cs rename to src/dotnet/Microsoft.Z3/Sort.cs diff --git a/Microsoft.Z3/Statistics.cs b/src/dotnet/Microsoft.Z3/Statistics.cs similarity index 100% rename from Microsoft.Z3/Statistics.cs rename to src/dotnet/Microsoft.Z3/Statistics.cs diff --git a/Microsoft.Z3/Status.cs b/src/dotnet/Microsoft.Z3/Status.cs similarity index 100% rename from Microsoft.Z3/Status.cs rename to src/dotnet/Microsoft.Z3/Status.cs diff --git a/Microsoft.Z3/Symbol.cs b/src/dotnet/Microsoft.Z3/Symbol.cs similarity index 100% rename from Microsoft.Z3/Symbol.cs rename to src/dotnet/Microsoft.Z3/Symbol.cs diff --git a/Microsoft.Z3/Tactic.cs b/src/dotnet/Microsoft.Z3/Tactic.cs similarity index 100% rename from Microsoft.Z3/Tactic.cs rename to src/dotnet/Microsoft.Z3/Tactic.cs diff --git a/Microsoft.Z3/Version.cs b/src/dotnet/Microsoft.Z3/Version.cs similarity index 100% rename from Microsoft.Z3/Version.cs rename to src/dotnet/Microsoft.Z3/Version.cs diff --git a/Microsoft.Z3/Z3Exception.cs b/src/dotnet/Microsoft.Z3/Z3Exception.cs similarity index 100% rename from Microsoft.Z3/Z3Exception.cs rename to src/dotnet/Microsoft.Z3/Z3Exception.cs diff --git a/Microsoft.Z3/Z3Object.cs b/src/dotnet/Microsoft.Z3/Z3Object.cs similarity index 100% rename from Microsoft.Z3/Z3Object.cs rename to src/dotnet/Microsoft.Z3/Z3Object.cs diff --git a/Microsoft.Z3V3/AssemblyInfo.cpp b/src/dotnet/Microsoft.Z3V3/AssemblyInfo.cpp similarity index 100% rename from Microsoft.Z3V3/AssemblyInfo.cpp rename to src/dotnet/Microsoft.Z3V3/AssemblyInfo.cpp diff --git a/Microsoft.Z3V3/Microsoft.Z3V3.cpp b/src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.cpp similarity index 100% rename from Microsoft.Z3V3/Microsoft.Z3V3.cpp rename to src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.cpp diff --git a/Microsoft.Z3V3/Microsoft.Z3V3.h b/src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.h similarity index 100% rename from Microsoft.Z3V3/Microsoft.Z3V3.h rename to src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.h diff --git a/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj b/src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj similarity index 100% rename from Microsoft.Z3V3/Microsoft.Z3V3.vcxproj rename to src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj diff --git a/lib/euclidean_solver.cpp b/src/math/euclid/euclidean_solver.cpp similarity index 100% rename from lib/euclidean_solver.cpp rename to src/math/euclid/euclidean_solver.cpp diff --git a/lib/euclidean_solver.h b/src/math/euclid/euclidean_solver.h similarity index 100% rename from lib/euclidean_solver.h rename to src/math/euclid/euclidean_solver.h diff --git a/lib/grobner.cpp b/src/math/grobner/grobner.cpp similarity index 100% rename from lib/grobner.cpp rename to src/math/grobner/grobner.cpp diff --git a/lib/grobner.h b/src/math/grobner/grobner.h similarity index 100% rename from lib/grobner.h rename to src/math/grobner/grobner.h diff --git a/lib/algebraic_numbers.cpp b/src/math/polynomial/algebraic_numbers.cpp similarity index 100% rename from lib/algebraic_numbers.cpp rename to src/math/polynomial/algebraic_numbers.cpp diff --git a/lib/algebraic_numbers.h b/src/math/polynomial/algebraic_numbers.h similarity index 100% rename from lib/algebraic_numbers.h rename to src/math/polynomial/algebraic_numbers.h diff --git a/lib/linear_eq_solver.h b/src/math/polynomial/linear_eq_solver.h similarity index 100% rename from lib/linear_eq_solver.h rename to src/math/polynomial/linear_eq_solver.h diff --git a/lib/polynomial.cpp b/src/math/polynomial/polynomial.cpp similarity index 100% rename from lib/polynomial.cpp rename to src/math/polynomial/polynomial.cpp diff --git a/lib/polynomial.h b/src/math/polynomial/polynomial.h similarity index 100% rename from lib/polynomial.h rename to src/math/polynomial/polynomial.h diff --git a/lib/polynomial_cache.cpp b/src/math/polynomial/polynomial_cache.cpp similarity index 100% rename from lib/polynomial_cache.cpp rename to src/math/polynomial/polynomial_cache.cpp diff --git a/lib/polynomial_cache.h b/src/math/polynomial/polynomial_cache.h similarity index 100% rename from lib/polynomial_cache.h rename to src/math/polynomial/polynomial_cache.h diff --git a/lib/polynomial_factorization.cpp b/src/math/polynomial/polynomial_factorization.cpp similarity index 100% rename from lib/polynomial_factorization.cpp rename to src/math/polynomial/polynomial_factorization.cpp diff --git a/lib/polynomial_factorization.h b/src/math/polynomial/polynomial_factorization.h similarity index 100% rename from lib/polynomial_factorization.h rename to src/math/polynomial/polynomial_factorization.h diff --git a/lib/polynomial_primes.h b/src/math/polynomial/polynomial_primes.h similarity index 100% rename from lib/polynomial_primes.h rename to src/math/polynomial/polynomial_primes.h diff --git a/lib/polynomial_var2value.h b/src/math/polynomial/polynomial_var2value.h similarity index 100% rename from lib/polynomial_var2value.h rename to src/math/polynomial/polynomial_var2value.h diff --git a/lib/rpolynomial.cpp b/src/math/polynomial/rpolynomial.cpp similarity index 100% rename from lib/rpolynomial.cpp rename to src/math/polynomial/rpolynomial.cpp diff --git a/lib/rpolynomial.h b/src/math/polynomial/rpolynomial.h similarity index 100% rename from lib/rpolynomial.h rename to src/math/polynomial/rpolynomial.h diff --git a/lib/sexpr2upolynomial.cpp b/src/math/polynomial/sexpr2upolynomial.cpp similarity index 100% rename from lib/sexpr2upolynomial.cpp rename to src/math/polynomial/sexpr2upolynomial.cpp diff --git a/lib/sexpr2upolynomial.h b/src/math/polynomial/sexpr2upolynomial.h similarity index 100% rename from lib/sexpr2upolynomial.h rename to src/math/polynomial/sexpr2upolynomial.h diff --git a/lib/upolynomial.cpp b/src/math/polynomial/upolynomial.cpp similarity index 100% rename from lib/upolynomial.cpp rename to src/math/polynomial/upolynomial.cpp diff --git a/lib/upolynomial.h b/src/math/polynomial/upolynomial.h similarity index 100% rename from lib/upolynomial.h rename to src/math/polynomial/upolynomial.h diff --git a/lib/upolynomial_factorization.cpp b/src/math/polynomial/upolynomial_factorization.cpp similarity index 100% rename from lib/upolynomial_factorization.cpp rename to src/math/polynomial/upolynomial_factorization.cpp diff --git a/lib/upolynomial_factorization.h b/src/math/polynomial/upolynomial_factorization.h similarity index 100% rename from lib/upolynomial_factorization.h rename to src/math/polynomial/upolynomial_factorization.h diff --git a/lib/upolynomial_factorization_int.h b/src/math/polynomial/upolynomial_factorization_int.h similarity index 100% rename from lib/upolynomial_factorization_int.h rename to src/math/polynomial/upolynomial_factorization_int.h diff --git a/lib/subpaving.cpp b/src/math/subpaving/subpaving.cpp similarity index 100% rename from lib/subpaving.cpp rename to src/math/subpaving/subpaving.cpp diff --git a/lib/subpaving.h b/src/math/subpaving/subpaving.h similarity index 100% rename from lib/subpaving.h rename to src/math/subpaving/subpaving.h diff --git a/lib/subpaving_hwf.cpp b/src/math/subpaving/subpaving_hwf.cpp similarity index 100% rename from lib/subpaving_hwf.cpp rename to src/math/subpaving/subpaving_hwf.cpp diff --git a/lib/subpaving_hwf.h b/src/math/subpaving/subpaving_hwf.h similarity index 100% rename from lib/subpaving_hwf.h rename to src/math/subpaving/subpaving_hwf.h diff --git a/lib/subpaving_mpf.cpp b/src/math/subpaving/subpaving_mpf.cpp similarity index 100% rename from lib/subpaving_mpf.cpp rename to src/math/subpaving/subpaving_mpf.cpp diff --git a/lib/subpaving_mpf.h b/src/math/subpaving/subpaving_mpf.h similarity index 100% rename from lib/subpaving_mpf.h rename to src/math/subpaving/subpaving_mpf.h diff --git a/lib/subpaving_mpff.cpp b/src/math/subpaving/subpaving_mpff.cpp similarity index 100% rename from lib/subpaving_mpff.cpp rename to src/math/subpaving/subpaving_mpff.cpp diff --git a/lib/subpaving_mpff.h b/src/math/subpaving/subpaving_mpff.h similarity index 100% rename from lib/subpaving_mpff.h rename to src/math/subpaving/subpaving_mpff.h diff --git a/lib/subpaving_mpfx.cpp b/src/math/subpaving/subpaving_mpfx.cpp similarity index 100% rename from lib/subpaving_mpfx.cpp rename to src/math/subpaving/subpaving_mpfx.cpp diff --git a/lib/subpaving_mpfx.h b/src/math/subpaving/subpaving_mpfx.h similarity index 100% rename from lib/subpaving_mpfx.h rename to src/math/subpaving/subpaving_mpfx.h diff --git a/lib/subpaving_mpq.cpp b/src/math/subpaving/subpaving_mpq.cpp similarity index 100% rename from lib/subpaving_mpq.cpp rename to src/math/subpaving/subpaving_mpq.cpp diff --git a/lib/subpaving_mpq.h b/src/math/subpaving/subpaving_mpq.h similarity index 100% rename from lib/subpaving_mpq.h rename to src/math/subpaving/subpaving_mpq.h diff --git a/lib/subpaving_t.h b/src/math/subpaving/subpaving_t.h similarity index 100% rename from lib/subpaving_t.h rename to src/math/subpaving/subpaving_t.h diff --git a/lib/subpaving_t_def.h b/src/math/subpaving/subpaving_t_def.h similarity index 100% rename from lib/subpaving_t_def.h rename to src/math/subpaving/subpaving_t_def.h diff --git a/lib/subpaving_types.h b/src/math/subpaving/subpaving_types.h similarity index 100% rename from lib/subpaving_types.h rename to src/math/subpaving/subpaving_types.h diff --git a/lib/expr2subpaving.cpp b/src/math/subpaving/tactic/expr2subpaving.cpp similarity index 100% rename from lib/expr2subpaving.cpp rename to src/math/subpaving/tactic/expr2subpaving.cpp diff --git a/lib/expr2subpaving.h b/src/math/subpaving/tactic/expr2subpaving.h similarity index 100% rename from lib/expr2subpaving.h rename to src/math/subpaving/tactic/expr2subpaving.h diff --git a/lib/subpaving_tactic.cpp b/src/math/subpaving/tactic/subpaving_tactic.cpp similarity index 100% rename from lib/subpaving_tactic.cpp rename to src/math/subpaving/tactic/subpaving_tactic.cpp diff --git a/lib/subpaving_tactic.h b/src/math/subpaving/tactic/subpaving_tactic.h similarity index 100% rename from lib/subpaving_tactic.h rename to src/math/subpaving/tactic/subpaving_tactic.h diff --git a/ml/add_error_checking.V3.sed b/src/ml/add_error_checking.V3.sed similarity index 100% rename from ml/add_error_checking.V3.sed rename to src/ml/add_error_checking.V3.sed diff --git a/ml/add_error_checking.sed b/src/ml/add_error_checking.sed similarity index 100% rename from ml/add_error_checking.sed rename to src/ml/add_error_checking.sed diff --git a/ml/build.cmd b/src/ml/build.cmd similarity index 100% rename from ml/build.cmd rename to src/ml/build.cmd diff --git a/ml/build.sed b/src/ml/build.sed similarity index 100% rename from ml/build.sed rename to src/ml/build.sed diff --git a/ml/clean.cmd b/src/ml/clean.cmd similarity index 100% rename from ml/clean.cmd rename to src/ml/clean.cmd diff --git a/ml/cleantmp.cmd b/src/ml/cleantmp.cmd similarity index 100% rename from ml/cleantmp.cmd rename to src/ml/cleantmp.cmd diff --git a/ml/compile_mlapi.cmd b/src/ml/compile_mlapi.cmd similarity index 100% rename from ml/compile_mlapi.cmd rename to src/ml/compile_mlapi.cmd diff --git a/ml/error_handling.idl b/src/ml/error_handling.idl similarity index 100% rename from ml/error_handling.idl rename to src/ml/error_handling.idl diff --git a/ml/generate_mlapi.cmd b/src/ml/generate_mlapi.cmd similarity index 100% rename from ml/generate_mlapi.cmd rename to src/ml/generate_mlapi.cmd diff --git a/ml/import.cmd b/src/ml/import.cmd similarity index 100% rename from ml/import.cmd rename to src/ml/import.cmd diff --git a/ml/mlx_get_app_args.idl b/src/ml/mlx_get_app_args.idl similarity index 100% rename from ml/mlx_get_app_args.idl rename to src/ml/mlx_get_app_args.idl diff --git a/ml/mlx_get_array_sort.idl b/src/ml/mlx_get_array_sort.idl similarity index 100% rename from ml/mlx_get_array_sort.idl rename to src/ml/mlx_get_array_sort.idl diff --git a/ml/mlx_get_datatype_sort.idl b/src/ml/mlx_get_datatype_sort.idl similarity index 100% rename from ml/mlx_get_datatype_sort.idl rename to src/ml/mlx_get_datatype_sort.idl diff --git a/ml/mlx_get_domains.idl b/src/ml/mlx_get_domains.idl similarity index 100% rename from ml/mlx_get_domains.idl rename to src/ml/mlx_get_domains.idl diff --git a/ml/mlx_get_error_msg.idl b/src/ml/mlx_get_error_msg.idl similarity index 100% rename from ml/mlx_get_error_msg.idl rename to src/ml/mlx_get_error_msg.idl diff --git a/ml/mlx_get_pattern_terms.idl b/src/ml/mlx_get_pattern_terms.idl similarity index 100% rename from ml/mlx_get_pattern_terms.idl rename to src/ml/mlx_get_pattern_terms.idl diff --git a/ml/mlx_get_tuple_sort.idl b/src/ml/mlx_get_tuple_sort.idl similarity index 100% rename from ml/mlx_get_tuple_sort.idl rename to src/ml/mlx_get_tuple_sort.idl diff --git a/ml/mlx_mk_context_x.idl b/src/ml/mlx_mk_context_x.idl similarity index 100% rename from ml/mlx_mk_context_x.idl rename to src/ml/mlx_mk_context_x.idl diff --git a/ml/mlx_mk_datatypes.idl b/src/ml/mlx_mk_datatypes.idl similarity index 100% rename from ml/mlx_mk_datatypes.idl rename to src/ml/mlx_mk_datatypes.idl diff --git a/ml/mlx_mk_numeral.idl b/src/ml/mlx_mk_numeral.idl similarity index 100% rename from ml/mlx_mk_numeral.idl rename to src/ml/mlx_mk_numeral.idl diff --git a/ml/mlx_mk_sort.idl b/src/ml/mlx_mk_sort.idl similarity index 100% rename from ml/mlx_mk_sort.idl rename to src/ml/mlx_mk_sort.idl diff --git a/ml/mlx_mk_symbol.idl b/src/ml/mlx_mk_symbol.idl similarity index 100% rename from ml/mlx_mk_symbol.idl rename to src/ml/mlx_mk_symbol.idl diff --git a/ml/mlx_model.idl b/src/ml/mlx_model.idl similarity index 100% rename from ml/mlx_model.idl rename to src/ml/mlx_model.idl diff --git a/ml/mlx_numeral_refine.idl b/src/ml/mlx_numeral_refine.idl similarity index 100% rename from ml/mlx_numeral_refine.idl rename to src/ml/mlx_numeral_refine.idl diff --git a/ml/mlx_parse_smtlib.idl b/src/ml/mlx_parse_smtlib.idl similarity index 100% rename from ml/mlx_parse_smtlib.idl rename to src/ml/mlx_parse_smtlib.idl diff --git a/ml/mlx_sort_refine.idl b/src/ml/mlx_sort_refine.idl similarity index 100% rename from ml/mlx_sort_refine.idl rename to src/ml/mlx_sort_refine.idl diff --git a/ml/mlx_statistics.idl b/src/ml/mlx_statistics.idl similarity index 100% rename from ml/mlx_statistics.idl rename to src/ml/mlx_statistics.idl diff --git a/ml/mlx_symbol_refine.idl b/src/ml/mlx_symbol_refine.idl similarity index 100% rename from ml/mlx_symbol_refine.idl rename to src/ml/mlx_symbol_refine.idl diff --git a/ml/mlx_term_refine.idl b/src/ml/mlx_term_refine.idl similarity index 100% rename from ml/mlx_term_refine.idl rename to src/ml/mlx_term_refine.idl diff --git a/ml/queen.ml b/src/ml/queen.ml similarity index 100% rename from ml/queen.ml rename to src/ml/queen.ml diff --git a/ml/queen.regress.err b/src/ml/queen.regress.err similarity index 100% rename from ml/queen.regress.err rename to src/ml/queen.regress.err diff --git a/ml/queen.regress.out b/src/ml/queen.regress.out similarity index 100% rename from ml/queen.regress.out rename to src/ml/queen.regress.out diff --git a/ml/test_capi.regress.err b/src/ml/test_capi.regress.err similarity index 100% rename from ml/test_capi.regress.err rename to src/ml/test_capi.regress.err diff --git a/ml/test_capi.regress.out b/src/ml/test_capi.regress.out similarity index 100% rename from ml/test_capi.regress.out rename to src/ml/test_capi.regress.out diff --git a/ml/test_mlapi.cmd b/src/ml/test_mlapi.cmd similarity index 100% rename from ml/test_mlapi.cmd rename to src/ml/test_mlapi.cmd diff --git a/ml/test_mlapi.ml b/src/ml/test_mlapi.ml similarity index 100% rename from ml/test_mlapi.ml rename to src/ml/test_mlapi.ml diff --git a/ml/test_mlapi.regress.err b/src/ml/test_mlapi.regress.err similarity index 100% rename from ml/test_mlapi.regress.err rename to src/ml/test_mlapi.regress.err diff --git a/ml/test_mlapi.regress.out b/src/ml/test_mlapi.regress.out similarity index 100% rename from ml/test_mlapi.regress.out rename to src/ml/test_mlapi.regress.out diff --git a/ml/test_mlapiV3.ml b/src/ml/test_mlapiV3.ml similarity index 100% rename from ml/test_mlapiV3.ml rename to src/ml/test_mlapiV3.ml diff --git a/ml/test_mlapiV3.regress.err b/src/ml/test_mlapiV3.regress.err similarity index 100% rename from ml/test_mlapiV3.regress.err rename to src/ml/test_mlapiV3.regress.err diff --git a/ml/test_mlapiV3.regress.out b/src/ml/test_mlapiV3.regress.out similarity index 100% rename from ml/test_mlapiV3.regress.out rename to src/ml/test_mlapiV3.regress.out diff --git a/ml/test_theory.ml b/src/ml/test_theory.ml similarity index 100% rename from ml/test_theory.ml rename to src/ml/test_theory.ml diff --git a/ml/update-ml-doc.cmd b/src/ml/update-ml-doc.cmd similarity index 100% rename from ml/update-ml-doc.cmd rename to src/ml/update-ml-doc.cmd diff --git a/ml/x3.ml b/src/ml/x3.ml similarity index 100% rename from ml/x3.ml rename to src/ml/x3.ml diff --git a/ml/x3V3.ml b/src/ml/x3V3.ml similarity index 100% rename from ml/x3V3.ml rename to src/ml/x3V3.ml diff --git a/ml/x3V3.mli b/src/ml/x3V3.mli similarity index 100% rename from ml/x3V3.mli rename to src/ml/x3V3.mli diff --git a/ml/z3.idl b/src/ml/z3.idl similarity index 100% rename from ml/z3.idl rename to src/ml/z3.idl diff --git a/ml/z3.ml b/src/ml/z3.ml similarity index 100% rename from ml/z3.ml rename to src/ml/z3.ml diff --git a/ml/z3.mli b/src/ml/z3.mli similarity index 100% rename from ml/z3.mli rename to src/ml/z3.mli diff --git a/ml/z3_stubs.c b/src/ml/z3_stubs.c similarity index 100% rename from ml/z3_stubs.c rename to src/ml/z3_stubs.c diff --git a/ml/z3_theory_stubs.c b/src/ml/z3_theory_stubs.c similarity index 100% rename from ml/z3_theory_stubs.c rename to src/ml/z3_theory_stubs.c diff --git a/lib/array_factory.cpp b/src/model/array_factory.cpp similarity index 100% rename from lib/array_factory.cpp rename to src/model/array_factory.cpp diff --git a/lib/array_factory.h b/src/model/array_factory.h similarity index 100% rename from lib/array_factory.h rename to src/model/array_factory.h diff --git a/lib/datatype_factory.cpp b/src/model/datatype_factory.cpp similarity index 100% rename from lib/datatype_factory.cpp rename to src/model/datatype_factory.cpp diff --git a/lib/datatype_factory.h b/src/model/datatype_factory.h similarity index 100% rename from lib/datatype_factory.h rename to src/model/datatype_factory.h diff --git a/lib/func_interp.cpp b/src/model/func_interp.cpp similarity index 100% rename from lib/func_interp.cpp rename to src/model/func_interp.cpp diff --git a/lib/func_interp.h b/src/model/func_interp.h similarity index 100% rename from lib/func_interp.h rename to src/model/func_interp.h diff --git a/lib/model.cpp b/src/model/model.cpp similarity index 99% rename from lib/model.cpp rename to src/model/model.cpp index 9f2569ce5..4a9767cb0 100644 --- a/lib/model.cpp +++ b/src/model/model.cpp @@ -20,7 +20,6 @@ Revision History: #include"ast_pp.h" #include"ast_ll_pp.h" #include"var_subst.h" -#include"front_end_params.h" #include"array_decl_plugin.h" #include"well_sorted.h" #include"used_symbols.h" diff --git a/lib/model.h b/src/model/model.h similarity index 100% rename from lib/model.h rename to src/model/model.h diff --git a/lib/model_core.cpp b/src/model/model_core.cpp similarity index 100% rename from lib/model_core.cpp rename to src/model/model_core.cpp diff --git a/lib/model_core.h b/src/model/model_core.h similarity index 100% rename from lib/model_core.h rename to src/model/model_core.h diff --git a/lib/model_evaluator.cpp b/src/model/model_evaluator.cpp similarity index 100% rename from lib/model_evaluator.cpp rename to src/model/model_evaluator.cpp diff --git a/lib/model_evaluator.h b/src/model/model_evaluator.h similarity index 100% rename from lib/model_evaluator.h rename to src/model/model_evaluator.h diff --git a/lib/model_params.cpp b/src/model/model_params.cpp similarity index 100% rename from lib/model_params.cpp rename to src/model/model_params.cpp diff --git a/lib/model_params.h b/src/model/model_params.h similarity index 100% rename from lib/model_params.h rename to src/model/model_params.h diff --git a/lib/model_pp.cpp b/src/model/model_pp.cpp similarity index 100% rename from lib/model_pp.cpp rename to src/model/model_pp.cpp diff --git a/lib/model_pp.h b/src/model/model_pp.h similarity index 100% rename from lib/model_pp.h rename to src/model/model_pp.h diff --git a/lib/model_smt2_pp.cpp b/src/model/model_smt2_pp.cpp similarity index 77% rename from lib/model_smt2_pp.cpp rename to src/model/model_smt2_pp.cpp index 031c5d151..1a639b5f1 100644 --- a/lib/model_smt2_pp.cpp +++ b/src/model/model_smt2_pp.cpp @@ -17,6 +17,7 @@ Revision History: --*/ +#include #include"model_smt2_pp.h" #include"ast_smt2_pp.h" #include"func_decl_dependencies.h" @@ -47,53 +48,8 @@ static unsigned pp_symbol(std::ostream & out, symbol const & s) { #define TAB_SZ 2 -class model_smt2_pp_ctx { -public: - virtual ast_manager & m() const = 0; - virtual void display(std::ostream & out, sort * s, unsigned indent = 0) = 0; - virtual void display(std::ostream & out, expr * n, unsigned indent = 0) = 0; - virtual void pp(sort * s, format_ns::format_ref & r) = 0; - virtual void pp(func_decl * f, format_ns::format_ref & r) = 0; - virtual void pp(expr * n, format_ns::format_ref & r) = 0; - virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) = 0; -}; - -class model_smt2_pp_cmd_ctx : public model_smt2_pp_ctx { - cmd_context & m_ctx; -public: - model_smt2_pp_cmd_ctx(cmd_context & ctx):m_ctx(ctx) {} - virtual ast_manager & m() const { return m_ctx.m(); } - virtual void display(std::ostream & out, sort * s, unsigned indent = 0) { m_ctx.display(out, s, indent); } - virtual void display(std::ostream & out, expr * n, unsigned indent = 0) { m_ctx.display(out, n, indent); } - virtual void pp(sort * s, format_ns::format_ref & r) { r = m_ctx.pp(s); } - virtual void pp(func_decl * f, format_ns::format_ref & r) { return m_ctx.pp(f, r); } - virtual void pp(expr * n, format_ns::format_ref & r) { return m_ctx.pp(n, r); } - virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) { - return m_ctx.pp(n, num_vars, var_prefix, r, var_names); - } -}; - -class model_smt2_pp_simple_ctx : public model_smt2_pp_ctx { - ast_manager & m_manager; - smt2_pp_environment_dbg m_env; -public: - model_smt2_pp_simple_ctx(ast_manager & m):m_manager(m), m_env(m) {} - virtual ast_manager & m() const { return m_manager; } - virtual void display(std::ostream & out, sort * s, unsigned indent = 0) { out << mk_ismt2_pp(s, m(), indent); } - virtual void display(std::ostream & out, expr * n, unsigned indent = 0) { out << mk_ismt2_pp(n, m(), indent); } - virtual void pp(sort * s, format_ns::format_ref & r) { mk_smt2_format(s, m_env, get_pp_default_params(), r); } - virtual void pp(func_decl * f, format_ns::format_ref & r) { mk_smt2_format(f, m_env, get_pp_default_params(), r); } - virtual void pp(expr * n, format_ns::format_ref & r) { - sbuffer buf; - mk_smt2_format(n, m_env, get_pp_default_params(), 0, 0, r, buf); - } - virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) { - mk_smt2_format(n, m_env, get_pp_default_params(), num_vars, var_prefix, r, var_names); - } -}; - -static void pp_uninterp_sorts(std::ostream & out, model_smt2_pp_ctx & ctx, model_core const & md, unsigned indent) { - ast_manager & m = ctx.m(); +static void pp_uninterp_sorts(std::ostream & out, ast_printer_context & ctx, model_core const & md, unsigned indent) { + ast_manager & m = ctx.get_ast_manager(); ptr_buffer f_conds; unsigned num = md.get_num_uninterpreted_sorts(); for (unsigned i = 0; i < num; i++) { @@ -179,7 +135,7 @@ static void pp_uninterp_sorts(std::ostream & out, model_smt2_pp_ctx & ctx, model } } -static void pp_consts(std::ostream & out, model_smt2_pp_ctx & ctx, model_core const & md, unsigned indent) { +static void pp_consts(std::ostream & out, ast_printer_context & ctx, model_core const & md, unsigned indent) { unsigned num = md.get_num_constants(); for (unsigned i = 0; i < num; i++) { func_decl * c = md.get_constant(i); @@ -233,8 +189,8 @@ void sort_fun_decls(ast_manager & m, model_core const & md, ptr_buffer var_names; ptr_buffer f_var_names; ptr_buffer f_arg_decls; @@ -333,16 +289,16 @@ static void pp_funs(std::ostream & out, model_smt2_pp_ctx & ctx, model_core cons } } -void model_smt2_pp(std::ostream & out, cmd_context & ctx, model_core const & m, unsigned indent) { - model_smt2_pp_cmd_ctx _ctx(ctx); - pp_uninterp_sorts(out, _ctx, m, indent); - pp_consts(out, _ctx, m, indent); - pp_funs(out, _ctx, m, indent); +void model_smt2_pp(std::ostream & out, ast_printer_context & ctx, model_core const & m, unsigned indent) { + pp_uninterp_sorts(out, ctx, m, indent); + pp_consts(out, ctx, m, indent); + pp_funs(out, ctx, m, indent); } void model_smt2_pp(std::ostream & out, ast_manager & m, model_core const & md, unsigned indent) { - model_smt2_pp_simple_ctx _ctx(m); - pp_uninterp_sorts(out, _ctx, md, indent); - pp_consts(out, _ctx, md, indent); - pp_funs(out, _ctx, md, indent); + scoped_ptr ctx; + ctx = mk_simple_ast_printer_context(m); + pp_uninterp_sorts(out, *(ctx.get()), md, indent); + pp_consts(out, *(ctx.get()), md, indent); + pp_funs(out, *(ctx.get()), md, indent); } diff --git a/lib/model_smt2_pp.h b/src/model/model_smt2_pp.h similarity index 70% rename from lib/model_smt2_pp.h rename to src/model/model_smt2_pp.h index 29a7cddf2..0b76a8bed 100644 --- a/lib/model_smt2_pp.h +++ b/src/model/model_smt2_pp.h @@ -20,9 +20,10 @@ Revision History: #ifndef _MODEL_SMT2_PP_H_ #define _MODEL_SMT2_PP_H_ -#include"cmd_context.h" +#include"ast_printer.h" +#include"model_core.h" -void model_smt2_pp(std::ostream & out, cmd_context & ctx, model_core const & m, unsigned indent); +void model_smt2_pp(std::ostream & out, ast_printer_context & ctx, model_core const & m, unsigned indent); void model_smt2_pp(std::ostream & out, ast_manager & m, model_core const & md, unsigned indent); #endif diff --git a/lib/model_v2_pp.cpp b/src/model/model_v2_pp.cpp similarity index 100% rename from lib/model_v2_pp.cpp rename to src/model/model_v2_pp.cpp diff --git a/lib/model_v2_pp.h b/src/model/model_v2_pp.h similarity index 100% rename from lib/model_v2_pp.h rename to src/model/model_v2_pp.h diff --git a/lib/numeral_factory.cpp b/src/model/numeral_factory.cpp similarity index 100% rename from lib/numeral_factory.cpp rename to src/model/numeral_factory.cpp diff --git a/lib/numeral_factory.h b/src/model/numeral_factory.h similarity index 100% rename from lib/numeral_factory.h rename to src/model/numeral_factory.h diff --git a/lib/proto_model.cpp b/src/model/proto_model.cpp similarity index 99% rename from lib/proto_model.cpp rename to src/model/proto_model.cpp index 34f017eb8..4b5d201b9 100644 --- a/lib/proto_model.cpp +++ b/src/model/proto_model.cpp @@ -20,7 +20,6 @@ Revision History: #include"ast_pp.h" #include"ast_ll_pp.h" #include"var_subst.h" -#include"front_end_params.h" #include"array_decl_plugin.h" #include"well_sorted.h" #include"used_symbols.h" diff --git a/lib/proto_model.h b/src/model/proto_model.h similarity index 100% rename from lib/proto_model.h rename to src/model/proto_model.h diff --git a/lib/struct_factory.cpp b/src/model/struct_factory.cpp similarity index 100% rename from lib/struct_factory.cpp rename to src/model/struct_factory.cpp diff --git a/lib/struct_factory.h b/src/model/struct_factory.h similarity index 100% rename from lib/struct_factory.h rename to src/model/struct_factory.h diff --git a/lib/value_factory.cpp b/src/model/value_factory.cpp similarity index 100% rename from lib/value_factory.cpp rename to src/model/value_factory.cpp diff --git a/lib/value_factory.h b/src/model/value_factory.h similarity index 100% rename from lib/value_factory.h rename to src/model/value_factory.h diff --git a/src/muz_qe/README b/src/muz_qe/README new file mode 100644 index 000000000..5d6f433b8 --- /dev/null +++ b/src/muz_qe/README @@ -0,0 +1 @@ +muZ and Quantifier Elimination modules \ No newline at end of file diff --git a/lib/arith_bounds_tactic.cpp b/src/muz_qe/arith_bounds_tactic.cpp similarity index 100% rename from lib/arith_bounds_tactic.cpp rename to src/muz_qe/arith_bounds_tactic.cpp diff --git a/lib/arith_bounds_tactic.h b/src/muz_qe/arith_bounds_tactic.h similarity index 100% rename from lib/arith_bounds_tactic.h rename to src/muz_qe/arith_bounds_tactic.h diff --git a/lib/datalog_parser.cpp b/src/muz_qe/datalog_parser.cpp similarity index 100% rename from lib/datalog_parser.cpp rename to src/muz_qe/datalog_parser.cpp diff --git a/lib/datalog_parser.h b/src/muz_qe/datalog_parser.h similarity index 100% rename from lib/datalog_parser.h rename to src/muz_qe/datalog_parser.h diff --git a/lib/dl_base.cpp b/src/muz_qe/dl_base.cpp similarity index 100% rename from lib/dl_base.cpp rename to src/muz_qe/dl_base.cpp diff --git a/lib/dl_base.h b/src/muz_qe/dl_base.h similarity index 100% rename from lib/dl_base.h rename to src/muz_qe/dl_base.h diff --git a/lib/dl_bmc_engine.cpp b/src/muz_qe/dl_bmc_engine.cpp similarity index 100% rename from lib/dl_bmc_engine.cpp rename to src/muz_qe/dl_bmc_engine.cpp diff --git a/lib/dl_bmc_engine.h b/src/muz_qe/dl_bmc_engine.h similarity index 100% rename from lib/dl_bmc_engine.h rename to src/muz_qe/dl_bmc_engine.h diff --git a/lib/dl_bound_relation.cpp b/src/muz_qe/dl_bound_relation.cpp similarity index 100% rename from lib/dl_bound_relation.cpp rename to src/muz_qe/dl_bound_relation.cpp diff --git a/lib/dl_bound_relation.h b/src/muz_qe/dl_bound_relation.h similarity index 100% rename from lib/dl_bound_relation.h rename to src/muz_qe/dl_bound_relation.h diff --git a/lib/dl_check_table.cpp b/src/muz_qe/dl_check_table.cpp similarity index 100% rename from lib/dl_check_table.cpp rename to src/muz_qe/dl_check_table.cpp diff --git a/lib/dl_check_table.h b/src/muz_qe/dl_check_table.h similarity index 100% rename from lib/dl_check_table.h rename to src/muz_qe/dl_check_table.h diff --git a/lib/dl_cmds.cpp b/src/muz_qe/dl_cmds.cpp similarity index 100% rename from lib/dl_cmds.cpp rename to src/muz_qe/dl_cmds.cpp diff --git a/lib/dl_cmds.h b/src/muz_qe/dl_cmds.h similarity index 100% rename from lib/dl_cmds.h rename to src/muz_qe/dl_cmds.h diff --git a/lib/dl_compiler.cpp b/src/muz_qe/dl_compiler.cpp similarity index 100% rename from lib/dl_compiler.cpp rename to src/muz_qe/dl_compiler.cpp diff --git a/lib/dl_compiler.h b/src/muz_qe/dl_compiler.h similarity index 100% rename from lib/dl_compiler.h rename to src/muz_qe/dl_compiler.h diff --git a/lib/dl_context.cpp b/src/muz_qe/dl_context.cpp similarity index 99% rename from lib/dl_context.cpp rename to src/muz_qe/dl_context.cpp index 96a7ecb29..b72e6353a 100644 --- a/lib/dl_context.cpp +++ b/src/muz_qe/dl_context.cpp @@ -44,7 +44,6 @@ Revision History: #include"dl_compiler.h" #include"dl_instruction.h" #include"dl_context.h" -#include"dl_simplifier_plugin.h" #include"dl_smt_relation.h" #ifndef _EXTERNAL_RELEASE #include"dl_skip_table.h" diff --git a/lib/dl_context.h b/src/muz_qe/dl_context.h similarity index 100% rename from lib/dl_context.h rename to src/muz_qe/dl_context.h diff --git a/lib/dl_costs.cpp b/src/muz_qe/dl_costs.cpp similarity index 100% rename from lib/dl_costs.cpp rename to src/muz_qe/dl_costs.cpp diff --git a/lib/dl_costs.h b/src/muz_qe/dl_costs.h similarity index 100% rename from lib/dl_costs.h rename to src/muz_qe/dl_costs.h diff --git a/lib/dl_external_relation.cpp b/src/muz_qe/dl_external_relation.cpp similarity index 100% rename from lib/dl_external_relation.cpp rename to src/muz_qe/dl_external_relation.cpp diff --git a/lib/dl_external_relation.h b/src/muz_qe/dl_external_relation.h similarity index 100% rename from lib/dl_external_relation.h rename to src/muz_qe/dl_external_relation.h diff --git a/lib/dl_finite_product_relation.cpp b/src/muz_qe/dl_finite_product_relation.cpp similarity index 100% rename from lib/dl_finite_product_relation.cpp rename to src/muz_qe/dl_finite_product_relation.cpp diff --git a/lib/dl_finite_product_relation.h b/src/muz_qe/dl_finite_product_relation.h similarity index 100% rename from lib/dl_finite_product_relation.h rename to src/muz_qe/dl_finite_product_relation.h diff --git a/lib/dl_instruction.cpp b/src/muz_qe/dl_instruction.cpp similarity index 100% rename from lib/dl_instruction.cpp rename to src/muz_qe/dl_instruction.cpp diff --git a/lib/dl_instruction.h b/src/muz_qe/dl_instruction.h similarity index 100% rename from lib/dl_instruction.h rename to src/muz_qe/dl_instruction.h diff --git a/lib/dl_interval_relation.cpp b/src/muz_qe/dl_interval_relation.cpp similarity index 100% rename from lib/dl_interval_relation.cpp rename to src/muz_qe/dl_interval_relation.cpp diff --git a/lib/dl_interval_relation.h b/src/muz_qe/dl_interval_relation.h similarity index 100% rename from lib/dl_interval_relation.h rename to src/muz_qe/dl_interval_relation.h diff --git a/lib/dl_mk_bit_blast.cpp b/src/muz_qe/dl_mk_bit_blast.cpp similarity index 100% rename from lib/dl_mk_bit_blast.cpp rename to src/muz_qe/dl_mk_bit_blast.cpp diff --git a/lib/dl_mk_bit_blast.h b/src/muz_qe/dl_mk_bit_blast.h similarity index 100% rename from lib/dl_mk_bit_blast.h rename to src/muz_qe/dl_mk_bit_blast.h diff --git a/lib/dl_mk_coalesce.cpp b/src/muz_qe/dl_mk_coalesce.cpp similarity index 100% rename from lib/dl_mk_coalesce.cpp rename to src/muz_qe/dl_mk_coalesce.cpp diff --git a/lib/dl_mk_coalesce.h b/src/muz_qe/dl_mk_coalesce.h similarity index 100% rename from lib/dl_mk_coalesce.h rename to src/muz_qe/dl_mk_coalesce.h diff --git a/lib/dl_mk_coi_filter.cpp b/src/muz_qe/dl_mk_coi_filter.cpp similarity index 100% rename from lib/dl_mk_coi_filter.cpp rename to src/muz_qe/dl_mk_coi_filter.cpp diff --git a/lib/dl_mk_coi_filter.h b/src/muz_qe/dl_mk_coi_filter.h similarity index 100% rename from lib/dl_mk_coi_filter.h rename to src/muz_qe/dl_mk_coi_filter.h diff --git a/lib/dl_mk_explanations.cpp b/src/muz_qe/dl_mk_explanations.cpp similarity index 100% rename from lib/dl_mk_explanations.cpp rename to src/muz_qe/dl_mk_explanations.cpp diff --git a/lib/dl_mk_explanations.h b/src/muz_qe/dl_mk_explanations.h similarity index 100% rename from lib/dl_mk_explanations.h rename to src/muz_qe/dl_mk_explanations.h diff --git a/lib/dl_mk_filter_rules.cpp b/src/muz_qe/dl_mk_filter_rules.cpp similarity index 100% rename from lib/dl_mk_filter_rules.cpp rename to src/muz_qe/dl_mk_filter_rules.cpp diff --git a/lib/dl_mk_filter_rules.h b/src/muz_qe/dl_mk_filter_rules.h similarity index 100% rename from lib/dl_mk_filter_rules.h rename to src/muz_qe/dl_mk_filter_rules.h diff --git a/lib/dl_mk_interp_tail_simplifier.cpp b/src/muz_qe/dl_mk_interp_tail_simplifier.cpp similarity index 100% rename from lib/dl_mk_interp_tail_simplifier.cpp rename to src/muz_qe/dl_mk_interp_tail_simplifier.cpp diff --git a/lib/dl_mk_interp_tail_simplifier.h b/src/muz_qe/dl_mk_interp_tail_simplifier.h similarity index 100% rename from lib/dl_mk_interp_tail_simplifier.h rename to src/muz_qe/dl_mk_interp_tail_simplifier.h diff --git a/lib/dl_mk_magic_sets.cpp b/src/muz_qe/dl_mk_magic_sets.cpp similarity index 100% rename from lib/dl_mk_magic_sets.cpp rename to src/muz_qe/dl_mk_magic_sets.cpp diff --git a/lib/dl_mk_magic_sets.h b/src/muz_qe/dl_mk_magic_sets.h similarity index 100% rename from lib/dl_mk_magic_sets.h rename to src/muz_qe/dl_mk_magic_sets.h diff --git a/lib/dl_mk_partial_equiv.cpp b/src/muz_qe/dl_mk_partial_equiv.cpp similarity index 100% rename from lib/dl_mk_partial_equiv.cpp rename to src/muz_qe/dl_mk_partial_equiv.cpp diff --git a/lib/dl_mk_partial_equiv.h b/src/muz_qe/dl_mk_partial_equiv.h similarity index 100% rename from lib/dl_mk_partial_equiv.h rename to src/muz_qe/dl_mk_partial_equiv.h diff --git a/lib/dl_mk_rule_inliner.cpp b/src/muz_qe/dl_mk_rule_inliner.cpp similarity index 100% rename from lib/dl_mk_rule_inliner.cpp rename to src/muz_qe/dl_mk_rule_inliner.cpp diff --git a/lib/dl_mk_rule_inliner.h b/src/muz_qe/dl_mk_rule_inliner.h similarity index 100% rename from lib/dl_mk_rule_inliner.h rename to src/muz_qe/dl_mk_rule_inliner.h diff --git a/lib/dl_mk_similarity_compressor.cpp b/src/muz_qe/dl_mk_similarity_compressor.cpp similarity index 100% rename from lib/dl_mk_similarity_compressor.cpp rename to src/muz_qe/dl_mk_similarity_compressor.cpp diff --git a/lib/dl_mk_similarity_compressor.h b/src/muz_qe/dl_mk_similarity_compressor.h similarity index 100% rename from lib/dl_mk_similarity_compressor.h rename to src/muz_qe/dl_mk_similarity_compressor.h diff --git a/lib/dl_mk_simple_joins.cpp b/src/muz_qe/dl_mk_simple_joins.cpp similarity index 100% rename from lib/dl_mk_simple_joins.cpp rename to src/muz_qe/dl_mk_simple_joins.cpp diff --git a/lib/dl_mk_simple_joins.h b/src/muz_qe/dl_mk_simple_joins.h similarity index 100% rename from lib/dl_mk_simple_joins.h rename to src/muz_qe/dl_mk_simple_joins.h diff --git a/lib/dl_mk_slice.cpp b/src/muz_qe/dl_mk_slice.cpp similarity index 100% rename from lib/dl_mk_slice.cpp rename to src/muz_qe/dl_mk_slice.cpp diff --git a/lib/dl_mk_slice.h b/src/muz_qe/dl_mk_slice.h similarity index 100% rename from lib/dl_mk_slice.h rename to src/muz_qe/dl_mk_slice.h diff --git a/lib/dl_mk_subsumption_checker.cpp b/src/muz_qe/dl_mk_subsumption_checker.cpp similarity index 100% rename from lib/dl_mk_subsumption_checker.cpp rename to src/muz_qe/dl_mk_subsumption_checker.cpp diff --git a/lib/dl_mk_subsumption_checker.h b/src/muz_qe/dl_mk_subsumption_checker.h similarity index 100% rename from lib/dl_mk_subsumption_checker.h rename to src/muz_qe/dl_mk_subsumption_checker.h diff --git a/lib/dl_mk_unbound_compressor.cpp b/src/muz_qe/dl_mk_unbound_compressor.cpp similarity index 100% rename from lib/dl_mk_unbound_compressor.cpp rename to src/muz_qe/dl_mk_unbound_compressor.cpp diff --git a/lib/dl_mk_unbound_compressor.h b/src/muz_qe/dl_mk_unbound_compressor.h similarity index 100% rename from lib/dl_mk_unbound_compressor.h rename to src/muz_qe/dl_mk_unbound_compressor.h diff --git a/lib/dl_mk_unfold.cpp b/src/muz_qe/dl_mk_unfold.cpp similarity index 100% rename from lib/dl_mk_unfold.cpp rename to src/muz_qe/dl_mk_unfold.cpp diff --git a/lib/dl_mk_unfold.h b/src/muz_qe/dl_mk_unfold.h similarity index 100% rename from lib/dl_mk_unfold.h rename to src/muz_qe/dl_mk_unfold.h diff --git a/lib/dl_product_relation.cpp b/src/muz_qe/dl_product_relation.cpp similarity index 100% rename from lib/dl_product_relation.cpp rename to src/muz_qe/dl_product_relation.cpp diff --git a/lib/dl_product_relation.h b/src/muz_qe/dl_product_relation.h similarity index 100% rename from lib/dl_product_relation.h rename to src/muz_qe/dl_product_relation.h diff --git a/lib/dl_relation_manager.cpp b/src/muz_qe/dl_relation_manager.cpp similarity index 100% rename from lib/dl_relation_manager.cpp rename to src/muz_qe/dl_relation_manager.cpp diff --git a/lib/dl_relation_manager.h b/src/muz_qe/dl_relation_manager.h similarity index 100% rename from lib/dl_relation_manager.h rename to src/muz_qe/dl_relation_manager.h diff --git a/lib/dl_rule.cpp b/src/muz_qe/dl_rule.cpp similarity index 100% rename from lib/dl_rule.cpp rename to src/muz_qe/dl_rule.cpp diff --git a/lib/dl_rule.h b/src/muz_qe/dl_rule.h similarity index 100% rename from lib/dl_rule.h rename to src/muz_qe/dl_rule.h diff --git a/lib/dl_rule_set.cpp b/src/muz_qe/dl_rule_set.cpp similarity index 100% rename from lib/dl_rule_set.cpp rename to src/muz_qe/dl_rule_set.cpp diff --git a/lib/dl_rule_set.h b/src/muz_qe/dl_rule_set.h similarity index 100% rename from lib/dl_rule_set.h rename to src/muz_qe/dl_rule_set.h diff --git a/lib/dl_rule_subsumption_index.cpp b/src/muz_qe/dl_rule_subsumption_index.cpp similarity index 100% rename from lib/dl_rule_subsumption_index.cpp rename to src/muz_qe/dl_rule_subsumption_index.cpp diff --git a/lib/dl_rule_subsumption_index.h b/src/muz_qe/dl_rule_subsumption_index.h similarity index 100% rename from lib/dl_rule_subsumption_index.h rename to src/muz_qe/dl_rule_subsumption_index.h diff --git a/lib/dl_rule_transformer.cpp b/src/muz_qe/dl_rule_transformer.cpp similarity index 100% rename from lib/dl_rule_transformer.cpp rename to src/muz_qe/dl_rule_transformer.cpp diff --git a/lib/dl_rule_transformer.h b/src/muz_qe/dl_rule_transformer.h similarity index 100% rename from lib/dl_rule_transformer.h rename to src/muz_qe/dl_rule_transformer.h diff --git a/lib/dl_sieve_relation.cpp b/src/muz_qe/dl_sieve_relation.cpp similarity index 100% rename from lib/dl_sieve_relation.cpp rename to src/muz_qe/dl_sieve_relation.cpp diff --git a/lib/dl_sieve_relation.h b/src/muz_qe/dl_sieve_relation.h similarity index 100% rename from lib/dl_sieve_relation.h rename to src/muz_qe/dl_sieve_relation.h diff --git a/lib/dl_skip_table.cpp b/src/muz_qe/dl_skip_table.cpp similarity index 100% rename from lib/dl_skip_table.cpp rename to src/muz_qe/dl_skip_table.cpp diff --git a/lib/dl_skip_table.h b/src/muz_qe/dl_skip_table.h similarity index 100% rename from lib/dl_skip_table.h rename to src/muz_qe/dl_skip_table.h diff --git a/lib/dl_smt_relation.cpp b/src/muz_qe/dl_smt_relation.cpp similarity index 100% rename from lib/dl_smt_relation.cpp rename to src/muz_qe/dl_smt_relation.cpp diff --git a/lib/dl_smt_relation.h b/src/muz_qe/dl_smt_relation.h similarity index 100% rename from lib/dl_smt_relation.h rename to src/muz_qe/dl_smt_relation.h diff --git a/lib/dl_sparse_table.cpp b/src/muz_qe/dl_sparse_table.cpp similarity index 100% rename from lib/dl_sparse_table.cpp rename to src/muz_qe/dl_sparse_table.cpp diff --git a/lib/dl_sparse_table.h b/src/muz_qe/dl_sparse_table.h similarity index 100% rename from lib/dl_sparse_table.h rename to src/muz_qe/dl_sparse_table.h diff --git a/lib/dl_table.cpp b/src/muz_qe/dl_table.cpp similarity index 100% rename from lib/dl_table.cpp rename to src/muz_qe/dl_table.cpp diff --git a/lib/dl_table.h b/src/muz_qe/dl_table.h similarity index 100% rename from lib/dl_table.h rename to src/muz_qe/dl_table.h diff --git a/lib/dl_table_plugin.h b/src/muz_qe/dl_table_plugin.h similarity index 100% rename from lib/dl_table_plugin.h rename to src/muz_qe/dl_table_plugin.h diff --git a/lib/dl_table_relation.cpp b/src/muz_qe/dl_table_relation.cpp similarity index 100% rename from lib/dl_table_relation.cpp rename to src/muz_qe/dl_table_relation.cpp diff --git a/lib/dl_table_relation.h b/src/muz_qe/dl_table_relation.h similarity index 100% rename from lib/dl_table_relation.h rename to src/muz_qe/dl_table_relation.h diff --git a/lib/dl_util.cpp b/src/muz_qe/dl_util.cpp similarity index 100% rename from lib/dl_util.cpp rename to src/muz_qe/dl_util.cpp diff --git a/lib/dl_util.h b/src/muz_qe/dl_util.h similarity index 100% rename from lib/dl_util.h rename to src/muz_qe/dl_util.h diff --git a/lib/dl_vector_relation.h b/src/muz_qe/dl_vector_relation.h similarity index 100% rename from lib/dl_vector_relation.h rename to src/muz_qe/dl_vector_relation.h diff --git a/lib/horn_subsume_model_converter.cpp b/src/muz_qe/horn_subsume_model_converter.cpp similarity index 99% rename from lib/horn_subsume_model_converter.cpp rename to src/muz_qe/horn_subsume_model_converter.cpp index 83061ca6f..a203a9fee 100644 --- a/lib/horn_subsume_model_converter.cpp +++ b/src/muz_qe/horn_subsume_model_converter.cpp @@ -24,6 +24,7 @@ Revision History: #include "model_smt2_pp.h" #include "bool_rewriter.h" #include "th_rewriter.h" +#include "for_each_expr.h" void horn_subsume_model_converter::insert(app* head, expr* body) { func_decl_ref pred(m); diff --git a/lib/horn_subsume_model_converter.h b/src/muz_qe/horn_subsume_model_converter.h similarity index 100% rename from lib/horn_subsume_model_converter.h rename to src/muz_qe/horn_subsume_model_converter.h diff --git a/lib/model2expr.cpp b/src/muz_qe/model2expr.cpp similarity index 100% rename from lib/model2expr.cpp rename to src/muz_qe/model2expr.cpp diff --git a/lib/model2expr.h b/src/muz_qe/model2expr.h similarity index 100% rename from lib/model2expr.h rename to src/muz_qe/model2expr.h diff --git a/lib/nlarith_util.cpp b/src/muz_qe/nlarith_util.cpp similarity index 100% rename from lib/nlarith_util.cpp rename to src/muz_qe/nlarith_util.cpp diff --git a/lib/nlarith_util.h b/src/muz_qe/nlarith_util.h similarity index 100% rename from lib/nlarith_util.h rename to src/muz_qe/nlarith_util.h diff --git a/lib/pdr_context.cpp b/src/muz_qe/pdr_context.cpp similarity index 99% rename from lib/pdr_context.cpp rename to src/muz_qe/pdr_context.cpp index 9d82ce149..6f9f4e967 100644 --- a/lib/pdr_context.cpp +++ b/src/muz_qe/pdr_context.cpp @@ -715,14 +715,14 @@ namespace pdr { pred_transformer& p = pt(); ast_manager& m = p.get_manager(); manager& pm = p.get_pdr_manager(); - TRACE("pdr", model_v2_pp(tout, model());); + TRACE("pdr", model_v2_pp(tout, get_model());); func_decl* f = p.head(); unsigned arity = f->get_arity(); expr_ref_vector args(m); func_decl_ref v(m); for (unsigned i = 0; i < arity; ++i) { v = pm.o2n(p.sig(i),0); - expr* e = model().get_const_interp(v); + expr* e = get_model().get_const_interp(v); if (e) { args.push_back(e); } diff --git a/lib/pdr_context.h b/src/muz_qe/pdr_context.h similarity index 99% rename from lib/pdr_context.h rename to src/muz_qe/pdr_context.h index 2a4e91c3e..b83aaa7c3 100644 --- a/lib/pdr_context.h +++ b/src/muz_qe/pdr_context.h @@ -196,7 +196,7 @@ namespace pdr { pred_transformer& pt() const { return m_pt; } model_node* parent() const { return m_parent; } model* model_ptr() const { return m_model.get(); } - model const& model() const { return *m_model; } + model const& get_model() const { return *m_model; } unsigned index() const; bool is_closed() const { return m_closed; } diff --git a/lib/pdr_dl_interface.cpp b/src/muz_qe/pdr_dl_interface.cpp similarity index 100% rename from lib/pdr_dl_interface.cpp rename to src/muz_qe/pdr_dl_interface.cpp diff --git a/lib/pdr_dl_interface.h b/src/muz_qe/pdr_dl_interface.h similarity index 100% rename from lib/pdr_dl_interface.h rename to src/muz_qe/pdr_dl_interface.h diff --git a/lib/pdr_farkas_learner.cpp b/src/muz_qe/pdr_farkas_learner.cpp similarity index 99% rename from lib/pdr_farkas_learner.cpp rename to src/muz_qe/pdr_farkas_learner.cpp index 6494bd223..00bb5d723 100644 --- a/lib/pdr_farkas_learner.cpp +++ b/src/muz_qe/pdr_farkas_learner.cpp @@ -29,11 +29,11 @@ Revision History: #include "pdr_util.h" #include "pdr_farkas_learner.h" #include "th_rewriter.h" -#include "smtparser.h" #include "pdr_interpolant_provider.h" #include "ast_ll_pp.h" #include "arith_bounds_tactic.h" #include "proof_utils.h" +#include "reg_decl_plugins.h" #define PROOF_MODE PGM_FINE //#define PROOF_MODE PGM_COARSE @@ -250,7 +250,7 @@ namespace pdr { p2o(m_pr, outer_mgr), o2p(outer_mgr, m_pr) { - m_pr.register_decl_plugins(); + reg_decl_plugins(m_pr); m_ctx = alloc(smt::solver, m_pr, m_proof_params); } @@ -801,7 +801,7 @@ namespace pdr { bool res; ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util a(m); pdr::farkas_learner fl(params, m); expr_ref_vector lemmas(m); @@ -858,12 +858,14 @@ namespace pdr { void farkas_learner::test(char const* filename) { +#if 0 + // [Leo]: disabled because it uses an external component: SMT 1.0 parser if (!filename) { test(); return; } ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); scoped_ptr p = smtlib::parser::create(m); p->initialize_smtlib(); @@ -886,6 +888,7 @@ namespace pdr { expr_ref_vector lemmas(m); bool res = fl.get_lemma_guesses(A, B, lemmas); std::cout << "lemmas: " << pp_cube(lemmas, m) << "\n"; +#endif } }; diff --git a/lib/pdr_farkas_learner.h b/src/muz_qe/pdr_farkas_learner.h similarity index 99% rename from lib/pdr_farkas_learner.h rename to src/muz_qe/pdr_farkas_learner.h index e068b5537..888947049 100644 --- a/lib/pdr_farkas_learner.h +++ b/src/muz_qe/pdr_farkas_learner.h @@ -24,7 +24,6 @@ Revision History: #include "ast_translation.h" #include "bv_decl_plugin.h" #include "smt_solver.h" -#include "pdr_manager.h" #include "bool_rewriter.h" #include "pdr_util.h" #include "front_end_params.h" diff --git a/lib/pdr_generalizers.cpp b/src/muz_qe/pdr_generalizers.cpp similarity index 100% rename from lib/pdr_generalizers.cpp rename to src/muz_qe/pdr_generalizers.cpp diff --git a/lib/pdr_generalizers.h b/src/muz_qe/pdr_generalizers.h similarity index 100% rename from lib/pdr_generalizers.h rename to src/muz_qe/pdr_generalizers.h diff --git a/lib/pdr_interpolant_provider.cpp b/src/muz_qe/pdr_interpolant_provider.cpp similarity index 100% rename from lib/pdr_interpolant_provider.cpp rename to src/muz_qe/pdr_interpolant_provider.cpp diff --git a/lib/pdr_interpolant_provider.h b/src/muz_qe/pdr_interpolant_provider.h similarity index 100% rename from lib/pdr_interpolant_provider.h rename to src/muz_qe/pdr_interpolant_provider.h diff --git a/lib/pdr_manager.cpp b/src/muz_qe/pdr_manager.cpp similarity index 100% rename from lib/pdr_manager.cpp rename to src/muz_qe/pdr_manager.cpp diff --git a/lib/pdr_manager.h b/src/muz_qe/pdr_manager.h similarity index 100% rename from lib/pdr_manager.h rename to src/muz_qe/pdr_manager.h diff --git a/lib/pdr_prop_solver.cpp b/src/muz_qe/pdr_prop_solver.cpp similarity index 100% rename from lib/pdr_prop_solver.cpp rename to src/muz_qe/pdr_prop_solver.cpp diff --git a/lib/pdr_prop_solver.h b/src/muz_qe/pdr_prop_solver.h similarity index 100% rename from lib/pdr_prop_solver.h rename to src/muz_qe/pdr_prop_solver.h diff --git a/lib/pdr_quantifiers.cpp b/src/muz_qe/pdr_quantifiers.cpp similarity index 99% rename from lib/pdr_quantifiers.cpp rename to src/muz_qe/pdr_quantifiers.cpp index a4e6a0ac1..1a9a6e0e0 100644 --- a/lib/pdr_quantifiers.cpp +++ b/src/muz_qe/pdr_quantifiers.cpp @@ -418,10 +418,10 @@ namespace pdr { // nodes from leaves that are repeated // inside the search tree don't have models. // - if (!(&node.model())) { + if (!(&node.get_model())) { return; } - m_current_rule = &pt.find_rule(node.model()); + m_current_rule = &pt.find_rule(node.get_model()); m_current_pt = &pt; m_current_node = &node; if (!m_current_rule) { diff --git a/lib/pdr_quantifiers.h b/src/muz_qe/pdr_quantifiers.h similarity index 100% rename from lib/pdr_quantifiers.h rename to src/muz_qe/pdr_quantifiers.h diff --git a/lib/pdr_reachable_cache.cpp b/src/muz_qe/pdr_reachable_cache.cpp similarity index 100% rename from lib/pdr_reachable_cache.cpp rename to src/muz_qe/pdr_reachable_cache.cpp diff --git a/lib/pdr_reachable_cache.h b/src/muz_qe/pdr_reachable_cache.h similarity index 100% rename from lib/pdr_reachable_cache.h rename to src/muz_qe/pdr_reachable_cache.h diff --git a/lib/pdr_smt_context_manager.cpp b/src/muz_qe/pdr_smt_context_manager.cpp similarity index 100% rename from lib/pdr_smt_context_manager.cpp rename to src/muz_qe/pdr_smt_context_manager.cpp diff --git a/lib/pdr_smt_context_manager.h b/src/muz_qe/pdr_smt_context_manager.h similarity index 100% rename from lib/pdr_smt_context_manager.h rename to src/muz_qe/pdr_smt_context_manager.h diff --git a/lib/pdr_sym_mux.cpp b/src/muz_qe/pdr_sym_mux.cpp similarity index 100% rename from lib/pdr_sym_mux.cpp rename to src/muz_qe/pdr_sym_mux.cpp diff --git a/lib/pdr_sym_mux.h b/src/muz_qe/pdr_sym_mux.h similarity index 100% rename from lib/pdr_sym_mux.h rename to src/muz_qe/pdr_sym_mux.h diff --git a/lib/pdr_util.cpp b/src/muz_qe/pdr_util.cpp similarity index 99% rename from lib/pdr_util.cpp rename to src/muz_qe/pdr_util.cpp index 1ec358fe1..3e1ebac46 100644 --- a/lib/pdr_util.cpp +++ b/src/muz_qe/pdr_util.cpp @@ -908,9 +908,6 @@ bool model_evaluator::check_model(ptr_vector const& formulas) { m_cfg(m, p) {} }; - template class rewriter_tpl; - - void hoist_non_bool_if(expr_ref& fml) { ast_manager& m = fml.get_manager(); datalog::scoped_no_proof _sp(m); @@ -1039,3 +1036,8 @@ bool model_evaluator::check_model(ptr_vector const& formulas) { } } + +template class rewriter_tpl; + + + diff --git a/lib/pdr_util.h b/src/muz_qe/pdr_util.h similarity index 100% rename from lib/pdr_util.h rename to src/muz_qe/pdr_util.h diff --git a/lib/proof_utils.cpp b/src/muz_qe/proof_utils.cpp similarity index 100% rename from lib/proof_utils.cpp rename to src/muz_qe/proof_utils.cpp diff --git a/lib/proof_utils.h b/src/muz_qe/proof_utils.h similarity index 100% rename from lib/proof_utils.h rename to src/muz_qe/proof_utils.h diff --git a/lib/qe.cpp b/src/muz_qe/qe.cpp similarity index 100% rename from lib/qe.cpp rename to src/muz_qe/qe.cpp diff --git a/lib/qe.h b/src/muz_qe/qe.h similarity index 100% rename from lib/qe.h rename to src/muz_qe/qe.h diff --git a/lib/qe_arith_plugin.cpp b/src/muz_qe/qe_arith_plugin.cpp similarity index 100% rename from lib/qe_arith_plugin.cpp rename to src/muz_qe/qe_arith_plugin.cpp diff --git a/lib/qe_array_plugin.cpp b/src/muz_qe/qe_array_plugin.cpp similarity index 100% rename from lib/qe_array_plugin.cpp rename to src/muz_qe/qe_array_plugin.cpp diff --git a/lib/qe_bool_plugin.cpp b/src/muz_qe/qe_bool_plugin.cpp similarity index 100% rename from lib/qe_bool_plugin.cpp rename to src/muz_qe/qe_bool_plugin.cpp diff --git a/lib/qe_bv_plugin.cpp b/src/muz_qe/qe_bv_plugin.cpp similarity index 100% rename from lib/qe_bv_plugin.cpp rename to src/muz_qe/qe_bv_plugin.cpp diff --git a/lib/qe_cmd.cpp b/src/muz_qe/qe_cmd.cpp similarity index 100% rename from lib/qe_cmd.cpp rename to src/muz_qe/qe_cmd.cpp diff --git a/lib/qe_cmd.h b/src/muz_qe/qe_cmd.h similarity index 100% rename from lib/qe_cmd.h rename to src/muz_qe/qe_cmd.h diff --git a/lib/qe_datatype_plugin.cpp b/src/muz_qe/qe_datatype_plugin.cpp similarity index 100% rename from lib/qe_datatype_plugin.cpp rename to src/muz_qe/qe_datatype_plugin.cpp diff --git a/lib/qe_dl_plugin.cpp b/src/muz_qe/qe_dl_plugin.cpp similarity index 100% rename from lib/qe_dl_plugin.cpp rename to src/muz_qe/qe_dl_plugin.cpp diff --git a/lib/qe_lite.cpp b/src/muz_qe/qe_lite.cpp similarity index 99% rename from lib/qe_lite.cpp rename to src/muz_qe/qe_lite.cpp index d295327da..93a3dbfbf 100644 --- a/lib/qe_lite.cpp +++ b/src/muz_qe/qe_lite.cpp @@ -498,7 +498,7 @@ public: unsigned j = 0; for (unsigned i = 0; i < vars.size(); ++i) { if (used.contains(vars.size()-i-1)) { - vars[j] = vars[i]; + vars.set(j, vars.get(i)); ++j; } } diff --git a/lib/qe_lite.h b/src/muz_qe/qe_lite.h similarity index 100% rename from lib/qe_lite.h rename to src/muz_qe/qe_lite.h diff --git a/lib/qe_sat_tactic.cpp b/src/muz_qe/qe_sat_tactic.cpp similarity index 100% rename from lib/qe_sat_tactic.cpp rename to src/muz_qe/qe_sat_tactic.cpp diff --git a/lib/qe_sat_tactic.h b/src/muz_qe/qe_sat_tactic.h similarity index 100% rename from lib/qe_sat_tactic.h rename to src/muz_qe/qe_sat_tactic.h diff --git a/lib/qe_tactic.cpp b/src/muz_qe/qe_tactic.cpp similarity index 100% rename from lib/qe_tactic.cpp rename to src/muz_qe/qe_tactic.cpp diff --git a/lib/qe_tactic.h b/src/muz_qe/qe_tactic.h similarity index 100% rename from lib/qe_tactic.h rename to src/muz_qe/qe_tactic.h diff --git a/lib/replace_proof_converter.cpp b/src/muz_qe/replace_proof_converter.cpp similarity index 100% rename from lib/replace_proof_converter.cpp rename to src/muz_qe/replace_proof_converter.cpp diff --git a/lib/replace_proof_converter.h b/src/muz_qe/replace_proof_converter.h similarity index 100% rename from lib/replace_proof_converter.h rename to src/muz_qe/replace_proof_converter.h diff --git a/lib/unit_subsumption_tactic.cpp b/src/muz_qe/unit_subsumption_tactic.cpp similarity index 100% rename from lib/unit_subsumption_tactic.cpp rename to src/muz_qe/unit_subsumption_tactic.cpp diff --git a/lib/unit_subsumption_tactic.h b/src/muz_qe/unit_subsumption_tactic.h similarity index 100% rename from lib/unit_subsumption_tactic.h rename to src/muz_qe/unit_subsumption_tactic.h diff --git a/lib/vsubst_tactic.cpp b/src/muz_qe/vsubst_tactic.cpp similarity index 100% rename from lib/vsubst_tactic.cpp rename to src/muz_qe/vsubst_tactic.cpp diff --git a/lib/vsubst_tactic.h b/src/muz_qe/vsubst_tactic.h similarity index 100% rename from lib/vsubst_tactic.h rename to src/muz_qe/vsubst_tactic.h diff --git a/lib/nlsat_assignment.h b/src/nlsat/nlsat_assignment.h similarity index 100% rename from lib/nlsat_assignment.h rename to src/nlsat/nlsat_assignment.h diff --git a/lib/nlsat_clause.cpp b/src/nlsat/nlsat_clause.cpp similarity index 100% rename from lib/nlsat_clause.cpp rename to src/nlsat/nlsat_clause.cpp diff --git a/lib/nlsat_clause.h b/src/nlsat/nlsat_clause.h similarity index 100% rename from lib/nlsat_clause.h rename to src/nlsat/nlsat_clause.h diff --git a/lib/nlsat_evaluator.cpp b/src/nlsat/nlsat_evaluator.cpp similarity index 100% rename from lib/nlsat_evaluator.cpp rename to src/nlsat/nlsat_evaluator.cpp diff --git a/lib/nlsat_evaluator.h b/src/nlsat/nlsat_evaluator.h similarity index 100% rename from lib/nlsat_evaluator.h rename to src/nlsat/nlsat_evaluator.h diff --git a/lib/nlsat_explain.cpp b/src/nlsat/nlsat_explain.cpp similarity index 100% rename from lib/nlsat_explain.cpp rename to src/nlsat/nlsat_explain.cpp diff --git a/lib/nlsat_explain.h b/src/nlsat/nlsat_explain.h similarity index 100% rename from lib/nlsat_explain.h rename to src/nlsat/nlsat_explain.h diff --git a/lib/nlsat_interval_set.cpp b/src/nlsat/nlsat_interval_set.cpp similarity index 100% rename from lib/nlsat_interval_set.cpp rename to src/nlsat/nlsat_interval_set.cpp diff --git a/lib/nlsat_interval_set.h b/src/nlsat/nlsat_interval_set.h similarity index 100% rename from lib/nlsat_interval_set.h rename to src/nlsat/nlsat_interval_set.h diff --git a/lib/nlsat_justification.h b/src/nlsat/nlsat_justification.h similarity index 100% rename from lib/nlsat_justification.h rename to src/nlsat/nlsat_justification.h diff --git a/lib/nlsat_scoped_literal_vector.h b/src/nlsat/nlsat_scoped_literal_vector.h similarity index 100% rename from lib/nlsat_scoped_literal_vector.h rename to src/nlsat/nlsat_scoped_literal_vector.h diff --git a/lib/nlsat_solver.cpp b/src/nlsat/nlsat_solver.cpp similarity index 99% rename from lib/nlsat_solver.cpp rename to src/nlsat/nlsat_solver.cpp index 79ae334e3..b55a0a000 100644 --- a/lib/nlsat_solver.cpp +++ b/src/nlsat/nlsat_solver.cpp @@ -25,7 +25,7 @@ Revision History: #include"nlsat_evaluator.h" #include"nlsat_explain.h" #include"algebraic_numbers.h" -#include"tactic.h" +#include"tactic_exception.h" #include"chashtable.h" #include"id_gen.h" #include"dependency.h" diff --git a/lib/nlsat_solver.h b/src/nlsat/nlsat_solver.h similarity index 100% rename from lib/nlsat_solver.h rename to src/nlsat/nlsat_solver.h diff --git a/lib/nlsat_types.cpp b/src/nlsat/nlsat_types.cpp similarity index 100% rename from lib/nlsat_types.cpp rename to src/nlsat/nlsat_types.cpp diff --git a/lib/nlsat_types.h b/src/nlsat/nlsat_types.h similarity index 100% rename from lib/nlsat_types.h rename to src/nlsat/nlsat_types.h diff --git a/lib/cnf.cpp b/src/normal_forms/cnf.cpp similarity index 100% rename from lib/cnf.cpp rename to src/normal_forms/cnf.cpp diff --git a/lib/cnf.h b/src/normal_forms/cnf.h similarity index 100% rename from lib/cnf.h rename to src/normal_forms/cnf.h diff --git a/lib/defined_names.cpp b/src/normal_forms/defined_names.cpp similarity index 100% rename from lib/defined_names.cpp rename to src/normal_forms/defined_names.cpp diff --git a/lib/defined_names.h b/src/normal_forms/defined_names.h similarity index 100% rename from lib/defined_names.h rename to src/normal_forms/defined_names.h diff --git a/lib/elim_term_ite.cpp b/src/normal_forms/elim_term_ite.cpp similarity index 100% rename from lib/elim_term_ite.cpp rename to src/normal_forms/elim_term_ite.cpp diff --git a/lib/elim_term_ite.h b/src/normal_forms/elim_term_ite.h similarity index 100% rename from lib/elim_term_ite.h rename to src/normal_forms/elim_term_ite.h diff --git a/lib/name_exprs.cpp b/src/normal_forms/name_exprs.cpp similarity index 100% rename from lib/name_exprs.cpp rename to src/normal_forms/name_exprs.cpp diff --git a/lib/name_exprs.h b/src/normal_forms/name_exprs.h similarity index 100% rename from lib/name_exprs.h rename to src/normal_forms/name_exprs.h diff --git a/lib/nnf.cpp b/src/normal_forms/nnf.cpp similarity index 100% rename from lib/nnf.cpp rename to src/normal_forms/nnf.cpp diff --git a/lib/nnf.h b/src/normal_forms/nnf.h similarity index 100% rename from lib/nnf.h rename to src/normal_forms/nnf.h diff --git a/lib/pull_quant.cpp b/src/normal_forms/pull_quant.cpp similarity index 100% rename from lib/pull_quant.cpp rename to src/normal_forms/pull_quant.cpp diff --git a/lib/pull_quant.h b/src/normal_forms/pull_quant.h similarity index 100% rename from lib/pull_quant.h rename to src/normal_forms/pull_quant.h diff --git a/lib/bit_blaster_params.h b/src/old_params/bit_blaster_params.h similarity index 100% rename from lib/bit_blaster_params.h rename to src/old_params/bit_blaster_params.h diff --git a/lib/cnf_params.cpp b/src/old_params/cnf_params.cpp similarity index 100% rename from lib/cnf_params.cpp rename to src/old_params/cnf_params.cpp diff --git a/lib/cnf_params.h b/src/old_params/cnf_params.h similarity index 100% rename from lib/cnf_params.h rename to src/old_params/cnf_params.h diff --git a/lib/dyn_ack_params.cpp b/src/old_params/dyn_ack_params.cpp similarity index 100% rename from lib/dyn_ack_params.cpp rename to src/old_params/dyn_ack_params.cpp diff --git a/lib/dyn_ack_params.h b/src/old_params/dyn_ack_params.h similarity index 100% rename from lib/dyn_ack_params.h rename to src/old_params/dyn_ack_params.h diff --git a/lib/front_end_params.cpp b/src/old_params/front_end_params.cpp similarity index 100% rename from lib/front_end_params.cpp rename to src/old_params/front_end_params.cpp diff --git a/lib/front_end_params.h b/src/old_params/front_end_params.h similarity index 100% rename from lib/front_end_params.h rename to src/old_params/front_end_params.h diff --git a/lib/nnf_params.cpp b/src/old_params/nnf_params.cpp similarity index 100% rename from lib/nnf_params.cpp rename to src/old_params/nnf_params.cpp diff --git a/lib/nnf_params.h b/src/old_params/nnf_params.h similarity index 100% rename from lib/nnf_params.h rename to src/old_params/nnf_params.h diff --git a/lib/order_params.cpp b/src/old_params/order_params.cpp similarity index 100% rename from lib/order_params.cpp rename to src/old_params/order_params.cpp diff --git a/lib/order_params.h b/src/old_params/order_params.h similarity index 100% rename from lib/order_params.h rename to src/old_params/order_params.h diff --git a/lib/params2front_end_params.cpp b/src/old_params/params2front_end_params.cpp similarity index 100% rename from lib/params2front_end_params.cpp rename to src/old_params/params2front_end_params.cpp diff --git a/lib/params2front_end_params.h b/src/old_params/params2front_end_params.h similarity index 100% rename from lib/params2front_end_params.h rename to src/old_params/params2front_end_params.h diff --git a/lib/parser_params.cpp b/src/old_params/parser_params.cpp similarity index 100% rename from lib/parser_params.cpp rename to src/old_params/parser_params.cpp diff --git a/lib/parser_params.h b/src/old_params/parser_params.h similarity index 100% rename from lib/parser_params.h rename to src/old_params/parser_params.h diff --git a/lib/pattern_inference_params.cpp b/src/old_params/pattern_inference_params.cpp similarity index 100% rename from lib/pattern_inference_params.cpp rename to src/old_params/pattern_inference_params.cpp diff --git a/lib/pattern_inference_params.h b/src/old_params/pattern_inference_params.h similarity index 100% rename from lib/pattern_inference_params.h rename to src/old_params/pattern_inference_params.h diff --git a/lib/preprocessor_params.h b/src/old_params/preprocessor_params.h similarity index 100% rename from lib/preprocessor_params.h rename to src/old_params/preprocessor_params.h diff --git a/lib/qi_params.h b/src/old_params/qi_params.h similarity index 100% rename from lib/qi_params.h rename to src/old_params/qi_params.h diff --git a/lib/smt_params.cpp b/src/old_params/smt_params.cpp similarity index 100% rename from lib/smt_params.cpp rename to src/old_params/smt_params.cpp diff --git a/lib/smt_params.h b/src/old_params/smt_params.h similarity index 100% rename from lib/smt_params.h rename to src/old_params/smt_params.h diff --git a/lib/spc_params.cpp b/src/old_params/spc_params.cpp similarity index 100% rename from lib/spc_params.cpp rename to src/old_params/spc_params.cpp diff --git a/lib/spc_params.h b/src/old_params/spc_params.h similarity index 100% rename from lib/spc_params.h rename to src/old_params/spc_params.h diff --git a/lib/theory_arith_params.cpp b/src/old_params/theory_arith_params.cpp similarity index 100% rename from lib/theory_arith_params.cpp rename to src/old_params/theory_arith_params.cpp diff --git a/lib/theory_arith_params.h b/src/old_params/theory_arith_params.h similarity index 100% rename from lib/theory_arith_params.h rename to src/old_params/theory_arith_params.h diff --git a/lib/theory_bv_params.h b/src/old_params/theory_bv_params.h similarity index 100% rename from lib/theory_bv_params.h rename to src/old_params/theory_bv_params.h diff --git a/lib/theory_datatype_params.h b/src/old_params/theory_datatype_params.h similarity index 100% rename from lib/theory_datatype_params.h rename to src/old_params/theory_datatype_params.h diff --git a/lib/z3_solver_params.cpp b/src/old_params/z3_solver_params.cpp similarity index 100% rename from lib/z3_solver_params.cpp rename to src/old_params/z3_solver_params.cpp diff --git a/lib/z3_solver_params.h b/src/old_params/z3_solver_params.h similarity index 100% rename from lib/z3_solver_params.h rename to src/old_params/z3_solver_params.h diff --git a/lib/cost_parser.cpp b/src/parser_util/cost_parser.cpp similarity index 100% rename from lib/cost_parser.cpp rename to src/parser_util/cost_parser.cpp diff --git a/lib/cost_parser.h b/src/parser_util/cost_parser.h similarity index 100% rename from lib/cost_parser.h rename to src/parser_util/cost_parser.h diff --git a/lib/pattern_validation.cpp b/src/parser_util/pattern_validation.cpp similarity index 100% rename from lib/pattern_validation.cpp rename to src/parser_util/pattern_validation.cpp diff --git a/lib/pattern_validation.h b/src/parser_util/pattern_validation.h similarity index 100% rename from lib/pattern_validation.h rename to src/parser_util/pattern_validation.h diff --git a/lib/scanner.cpp b/src/parser_util/scanner.cpp similarity index 100% rename from lib/scanner.cpp rename to src/parser_util/scanner.cpp diff --git a/lib/scanner.h b/src/parser_util/scanner.h similarity index 100% rename from lib/scanner.h rename to src/parser_util/scanner.h diff --git a/lib/simple_parser.cpp b/src/parser_util/simple_parser.cpp similarity index 100% rename from lib/simple_parser.cpp rename to src/parser_util/simple_parser.cpp diff --git a/lib/simple_parser.h b/src/parser_util/simple_parser.h similarity index 100% rename from lib/simple_parser.h rename to src/parser_util/simple_parser.h diff --git a/python/README.txt b/src/python/README.txt similarity index 100% rename from python/README.txt rename to src/python/README.txt diff --git a/python/example.py b/src/python/example.py similarity index 100% rename from python/example.py rename to src/python/example.py diff --git a/python/z3.py b/src/python/z3.py similarity index 100% rename from python/z3.py rename to src/python/z3.py diff --git a/python/z3consts.py b/src/python/z3consts.py similarity index 100% rename from python/z3consts.py rename to src/python/z3consts.py diff --git a/python/z3core.py b/src/python/z3core.py similarity index 100% rename from python/z3core.py rename to src/python/z3core.py diff --git a/python/z3poly.py b/src/python/z3poly.py similarity index 100% rename from python/z3poly.py rename to src/python/z3poly.py diff --git a/python/z3printer.py b/src/python/z3printer.py similarity index 100% rename from python/z3printer.py rename to src/python/z3printer.py diff --git a/python/z3tactics.py b/src/python/z3tactics.py similarity index 100% rename from python/z3tactics.py rename to src/python/z3tactics.py diff --git a/python/z3test.py b/src/python/z3test.py similarity index 100% rename from python/z3test.py rename to src/python/z3test.py diff --git a/python/z3types.py b/src/python/z3types.py similarity index 100% rename from python/z3types.py rename to src/python/z3types.py diff --git a/lib/dimacs.cpp b/src/sat/dimacs.cpp similarity index 100% rename from lib/dimacs.cpp rename to src/sat/dimacs.cpp diff --git a/lib/dimacs.h b/src/sat/dimacs.h similarity index 100% rename from lib/dimacs.h rename to src/sat/dimacs.h diff --git a/lib/sat_asymm_branch.cpp b/src/sat/sat_asymm_branch.cpp similarity index 100% rename from lib/sat_asymm_branch.cpp rename to src/sat/sat_asymm_branch.cpp diff --git a/lib/sat_asymm_branch.h b/src/sat/sat_asymm_branch.h similarity index 100% rename from lib/sat_asymm_branch.h rename to src/sat/sat_asymm_branch.h diff --git a/lib/sat_clause.cpp b/src/sat/sat_clause.cpp similarity index 99% rename from lib/sat_clause.cpp rename to src/sat/sat_clause.cpp index f6d081a83..b5f6521b8 100644 --- a/lib/sat_clause.cpp +++ b/src/sat/sat_clause.cpp @@ -16,7 +16,7 @@ Author: Revision History: --*/ -#include"memory.h" +#include #include"sat_clause.h" #include"z3_exception.h" diff --git a/lib/sat_clause.h b/src/sat/sat_clause.h similarity index 100% rename from lib/sat_clause.h rename to src/sat/sat_clause.h diff --git a/lib/sat_clause_set.cpp b/src/sat/sat_clause_set.cpp similarity index 100% rename from lib/sat_clause_set.cpp rename to src/sat/sat_clause_set.cpp diff --git a/lib/sat_clause_set.h b/src/sat/sat_clause_set.h similarity index 100% rename from lib/sat_clause_set.h rename to src/sat/sat_clause_set.h diff --git a/lib/sat_clause_use_list.cpp b/src/sat/sat_clause_use_list.cpp similarity index 100% rename from lib/sat_clause_use_list.cpp rename to src/sat/sat_clause_use_list.cpp diff --git a/lib/sat_clause_use_list.h b/src/sat/sat_clause_use_list.h similarity index 100% rename from lib/sat_clause_use_list.h rename to src/sat/sat_clause_use_list.h diff --git a/lib/sat_cleaner.cpp b/src/sat/sat_cleaner.cpp similarity index 100% rename from lib/sat_cleaner.cpp rename to src/sat/sat_cleaner.cpp diff --git a/lib/sat_cleaner.h b/src/sat/sat_cleaner.h similarity index 100% rename from lib/sat_cleaner.h rename to src/sat/sat_cleaner.h diff --git a/lib/sat_config.cpp b/src/sat/sat_config.cpp similarity index 100% rename from lib/sat_config.cpp rename to src/sat/sat_config.cpp diff --git a/lib/sat_config.h b/src/sat/sat_config.h similarity index 100% rename from lib/sat_config.h rename to src/sat/sat_config.h diff --git a/lib/sat_elim_eqs.cpp b/src/sat/sat_elim_eqs.cpp similarity index 100% rename from lib/sat_elim_eqs.cpp rename to src/sat/sat_elim_eqs.cpp diff --git a/lib/sat_elim_eqs.h b/src/sat/sat_elim_eqs.h similarity index 100% rename from lib/sat_elim_eqs.h rename to src/sat/sat_elim_eqs.h diff --git a/lib/sat_extension.h b/src/sat/sat_extension.h similarity index 100% rename from lib/sat_extension.h rename to src/sat/sat_extension.h diff --git a/lib/sat_iff3_finder.cpp b/src/sat/sat_iff3_finder.cpp similarity index 100% rename from lib/sat_iff3_finder.cpp rename to src/sat/sat_iff3_finder.cpp diff --git a/lib/sat_iff3_finder.h b/src/sat/sat_iff3_finder.h similarity index 100% rename from lib/sat_iff3_finder.h rename to src/sat/sat_iff3_finder.h diff --git a/lib/sat_integrity_checker.cpp b/src/sat/sat_integrity_checker.cpp similarity index 100% rename from lib/sat_integrity_checker.cpp rename to src/sat/sat_integrity_checker.cpp diff --git a/lib/sat_integrity_checker.h b/src/sat/sat_integrity_checker.h similarity index 100% rename from lib/sat_integrity_checker.h rename to src/sat/sat_integrity_checker.h diff --git a/lib/sat_justification.h b/src/sat/sat_justification.h similarity index 100% rename from lib/sat_justification.h rename to src/sat/sat_justification.h diff --git a/lib/sat_model_converter.cpp b/src/sat/sat_model_converter.cpp similarity index 100% rename from lib/sat_model_converter.cpp rename to src/sat/sat_model_converter.cpp diff --git a/lib/sat_model_converter.h b/src/sat/sat_model_converter.h similarity index 100% rename from lib/sat_model_converter.h rename to src/sat/sat_model_converter.h diff --git a/lib/sat_probing.cpp b/src/sat/sat_probing.cpp similarity index 100% rename from lib/sat_probing.cpp rename to src/sat/sat_probing.cpp diff --git a/lib/sat_probing.h b/src/sat/sat_probing.h similarity index 100% rename from lib/sat_probing.h rename to src/sat/sat_probing.h diff --git a/lib/sat_scc.cpp b/src/sat/sat_scc.cpp similarity index 100% rename from lib/sat_scc.cpp rename to src/sat/sat_scc.cpp diff --git a/lib/sat_scc.h b/src/sat/sat_scc.h similarity index 100% rename from lib/sat_scc.h rename to src/sat/sat_scc.h diff --git a/lib/sat_simplifier.cpp b/src/sat/sat_simplifier.cpp similarity index 100% rename from lib/sat_simplifier.cpp rename to src/sat/sat_simplifier.cpp diff --git a/lib/sat_simplifier.h b/src/sat/sat_simplifier.h similarity index 100% rename from lib/sat_simplifier.h rename to src/sat/sat_simplifier.h diff --git a/lib/sat_solver.cpp b/src/sat/sat_solver.cpp similarity index 99% rename from lib/sat_solver.cpp rename to src/sat/sat_solver.cpp index 3ca32a499..0322e80c5 100644 --- a/lib/sat_solver.cpp +++ b/src/sat/sat_solver.cpp @@ -17,7 +17,6 @@ Revision History: --*/ #include"sat_solver.h" -#include"strategy_exception.h" #include"sat_integrity_checker.h" #include"luby.h" #include"trace.h" diff --git a/lib/sat_solver.h b/src/sat/sat_solver.h similarity index 100% rename from lib/sat_solver.h rename to src/sat/sat_solver.h diff --git a/lib/sat_types.h b/src/sat/sat_types.h similarity index 100% rename from lib/sat_types.h rename to src/sat/sat_types.h diff --git a/lib/sat_var_queue.h b/src/sat/sat_var_queue.h similarity index 100% rename from lib/sat_var_queue.h rename to src/sat/sat_var_queue.h diff --git a/lib/sat_watched.cpp b/src/sat/sat_watched.cpp similarity index 100% rename from lib/sat_watched.cpp rename to src/sat/sat_watched.cpp diff --git a/lib/sat_watched.h b/src/sat/sat_watched.h similarity index 100% rename from lib/sat_watched.h rename to src/sat/sat_watched.h diff --git a/shell/datalog_frontend.cpp b/src/shell/datalog_frontend.cpp similarity index 100% rename from shell/datalog_frontend.cpp rename to src/shell/datalog_frontend.cpp diff --git a/shell/datalog_frontend.h b/src/shell/datalog_frontend.h similarity index 100% rename from shell/datalog_frontend.h rename to src/shell/datalog_frontend.h diff --git a/shell/dimacs_frontend.cpp b/src/shell/dimacs_frontend.cpp similarity index 100% rename from shell/dimacs_frontend.cpp rename to src/shell/dimacs_frontend.cpp diff --git a/shell/dimacs_frontend.h b/src/shell/dimacs_frontend.h similarity index 100% rename from shell/dimacs_frontend.h rename to src/shell/dimacs_frontend.h diff --git a/shell/main.cpp b/src/shell/main.cpp similarity index 100% rename from shell/main.cpp rename to src/shell/main.cpp diff --git a/shell/options.h b/src/shell/options.h similarity index 100% rename from shell/options.h rename to src/shell/options.h diff --git a/shell/resource.h b/src/shell/resource.h similarity index 100% rename from shell/resource.h rename to src/shell/resource.h diff --git a/shell/smtlib_frontend.cpp b/src/shell/smtlib_frontend.cpp similarity index 100% rename from shell/smtlib_frontend.cpp rename to src/shell/smtlib_frontend.cpp diff --git a/shell/smtlib_frontend.h b/src/shell/smtlib_frontend.h similarity index 100% rename from shell/smtlib_frontend.h rename to src/shell/smtlib_frontend.h diff --git a/shell/z3_log_frontend.cpp b/src/shell/z3_log_frontend.cpp similarity index 100% rename from shell/z3_log_frontend.cpp rename to src/shell/z3_log_frontend.cpp diff --git a/shell/z3_log_frontend.h b/src/shell/z3_log_frontend.h similarity index 100% rename from shell/z3_log_frontend.h rename to src/shell/z3_log_frontend.h diff --git a/lib/arith_eq_adapter.cpp b/src/smt/arith_eq_adapter.cpp similarity index 100% rename from lib/arith_eq_adapter.cpp rename to src/smt/arith_eq_adapter.cpp diff --git a/lib/arith_eq_adapter.h b/src/smt/arith_eq_adapter.h similarity index 100% rename from lib/arith_eq_adapter.h rename to src/smt/arith_eq_adapter.h diff --git a/lib/arith_eq_solver.cpp b/src/smt/arith_eq_solver.cpp similarity index 100% rename from lib/arith_eq_solver.cpp rename to src/smt/arith_eq_solver.cpp diff --git a/lib/arith_eq_solver.h b/src/smt/arith_eq_solver.h similarity index 100% rename from lib/arith_eq_solver.h rename to src/smt/arith_eq_solver.h diff --git a/lib/arith_solver_plugin.cpp b/src/smt/arith_solver_plugin.cpp similarity index 100% rename from lib/arith_solver_plugin.cpp rename to src/smt/arith_solver_plugin.cpp diff --git a/lib/arith_solver_plugin.h b/src/smt/arith_solver_plugin.h similarity index 100% rename from lib/arith_solver_plugin.h rename to src/smt/arith_solver_plugin.h diff --git a/lib/asserted_formulas.cpp b/src/smt/asserted_formulas.cpp similarity index 99% rename from lib/asserted_formulas.cpp rename to src/smt/asserted_formulas.cpp index 4fb476500..ab6d10019 100644 --- a/lib/asserted_formulas.cpp +++ b/src/smt/asserted_formulas.cpp @@ -42,9 +42,7 @@ Revision History: #include"warning.h" #include"eager_bit_blaster.h" #include"bit2int.h" -#include"qe.h" #include"distribute_forall.h" -#include"ufbv_rewriter.h" #include"quasi_macros.h" asserted_formulas::asserted_formulas(ast_manager & m, front_end_params & p): @@ -64,7 +62,6 @@ asserted_formulas::asserted_formulas(ast_manager & m, front_end_params & p): m_bv_sharing(m), m_user_rewriter(m), m_inconsistent(false), - m_quant_elim(m, p), m_cancel_flag(false) { m_bsimp = 0; @@ -574,10 +571,9 @@ void asserted_formulas::display_ll(std::ostream & out, ast_mark & pp_visited) co } void asserted_formulas::collect_statistics(statistics & st) const { - m_quant_elim.collect_statistics(st); + // m_quant_elim.collect_statistics(st); } - /** \brief Functor used to order solved equations x = t, in a way they can be solved efficiently. @@ -950,6 +946,7 @@ void asserted_formulas::expand_macros() { } void asserted_formulas::apply_demodulators() { +#if 0 IF_IVERBOSE(10, verbose_stream() << "applying demodulators...\n";); TRACE("before_apply_demodulators", display(tout);); expr_ref_vector new_exprs(m_manager); @@ -963,6 +960,7 @@ void asserted_formulas::apply_demodulators() { swap_asserted_formulas(new_exprs, new_prs); TRACE("after_apply_demodulators", display(tout);); reduce_and_solve(); +#endif } void asserted_formulas::apply_quasi_macros() { @@ -1107,7 +1105,7 @@ void asserted_formulas::reduce_and_solve() { void asserted_formulas::infer_patterns() { IF_IVERBOSE(10, verbose_stream() << "pattern inference...\n";); TRACE("before_pattern_inference", display(tout);); - pattern_inference infer(m_manager, m_params); + pattern_inference infer(m_manager, m_params, m_database.get()); expr_ref_vector new_exprs(m_manager); proof_ref_vector new_prs(m_manager); unsigned i = m_asserted_qhead; @@ -1433,8 +1431,13 @@ void asserted_formulas::apply_der() { MK_SIMPLIFIER(cheap_quant_fourier_motzkin, elim_bounds_star functor(m_manager), "elim_bounds", "cheap fourier-motzkin", true); -MK_SIMPLIFIER(quant_elim, qe::expr_quant_elim_star1 &functor = m_quant_elim, - "quantifiers", "quantifier elimination procedures", true); +// MK_SIMPLIFIER(quant_elim, qe::expr_quant_elim_star1 &functor = m_quant_elim, +// "quantifiers", "quantifier elimination procedures", true); + +bool asserted_formulas::quant_elim() { + throw default_exception("QUANT_ELIM option is deprecated, please consider using the 'qe' tactic."); + return false; +} MK_SIMPLIFIER(apply_eager_bit_blaster, eager_bit_blaster functor(m_manager, m_params), "eager_bb", "eager bit blasting", false); diff --git a/lib/asserted_formulas.h b/src/smt/asserted_formulas.h similarity index 89% rename from lib/asserted_formulas.h rename to src/smt/asserted_formulas.h index 6ea0e793b..62f3528c3 100644 --- a/lib/asserted_formulas.h +++ b/src/smt/asserted_formulas.h @@ -29,25 +29,26 @@ Revision History: #include"solver_plugin.h" #include"maximise_ac_sharing.h" #include"bit2int.h" -#include"qe.h" #include"statistics.h" #include"user_rewriter.h" +#include"pattern_inference.h" class arith_simplifier_plugin; class bv_simplifier_plugin; class asserted_formulas { - ast_manager & m_manager; - front_end_params & m_params; - simplifier m_pre_simplifier; - subst_simplifier m_simplifier; - basic_simplifier_plugin * m_bsimp; - bv_simplifier_plugin * m_bvsimp; - defined_names m_defined_names; - static_features m_static_features; - expr_ref_vector m_asserted_formulas; // formulas asserted by user - proof_ref_vector m_asserted_formula_prs; // proofs for the asserted formulas. - unsigned m_asserted_qhead; + ast_manager & m_manager; + front_end_params & m_params; + scoped_ptr m_database; + simplifier m_pre_simplifier; + subst_simplifier m_simplifier; + basic_simplifier_plugin * m_bsimp; + bv_simplifier_plugin * m_bvsimp; + defined_names m_defined_names; + static_features m_static_features; + expr_ref_vector m_asserted_formulas; // formulas asserted by user + proof_ref_vector m_asserted_formula_prs; // proofs for the asserted formulas. + unsigned m_asserted_qhead; expr_map m_subst; ptr_vector m_vars; // domain of m_subst @@ -69,7 +70,7 @@ class asserted_formulas { user_rewriter m_user_rewriter; bool m_inconsistent; - qe::expr_quant_elim_star1 m_quant_elim; + // qe::expr_quant_elim_star1 m_quant_elim; struct scope { unsigned m_asserted_formulas_lim; @@ -166,6 +167,8 @@ public: void collect_statistics(statistics & st) const; // TODO: improve precision of the following method. bool has_quantifiers() const { return m_simplifier.visited_quantifier(); /* approximation */ } + + void set_pattern_database(pattern_database * db) { m_database = db; } // ----------------------------------- // diff --git a/lib/cached_var_subst.cpp b/src/smt/cached_var_subst.cpp similarity index 100% rename from lib/cached_var_subst.cpp rename to src/smt/cached_var_subst.cpp diff --git a/lib/cached_var_subst.h b/src/smt/cached_var_subst.h similarity index 100% rename from lib/cached_var_subst.h rename to src/smt/cached_var_subst.h diff --git a/lib/cost_evaluator.cpp b/src/smt/cost_evaluator.cpp similarity index 100% rename from lib/cost_evaluator.cpp rename to src/smt/cost_evaluator.cpp diff --git a/lib/cost_evaluator.h b/src/smt/cost_evaluator.h similarity index 100% rename from lib/cost_evaluator.h rename to src/smt/cost_evaluator.h diff --git a/lib/ctx_solver_simplify_tactic.cpp b/src/smt/ctx_solver_simplify_tactic.cpp similarity index 100% rename from lib/ctx_solver_simplify_tactic.cpp rename to src/smt/ctx_solver_simplify_tactic.cpp diff --git a/lib/ctx_solver_simplify_tactic.h b/src/smt/ctx_solver_simplify_tactic.h similarity index 100% rename from lib/ctx_solver_simplify_tactic.h rename to src/smt/ctx_solver_simplify_tactic.h diff --git a/lib/database.h b/src/smt/database.h similarity index 100% rename from lib/database.h rename to src/smt/database.h diff --git a/lib/database.smt b/src/smt/database.smt similarity index 100% rename from lib/database.smt rename to src/smt/database.smt diff --git a/lib/solver.cpp b/src/smt/default_solver.cpp similarity index 90% rename from lib/solver.cpp rename to src/smt/default_solver.cpp index fd2be70d3..ad611763b 100644 --- a/lib/solver.cpp +++ b/src/smt/default_solver.cpp @@ -1,37 +1,24 @@ /*++ -Copyright (c) 2011 Microsoft Corporation +Copyright (c) 2012 Microsoft Corporation Module Name: - solver.h + default_solver.cpp Abstract: - abstract solver interface + Wrapps smt::solver as a solver for cmd_context Author: - Leonardo (leonardo) 2011-03-19 + Leonardo (leonardo) 2012-10-21 Notes: --*/ #include"solver.h" #include"smt_solver.h" - -unsigned solver::get_num_assertions() const { - NOT_IMPLEMENTED_YET(); - return 0; -} - -expr * solver::get_assertion(unsigned idx) const { - NOT_IMPLEMENTED_YET(); - return 0; -} - -void solver::display(std::ostream & out) const { - out << "(solver)"; -} +#include"reg_decl_plugins.h" class default_solver : public solver { front_end_params * m_params; @@ -57,7 +44,7 @@ public: virtual void collect_param_descrs(param_descrs & r) { if (m_context == 0) { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); front_end_params p; smt::solver s(m, p); s.collect_param_descrs(r); diff --git a/src/smt/default_solver.h b/src/smt/default_solver.h new file mode 100644 index 000000000..170a55e56 --- /dev/null +++ b/src/smt/default_solver.h @@ -0,0 +1,26 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + default_solver.h + +Abstract: + + Wrapps smt::solver as a solver for cmd_context + +Author: + + Leonardo (leonardo) 2012-10-21 + +Notes: + +--*/ +#ifndef _DEFAULT_SOLVER_H_ +#define _DEFAULT_SOLVER_H_ + +class solver; + +solver * mk_default_solver(); + +#endif diff --git a/lib/dyn_ack.cpp b/src/smt/dyn_ack.cpp similarity index 100% rename from lib/dyn_ack.cpp rename to src/smt/dyn_ack.cpp diff --git a/lib/dyn_ack.h b/src/smt/dyn_ack.h similarity index 100% rename from lib/dyn_ack.h rename to src/smt/dyn_ack.h diff --git a/lib/expr_context_simplifier.cpp b/src/smt/expr_context_simplifier.cpp similarity index 100% rename from lib/expr_context_simplifier.cpp rename to src/smt/expr_context_simplifier.cpp diff --git a/lib/expr_context_simplifier.h b/src/smt/expr_context_simplifier.h similarity index 100% rename from lib/expr_context_simplifier.h rename to src/smt/expr_context_simplifier.h diff --git a/lib/fingerprints.cpp b/src/smt/fingerprints.cpp similarity index 100% rename from lib/fingerprints.cpp rename to src/smt/fingerprints.cpp diff --git a/lib/fingerprints.h b/src/smt/fingerprints.h similarity index 100% rename from lib/fingerprints.h rename to src/smt/fingerprints.h diff --git a/lib/mam.cpp b/src/smt/mam.cpp similarity index 100% rename from lib/mam.cpp rename to src/smt/mam.cpp diff --git a/lib/mam.h b/src/smt/mam.h similarity index 100% rename from lib/mam.h rename to src/smt/mam.h diff --git a/lib/mk_database.sh b/src/smt/mk_database.sh similarity index 100% rename from lib/mk_database.sh rename to src/smt/mk_database.sh diff --git a/lib/ni_solver.cpp b/src/smt/ni_solver.cpp similarity index 100% rename from lib/ni_solver.cpp rename to src/smt/ni_solver.cpp diff --git a/lib/ni_solver.h b/src/smt/ni_solver.h similarity index 100% rename from lib/ni_solver.h rename to src/smt/ni_solver.h diff --git a/lib/qi_queue.cpp b/src/smt/qi_queue.cpp similarity index 100% rename from lib/qi_queue.cpp rename to src/smt/qi_queue.cpp diff --git a/lib/qi_queue.h b/src/smt/qi_queue.h similarity index 100% rename from lib/qi_queue.h rename to src/smt/qi_queue.h diff --git a/lib/smt_almost_cg_table.cpp b/src/smt/smt_almost_cg_table.cpp similarity index 100% rename from lib/smt_almost_cg_table.cpp rename to src/smt/smt_almost_cg_table.cpp diff --git a/lib/smt_almost_cg_table.h b/src/smt/smt_almost_cg_table.h similarity index 100% rename from lib/smt_almost_cg_table.h rename to src/smt/smt_almost_cg_table.h diff --git a/lib/smt_b_justification.h b/src/smt/smt_b_justification.h similarity index 100% rename from lib/smt_b_justification.h rename to src/smt/smt_b_justification.h diff --git a/lib/smt_bool_var_data.h b/src/smt/smt_bool_var_data.h similarity index 100% rename from lib/smt_bool_var_data.h rename to src/smt/smt_bool_var_data.h diff --git a/lib/smt_case_split_queue.cpp b/src/smt/smt_case_split_queue.cpp similarity index 100% rename from lib/smt_case_split_queue.cpp rename to src/smt/smt_case_split_queue.cpp diff --git a/lib/smt_case_split_queue.h b/src/smt/smt_case_split_queue.h similarity index 100% rename from lib/smt_case_split_queue.h rename to src/smt/smt_case_split_queue.h diff --git a/lib/smt_cg_table.cpp b/src/smt/smt_cg_table.cpp similarity index 100% rename from lib/smt_cg_table.cpp rename to src/smt/smt_cg_table.cpp diff --git a/lib/smt_cg_table.h b/src/smt/smt_cg_table.h similarity index 100% rename from lib/smt_cg_table.h rename to src/smt/smt_cg_table.h diff --git a/lib/smt_checker.cpp b/src/smt/smt_checker.cpp similarity index 100% rename from lib/smt_checker.cpp rename to src/smt/smt_checker.cpp diff --git a/lib/smt_checker.h b/src/smt/smt_checker.h similarity index 100% rename from lib/smt_checker.h rename to src/smt/smt_checker.h diff --git a/lib/smt_clause.cpp b/src/smt/smt_clause.cpp similarity index 100% rename from lib/smt_clause.cpp rename to src/smt/smt_clause.cpp diff --git a/lib/smt_clause.h b/src/smt/smt_clause.h similarity index 100% rename from lib/smt_clause.h rename to src/smt/smt_clause.h diff --git a/lib/smt_conflict_resolution.cpp b/src/smt/smt_conflict_resolution.cpp similarity index 100% rename from lib/smt_conflict_resolution.cpp rename to src/smt/smt_conflict_resolution.cpp diff --git a/lib/smt_conflict_resolution.h b/src/smt/smt_conflict_resolution.h similarity index 100% rename from lib/smt_conflict_resolution.h rename to src/smt/smt_conflict_resolution.h diff --git a/lib/smt_context.cpp b/src/smt/smt_context.cpp similarity index 100% rename from lib/smt_context.cpp rename to src/smt/smt_context.cpp diff --git a/lib/smt_context.h b/src/smt/smt_context.h similarity index 100% rename from lib/smt_context.h rename to src/smt/smt_context.h diff --git a/lib/smt_context_inv.cpp b/src/smt/smt_context_inv.cpp similarity index 100% rename from lib/smt_context_inv.cpp rename to src/smt/smt_context_inv.cpp diff --git a/lib/smt_context_pp.cpp b/src/smt/smt_context_pp.cpp similarity index 100% rename from lib/smt_context_pp.cpp rename to src/smt/smt_context_pp.cpp diff --git a/lib/smt_context_stat.cpp b/src/smt/smt_context_stat.cpp similarity index 100% rename from lib/smt_context_stat.cpp rename to src/smt/smt_context_stat.cpp diff --git a/lib/smt_enode.cpp b/src/smt/smt_enode.cpp similarity index 100% rename from lib/smt_enode.cpp rename to src/smt/smt_enode.cpp diff --git a/lib/smt_enode.h b/src/smt/smt_enode.h similarity index 100% rename from lib/smt_enode.h rename to src/smt/smt_enode.h diff --git a/lib/smt_eq_justification.h b/src/smt/smt_eq_justification.h similarity index 100% rename from lib/smt_eq_justification.h rename to src/smt/smt_eq_justification.h diff --git a/lib/smt_failure.h b/src/smt/smt_failure.h similarity index 100% rename from lib/smt_failure.h rename to src/smt/smt_failure.h diff --git a/lib/smt_for_each_relevant_expr.cpp b/src/smt/smt_for_each_relevant_expr.cpp similarity index 100% rename from lib/smt_for_each_relevant_expr.cpp rename to src/smt/smt_for_each_relevant_expr.cpp diff --git a/lib/smt_for_each_relevant_expr.h b/src/smt/smt_for_each_relevant_expr.h similarity index 100% rename from lib/smt_for_each_relevant_expr.h rename to src/smt/smt_for_each_relevant_expr.h diff --git a/lib/smt_implied_equalities.cpp b/src/smt/smt_implied_equalities.cpp similarity index 100% rename from lib/smt_implied_equalities.cpp rename to src/smt/smt_implied_equalities.cpp diff --git a/lib/smt_implied_equalities.h b/src/smt/smt_implied_equalities.h similarity index 100% rename from lib/smt_implied_equalities.h rename to src/smt/smt_implied_equalities.h diff --git a/lib/smt_internalizer.cpp b/src/smt/smt_internalizer.cpp similarity index 100% rename from lib/smt_internalizer.cpp rename to src/smt/smt_internalizer.cpp diff --git a/lib/smt_justification.cpp b/src/smt/smt_justification.cpp similarity index 100% rename from lib/smt_justification.cpp rename to src/smt/smt_justification.cpp diff --git a/lib/smt_justification.h b/src/smt/smt_justification.h similarity index 100% rename from lib/smt_justification.h rename to src/smt/smt_justification.h diff --git a/lib/smt_literal.cpp b/src/smt/smt_literal.cpp similarity index 100% rename from lib/smt_literal.cpp rename to src/smt/smt_literal.cpp diff --git a/lib/smt_literal.h b/src/smt/smt_literal.h similarity index 100% rename from lib/smt_literal.h rename to src/smt/smt_literal.h diff --git a/lib/smt_model_checker.cpp b/src/smt/smt_model_checker.cpp similarity index 100% rename from lib/smt_model_checker.cpp rename to src/smt/smt_model_checker.cpp diff --git a/lib/smt_model_checker.h b/src/smt/smt_model_checker.h similarity index 100% rename from lib/smt_model_checker.h rename to src/smt/smt_model_checker.h diff --git a/lib/smt_model_finder.cpp b/src/smt/smt_model_finder.cpp similarity index 100% rename from lib/smt_model_finder.cpp rename to src/smt/smt_model_finder.cpp diff --git a/lib/smt_model_finder.h b/src/smt/smt_model_finder.h similarity index 100% rename from lib/smt_model_finder.h rename to src/smt/smt_model_finder.h diff --git a/lib/smt_model_generator.cpp b/src/smt/smt_model_generator.cpp similarity index 100% rename from lib/smt_model_generator.cpp rename to src/smt/smt_model_generator.cpp diff --git a/lib/smt_model_generator.h b/src/smt/smt_model_generator.h similarity index 100% rename from lib/smt_model_generator.h rename to src/smt/smt_model_generator.h diff --git a/lib/smt_quantifier.cpp b/src/smt/smt_quantifier.cpp similarity index 100% rename from lib/smt_quantifier.cpp rename to src/smt/smt_quantifier.cpp diff --git a/lib/smt_quantifier.h b/src/smt/smt_quantifier.h similarity index 100% rename from lib/smt_quantifier.h rename to src/smt/smt_quantifier.h diff --git a/lib/smt_quantifier_instances.h b/src/smt/smt_quantifier_instances.h similarity index 100% rename from lib/smt_quantifier_instances.h rename to src/smt/smt_quantifier_instances.h diff --git a/lib/smt_quantifier_stat.cpp b/src/smt/smt_quantifier_stat.cpp similarity index 100% rename from lib/smt_quantifier_stat.cpp rename to src/smt/smt_quantifier_stat.cpp diff --git a/lib/smt_quantifier_stat.h b/src/smt/smt_quantifier_stat.h similarity index 100% rename from lib/smt_quantifier_stat.h rename to src/smt/smt_quantifier_stat.h diff --git a/lib/smt_quick_checker.cpp b/src/smt/smt_quick_checker.cpp similarity index 100% rename from lib/smt_quick_checker.cpp rename to src/smt/smt_quick_checker.cpp diff --git a/lib/smt_quick_checker.h b/src/smt/smt_quick_checker.h similarity index 100% rename from lib/smt_quick_checker.h rename to src/smt/smt_quick_checker.h diff --git a/lib/smt_relevancy.cpp b/src/smt/smt_relevancy.cpp similarity index 100% rename from lib/smt_relevancy.cpp rename to src/smt/smt_relevancy.cpp diff --git a/lib/smt_relevancy.h b/src/smt/smt_relevancy.h similarity index 100% rename from lib/smt_relevancy.h rename to src/smt/smt_relevancy.h diff --git a/lib/smt_setup.cpp b/src/smt/smt_setup.cpp similarity index 100% rename from lib/smt_setup.cpp rename to src/smt/smt_setup.cpp diff --git a/lib/smt_setup.h b/src/smt/smt_setup.h similarity index 100% rename from lib/smt_setup.h rename to src/smt/smt_setup.h diff --git a/lib/smt_solver.cpp b/src/smt/smt_solver.cpp similarity index 100% rename from lib/smt_solver.cpp rename to src/smt/smt_solver.cpp diff --git a/lib/smt_solver.h b/src/smt/smt_solver.h similarity index 100% rename from lib/smt_solver.h rename to src/smt/smt_solver.h diff --git a/src/smt/smt_solver_strategy.cpp b/src/smt/smt_solver_strategy.cpp new file mode 100644 index 000000000..a7cd8a6b8 --- /dev/null +++ b/src/smt/smt_solver_strategy.cpp @@ -0,0 +1,182 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + smt_solver_strategy.cpp + +Abstract: + + Wraps a solver as an assertion_set strategy. + **Temporary code** + It should be deleted when we finish porting the assertion_set code to the tactic framework. + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#include"smt_solver_strategy.h" +#include"smt_solver.h" +#include"front_end_params.h" +#include"params2front_end_params.h" + +class as_st_solver : public assertion_set_strategy { + scoped_ptr m_params; + params_ref m_params_ref; + statistics m_stats; + std::string m_failure; + smt::solver * m_ctx; + bool m_candidate_models; + symbol m_logic; + progress_callback * m_callback; +public: + as_st_solver(bool candidate_models):m_ctx(0), m_candidate_models(candidate_models), m_callback(0) {} + + front_end_params & fparams() { + if (!m_params) + m_params = alloc(front_end_params); + return *m_params; + } + + struct scoped_init_ctx { + as_st_solver & m_owner; + + scoped_init_ctx(as_st_solver & o, ast_manager & m):m_owner(o) { + smt::solver * new_ctx = alloc(smt::solver, m, o.fparams()); + TRACE("as_solver", tout << "logic: " << o.m_logic << "\n";); + new_ctx->set_logic(o.m_logic); + if (o.m_callback) { + new_ctx->set_progress_callback(o.m_callback); + } + #pragma omp critical (as_st_solver) + { + o.m_ctx = new_ctx; + } + } + + ~scoped_init_ctx() { + smt::solver * d = m_owner.m_ctx; + #pragma omp critical (as_st_cancel) + { + m_owner.m_ctx = 0; + } + if (d) + dealloc(d); + } + }; + + virtual ~as_st_solver() { + SASSERT(m_ctx == 0); + } + + virtual void updt_params(params_ref const & p) { + TRACE("as_solver", tout << "updt_params: " << p << "\n";); + m_params_ref = p; + params2front_end_params(m_params_ref, fparams()); + } + + virtual void collect_param_descrs(param_descrs & r) { + } + + virtual void set_cancel(bool f) { + if (m_ctx) + m_ctx->set_cancel(f); + } + + virtual void operator()(assertion_set & s, model_converter_ref & mc) { + SASSERT(is_well_sorted(s)); + IF_VERBOSE(ST_VERBOSITY_LVL, verbose_stream() << "(smt-solver)" << std::endl;); + TRACE("as_solver", tout << "AUTO_CONFIG: " << fparams().m_auto_config << " HIDIV0: " << fparams().m_hi_div0 << " " + << " PREPROCESS: " << fparams().m_preprocess << ", SOLVER:" << fparams().m_solver << "\n";); + TRACE("as_solver_detail", s.display(tout);); + ast_manager & m = s.m(); + TRACE("as_solver_memory", tout << "wasted_size: " << m.get_allocator().get_wasted_size() << "\n";); + // verbose_stream() << "wasted_size: " << m.get_allocator().get_wasted_size() << ", free_objs: " << m.get_allocator().get_num_free_objs() << "\n"; + // m.get_allocator().consolidate(); + scoped_init_ctx init(*this, m); + SASSERT(m_ctx != 0); + unsigned sz = s.size(); + for (unsigned i = 0; i < sz; i++) { + expr * f = s.form(i); + m_ctx->assert_expr(f); + } + lbool r = m_ctx->setup_and_check(); + m_ctx->collect_statistics(m_stats); + switch (r) { + case l_true: { + // the empty assertion set is trivially satifiable. + s.reset(); + // store the model in a do nothin model converter. + model_ref md; + m_ctx->get_model(md); + mc = model2model_converter(md.get()); + return; + } + case l_false: + // formula is unsat, reset the assertion set, and store false there. + s.reset(); + s.assert_expr(m.mk_false(), m_ctx->get_proof()); + return; + case l_undef: + if (m_candidate_models) { + switch (m_ctx->last_failure()) { + case smt::NUM_CONFLICTS: + case smt::THEORY: + case smt::QUANTIFIERS: { + model_ref md; + m_ctx->get_model(md); + mc = model2model_converter(md.get()); + return; + } + default: + break; + } + } + m_failure = m_ctx->last_failure_as_string(); + throw strategy_exception(m_failure.c_str()); + } + } + + virtual void collect_statistics(statistics & st) const { + if (m_ctx) + m_ctx->collect_statistics(st); // ctx is still running... + else + st.copy(m_stats); + } + + virtual void cleanup() { + } + + virtual void reset_statistics() { + m_stats.reset(); + } + + // for backward compatibility + virtual void set_front_end_params(front_end_params & p) { + m_params = alloc(front_end_params, p); + // must propagate the params_ref to fparams + params2front_end_params(m_params_ref, fparams()); + } + + virtual void set_logic(symbol const & l) { + m_logic = l; + } + + virtual void set_progress_callback(progress_callback * callback) { + m_callback = callback; + } +}; + +as_st * mk_smt_solver_core(bool candidate_models) { + return alloc(as_st_solver, candidate_models); +} + +as_st * mk_smt_solver(bool auto_config, bool candidate_models) { + as_st * solver = mk_smt_solver_core(candidate_models); + params_ref solver_p; + solver_p.set_bool(":auto-config", auto_config); + return using_params(solver, solver_p); +}; diff --git a/src/smt/smt_solver_strategy.h b/src/smt/smt_solver_strategy.h new file mode 100644 index 000000000..eb74dc530 --- /dev/null +++ b/src/smt/smt_solver_strategy.h @@ -0,0 +1,31 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + smt_solver_strategy.h + +Abstract: + + Wraps a solver as an assertion_set strategy. + **Temporary code** + It should be deleted when we finish porting the assertion_set code to the tactic framework. + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#ifndef _SMT_SOLVER_STRATEGY_H_ +#define _SMT_SOLVER_STRATEGY_H_ + +#include"assertion_set_strategy.h" + +as_st * mk_smt_solver_core(bool candidate_models = false); +as_st * mk_smt_solver(bool auto_config = true, bool candidate_models = false); + +MK_SIMPLE_ST_FACTORY(smt_solver_stf, mk_smt_solver()); + +#endif diff --git a/lib/smt_statistics.cpp b/src/smt/smt_statistics.cpp similarity index 100% rename from lib/smt_statistics.cpp rename to src/smt/smt_statistics.cpp diff --git a/lib/smt_statistics.h b/src/smt/smt_statistics.h similarity index 100% rename from lib/smt_statistics.h rename to src/smt/smt_statistics.h diff --git a/lib/smt_theory.cpp b/src/smt/smt_theory.cpp similarity index 100% rename from lib/smt_theory.cpp rename to src/smt/smt_theory.cpp diff --git a/lib/smt_theory.h b/src/smt/smt_theory.h similarity index 100% rename from lib/smt_theory.h rename to src/smt/smt_theory.h diff --git a/lib/smt_theory_var_list.h b/src/smt/smt_theory_var_list.h similarity index 100% rename from lib/smt_theory_var_list.h rename to src/smt/smt_theory_var_list.h diff --git a/lib/smt_types.h b/src/smt/smt_types.h similarity index 100% rename from lib/smt_types.h rename to src/smt/smt_types.h diff --git a/lib/solver_plugin.h b/src/smt/solver_plugin.h similarity index 100% rename from lib/solver_plugin.h rename to src/smt/solver_plugin.h diff --git a/lib/smt_tactic.cpp b/src/smt/tactic/smt_tactic.cpp similarity index 100% rename from lib/smt_tactic.cpp rename to src/smt/tactic/smt_tactic.cpp diff --git a/lib/smt_tactic.h b/src/smt/tactic/smt_tactic.h similarity index 100% rename from lib/smt_tactic.h rename to src/smt/tactic/smt_tactic.h diff --git a/lib/theory_arith.cpp b/src/smt/theory_arith.cpp similarity index 100% rename from lib/theory_arith.cpp rename to src/smt/theory_arith.cpp diff --git a/lib/theory_arith.h b/src/smt/theory_arith.h similarity index 100% rename from lib/theory_arith.h rename to src/smt/theory_arith.h diff --git a/lib/theory_arith_aux.h b/src/smt/theory_arith_aux.h similarity index 100% rename from lib/theory_arith_aux.h rename to src/smt/theory_arith_aux.h diff --git a/lib/theory_arith_core.h b/src/smt/theory_arith_core.h similarity index 100% rename from lib/theory_arith_core.h rename to src/smt/theory_arith_core.h diff --git a/lib/theory_arith_def.h b/src/smt/theory_arith_def.h similarity index 100% rename from lib/theory_arith_def.h rename to src/smt/theory_arith_def.h diff --git a/lib/theory_arith_eq.h b/src/smt/theory_arith_eq.h similarity index 100% rename from lib/theory_arith_eq.h rename to src/smt/theory_arith_eq.h diff --git a/lib/theory_arith_int.h b/src/smt/theory_arith_int.h similarity index 100% rename from lib/theory_arith_int.h rename to src/smt/theory_arith_int.h diff --git a/lib/theory_arith_inv.h b/src/smt/theory_arith_inv.h similarity index 100% rename from lib/theory_arith_inv.h rename to src/smt/theory_arith_inv.h diff --git a/lib/theory_arith_nl.h b/src/smt/theory_arith_nl.h similarity index 100% rename from lib/theory_arith_nl.h rename to src/smt/theory_arith_nl.h diff --git a/lib/theory_arith_pp.h b/src/smt/theory_arith_pp.h similarity index 100% rename from lib/theory_arith_pp.h rename to src/smt/theory_arith_pp.h diff --git a/lib/theory_array.cpp b/src/smt/theory_array.cpp similarity index 100% rename from lib/theory_array.cpp rename to src/smt/theory_array.cpp diff --git a/lib/theory_array.h b/src/smt/theory_array.h similarity index 100% rename from lib/theory_array.h rename to src/smt/theory_array.h diff --git a/lib/theory_array_base.cpp b/src/smt/theory_array_base.cpp similarity index 100% rename from lib/theory_array_base.cpp rename to src/smt/theory_array_base.cpp diff --git a/lib/theory_array_base.h b/src/smt/theory_array_base.h similarity index 100% rename from lib/theory_array_base.h rename to src/smt/theory_array_base.h diff --git a/lib/theory_array_full.cpp b/src/smt/theory_array_full.cpp similarity index 100% rename from lib/theory_array_full.cpp rename to src/smt/theory_array_full.cpp diff --git a/lib/theory_array_full.h b/src/smt/theory_array_full.h similarity index 100% rename from lib/theory_array_full.h rename to src/smt/theory_array_full.h diff --git a/lib/theory_bv.cpp b/src/smt/theory_bv.cpp similarity index 100% rename from lib/theory_bv.cpp rename to src/smt/theory_bv.cpp diff --git a/lib/theory_bv.h b/src/smt/theory_bv.h similarity index 100% rename from lib/theory_bv.h rename to src/smt/theory_bv.h diff --git a/lib/theory_datatype.cpp b/src/smt/theory_datatype.cpp similarity index 100% rename from lib/theory_datatype.cpp rename to src/smt/theory_datatype.cpp diff --git a/lib/theory_datatype.h b/src/smt/theory_datatype.h similarity index 100% rename from lib/theory_datatype.h rename to src/smt/theory_datatype.h diff --git a/lib/theory_dense_diff_logic.cpp b/src/smt/theory_dense_diff_logic.cpp similarity index 100% rename from lib/theory_dense_diff_logic.cpp rename to src/smt/theory_dense_diff_logic.cpp diff --git a/lib/theory_dense_diff_logic.h b/src/smt/theory_dense_diff_logic.h similarity index 100% rename from lib/theory_dense_diff_logic.h rename to src/smt/theory_dense_diff_logic.h diff --git a/lib/theory_dense_diff_logic_def.h b/src/smt/theory_dense_diff_logic_def.h similarity index 100% rename from lib/theory_dense_diff_logic_def.h rename to src/smt/theory_dense_diff_logic_def.h diff --git a/lib/theory_diff_logic.cpp b/src/smt/theory_diff_logic.cpp similarity index 100% rename from lib/theory_diff_logic.cpp rename to src/smt/theory_diff_logic.cpp diff --git a/lib/theory_diff_logic.h b/src/smt/theory_diff_logic.h similarity index 100% rename from lib/theory_diff_logic.h rename to src/smt/theory_diff_logic.h diff --git a/lib/theory_diff_logic_def.h b/src/smt/theory_diff_logic_def.h similarity index 100% rename from lib/theory_diff_logic_def.h rename to src/smt/theory_diff_logic_def.h diff --git a/lib/theory_dl.cpp b/src/smt/theory_dl.cpp similarity index 100% rename from lib/theory_dl.cpp rename to src/smt/theory_dl.cpp diff --git a/lib/theory_dl.h b/src/smt/theory_dl.h similarity index 100% rename from lib/theory_dl.h rename to src/smt/theory_dl.h diff --git a/lib/theory_dummy.cpp b/src/smt/theory_dummy.cpp similarity index 100% rename from lib/theory_dummy.cpp rename to src/smt/theory_dummy.cpp diff --git a/lib/theory_dummy.h b/src/smt/theory_dummy.h similarity index 100% rename from lib/theory_dummy.h rename to src/smt/theory_dummy.h diff --git a/lib/theory_instgen.cpp b/src/smt/theory_instgen.cpp similarity index 100% rename from lib/theory_instgen.cpp rename to src/smt/theory_instgen.cpp diff --git a/lib/theory_instgen.h b/src/smt/theory_instgen.h similarity index 100% rename from lib/theory_instgen.h rename to src/smt/theory_instgen.h diff --git a/lib/theory_seq_empty.h b/src/smt/theory_seq_empty.h similarity index 100% rename from lib/theory_seq_empty.h rename to src/smt/theory_seq_empty.h diff --git a/lib/union_find.h b/src/smt/union_find.h similarity index 100% rename from lib/union_find.h rename to src/smt/union_find.h diff --git a/lib/user_decl_plugin.cpp b/src/smt/user_plugin/user_decl_plugin.cpp similarity index 100% rename from lib/user_decl_plugin.cpp rename to src/smt/user_plugin/user_decl_plugin.cpp diff --git a/lib/user_decl_plugin.h b/src/smt/user_plugin/user_decl_plugin.h similarity index 100% rename from lib/user_decl_plugin.h rename to src/smt/user_plugin/user_decl_plugin.h diff --git a/lib/user_simplifier_plugin.cpp b/src/smt/user_plugin/user_simplifier_plugin.cpp similarity index 100% rename from lib/user_simplifier_plugin.cpp rename to src/smt/user_plugin/user_simplifier_plugin.cpp diff --git a/lib/user_simplifier_plugin.h b/src/smt/user_plugin/user_simplifier_plugin.h similarity index 100% rename from lib/user_simplifier_plugin.h rename to src/smt/user_plugin/user_simplifier_plugin.h diff --git a/lib/user_smt_theory.cpp b/src/smt/user_plugin/user_smt_theory.cpp similarity index 100% rename from lib/user_smt_theory.cpp rename to src/smt/user_plugin/user_smt_theory.cpp diff --git a/lib/user_smt_theory.h b/src/smt/user_plugin/user_smt_theory.h similarity index 100% rename from lib/user_smt_theory.h rename to src/smt/user_plugin/user_smt_theory.h diff --git a/lib/user_rewriter.cpp b/src/smt/user_rewriter.cpp similarity index 100% rename from lib/user_rewriter.cpp rename to src/smt/user_rewriter.cpp diff --git a/lib/user_rewriter.h b/src/smt/user_rewriter.h similarity index 100% rename from lib/user_rewriter.h rename to src/smt/user_rewriter.h diff --git a/lib/uses_theory.cpp b/src/smt/uses_theory.cpp similarity index 100% rename from lib/uses_theory.cpp rename to src/smt/uses_theory.cpp diff --git a/lib/uses_theory.h b/src/smt/uses_theory.h similarity index 100% rename from lib/uses_theory.h rename to src/smt/uses_theory.h diff --git a/lib/watch_list.cpp b/src/smt/watch_list.cpp similarity index 100% rename from lib/watch_list.cpp rename to src/smt/watch_list.cpp diff --git a/lib/watch_list.h b/src/smt/watch_list.h similarity index 100% rename from lib/watch_list.h rename to src/smt/watch_list.h diff --git a/lib/smt2parser.cpp b/src/smt2parser/smt2parser.cpp similarity index 100% rename from lib/smt2parser.cpp rename to src/smt2parser/smt2parser.cpp diff --git a/lib/smt2parser.h b/src/smt2parser/smt2parser.h similarity index 100% rename from lib/smt2parser.h rename to src/smt2parser/smt2parser.h diff --git a/lib/smt2scanner.cpp b/src/smt2parser/smt2scanner.cpp similarity index 100% rename from lib/smt2scanner.cpp rename to src/smt2parser/smt2scanner.cpp diff --git a/lib/smt2scanner.h b/src/smt2parser/smt2scanner.h similarity index 100% rename from lib/smt2scanner.h rename to src/smt2parser/smt2scanner.h diff --git a/src/spc/README b/src/spc/README new file mode 100644 index 000000000..67ccf0e3c --- /dev/null +++ b/src/spc/README @@ -0,0 +1,2 @@ +Superposition Calculus. +This module is currently disabled. \ No newline at end of file diff --git a/lib/fvi.h b/src/spc/fvi.h similarity index 100% rename from lib/fvi.h rename to src/spc/fvi.h diff --git a/lib/fvi_def.h b/src/spc/fvi_def.h similarity index 100% rename from lib/fvi_def.h rename to src/spc/fvi_def.h diff --git a/lib/kbo.cpp b/src/spc/kbo.cpp similarity index 100% rename from lib/kbo.cpp rename to src/spc/kbo.cpp diff --git a/lib/kbo.h b/src/spc/kbo.h similarity index 100% rename from lib/kbo.h rename to src/spc/kbo.h diff --git a/lib/lpo.cpp b/src/spc/lpo.cpp similarity index 100% rename from lib/lpo.cpp rename to src/spc/lpo.cpp diff --git a/lib/lpo.h b/src/spc/lpo.h similarity index 100% rename from lib/lpo.h rename to src/spc/lpo.h diff --git a/lib/marker.h b/src/spc/marker.h similarity index 100% rename from lib/marker.h rename to src/spc/marker.h diff --git a/lib/normalize_vars.cpp b/src/spc/normalize_vars.cpp similarity index 100% rename from lib/normalize_vars.cpp rename to src/spc/normalize_vars.cpp diff --git a/lib/normalize_vars.h b/src/spc/normalize_vars.h similarity index 100% rename from lib/normalize_vars.h rename to src/spc/normalize_vars.h diff --git a/lib/order.cpp b/src/spc/order.cpp similarity index 100% rename from lib/order.cpp rename to src/spc/order.cpp diff --git a/lib/order.h b/src/spc/order.h similarity index 100% rename from lib/order.h rename to src/spc/order.h diff --git a/lib/precedence.cpp b/src/spc/precedence.cpp similarity index 100% rename from lib/precedence.cpp rename to src/spc/precedence.cpp diff --git a/lib/precedence.h b/src/spc/precedence.h similarity index 100% rename from lib/precedence.h rename to src/spc/precedence.h diff --git a/lib/preprocessor.cpp b/src/spc/preprocessor.cpp similarity index 100% rename from lib/preprocessor.cpp rename to src/spc/preprocessor.cpp diff --git a/lib/preprocessor.h b/src/spc/preprocessor.h similarity index 100% rename from lib/preprocessor.h rename to src/spc/preprocessor.h diff --git a/lib/sparse_use_list.h b/src/spc/sparse_use_list.h similarity index 100% rename from lib/sparse_use_list.h rename to src/spc/sparse_use_list.h diff --git a/lib/spc_asserted_literals.cpp b/src/spc/spc_asserted_literals.cpp similarity index 100% rename from lib/spc_asserted_literals.cpp rename to src/spc/spc_asserted_literals.cpp diff --git a/lib/spc_asserted_literals.h b/src/spc/spc_asserted_literals.h similarity index 100% rename from lib/spc_asserted_literals.h rename to src/spc/spc_asserted_literals.h diff --git a/lib/spc_clause.cpp b/src/spc/spc_clause.cpp similarity index 100% rename from lib/spc_clause.cpp rename to src/spc/spc_clause.cpp diff --git a/lib/spc_clause.h b/src/spc/spc_clause.h similarity index 100% rename from lib/spc_clause.h rename to src/spc/spc_clause.h diff --git a/lib/spc_clause_pos_set.h b/src/spc/spc_clause_pos_set.h similarity index 100% rename from lib/spc_clause_pos_set.h rename to src/spc/spc_clause_pos_set.h diff --git a/lib/spc_clause_selection.cpp b/src/spc/spc_clause_selection.cpp similarity index 100% rename from lib/spc_clause_selection.cpp rename to src/spc/spc_clause_selection.cpp diff --git a/lib/spc_clause_selection.h b/src/spc/spc_clause_selection.h similarity index 100% rename from lib/spc_clause_selection.h rename to src/spc/spc_clause_selection.h diff --git a/lib/spc_context.cpp b/src/spc/spc_context.cpp similarity index 100% rename from lib/spc_context.cpp rename to src/spc/spc_context.cpp diff --git a/lib/spc_context.h b/src/spc/spc_context.h similarity index 100% rename from lib/spc_context.h rename to src/spc/spc_context.h diff --git a/lib/spc_decl_plugin.cpp b/src/spc/spc_decl_plugin.cpp similarity index 100% rename from lib/spc_decl_plugin.cpp rename to src/spc/spc_decl_plugin.cpp diff --git a/lib/spc_decl_plugin.h b/src/spc/spc_decl_plugin.h similarity index 100% rename from lib/spc_decl_plugin.h rename to src/spc/spc_decl_plugin.h diff --git a/lib/spc_der.cpp b/src/spc/spc_der.cpp similarity index 100% rename from lib/spc_der.cpp rename to src/spc/spc_der.cpp diff --git a/lib/spc_der.h b/src/spc/spc_der.h similarity index 100% rename from lib/spc_der.h rename to src/spc/spc_der.h diff --git a/lib/spc_eq_resolution.cpp b/src/spc/spc_eq_resolution.cpp similarity index 100% rename from lib/spc_eq_resolution.cpp rename to src/spc/spc_eq_resolution.cpp diff --git a/lib/spc_eq_resolution.h b/src/spc/spc_eq_resolution.h similarity index 100% rename from lib/spc_eq_resolution.h rename to src/spc/spc_eq_resolution.h diff --git a/lib/spc_factoring.cpp b/src/spc/spc_factoring.cpp similarity index 100% rename from lib/spc_factoring.cpp rename to src/spc/spc_factoring.cpp diff --git a/lib/spc_factoring.h b/src/spc/spc_factoring.h similarity index 100% rename from lib/spc_factoring.h rename to src/spc/spc_factoring.h diff --git a/lib/spc_justification.cpp b/src/spc/spc_justification.cpp similarity index 100% rename from lib/spc_justification.cpp rename to src/spc/spc_justification.cpp diff --git a/lib/spc_justification.h b/src/spc/spc_justification.h similarity index 100% rename from lib/spc_justification.h rename to src/spc/spc_justification.h diff --git a/lib/spc_literal.cpp b/src/spc/spc_literal.cpp similarity index 100% rename from lib/spc_literal.cpp rename to src/spc/spc_literal.cpp diff --git a/lib/spc_literal.h b/src/spc/spc_literal.h similarity index 100% rename from lib/spc_literal.h rename to src/spc/spc_literal.h diff --git a/lib/spc_literal_selection.cpp b/src/spc/spc_literal_selection.cpp similarity index 100% rename from lib/spc_literal_selection.cpp rename to src/spc/spc_literal_selection.cpp diff --git a/lib/spc_literal_selection.h b/src/spc/spc_literal_selection.h similarity index 100% rename from lib/spc_literal_selection.h rename to src/spc/spc_literal_selection.h diff --git a/lib/spc_prover.cpp b/src/spc/spc_prover.cpp similarity index 100% rename from lib/spc_prover.cpp rename to src/spc/spc_prover.cpp diff --git a/lib/spc_prover.h b/src/spc/spc_prover.h similarity index 100% rename from lib/spc_prover.h rename to src/spc/spc_prover.h diff --git a/lib/spc_rewriter.cpp b/src/spc/spc_rewriter.cpp similarity index 100% rename from lib/spc_rewriter.cpp rename to src/spc/spc_rewriter.cpp diff --git a/lib/spc_rewriter.h b/src/spc/spc_rewriter.h similarity index 100% rename from lib/spc_rewriter.h rename to src/spc/spc_rewriter.h diff --git a/lib/spc_semantic_tautology.cpp b/src/spc/spc_semantic_tautology.cpp similarity index 100% rename from lib/spc_semantic_tautology.cpp rename to src/spc/spc_semantic_tautology.cpp diff --git a/lib/spc_semantic_tautology.h b/src/spc/spc_semantic_tautology.h similarity index 100% rename from lib/spc_semantic_tautology.h rename to src/spc/spc_semantic_tautology.h diff --git a/lib/spc_statistics.cpp b/src/spc/spc_statistics.cpp similarity index 100% rename from lib/spc_statistics.cpp rename to src/spc/spc_statistics.cpp diff --git a/lib/spc_statistics.h b/src/spc/spc_statistics.h similarity index 100% rename from lib/spc_statistics.h rename to src/spc/spc_statistics.h diff --git a/lib/spc_subsumption.cpp b/src/spc/spc_subsumption.cpp similarity index 100% rename from lib/spc_subsumption.cpp rename to src/spc/spc_subsumption.cpp diff --git a/lib/spc_subsumption.h b/src/spc/spc_subsumption.h similarity index 100% rename from lib/spc_subsumption.h rename to src/spc/spc_subsumption.h diff --git a/lib/spc_superposition.cpp b/src/spc/spc_superposition.cpp similarity index 100% rename from lib/spc_superposition.cpp rename to src/spc/spc_superposition.cpp diff --git a/lib/spc_superposition.h b/src/spc/spc_superposition.h similarity index 100% rename from lib/spc_superposition.h rename to src/spc/spc_superposition.h diff --git a/lib/spc_unary_inference.cpp b/src/spc/spc_unary_inference.cpp similarity index 100% rename from lib/spc_unary_inference.cpp rename to src/spc/spc_unary_inference.cpp diff --git a/lib/spc_unary_inference.h b/src/spc/spc_unary_inference.h similarity index 100% rename from lib/spc_unary_inference.h rename to src/spc/spc_unary_inference.h diff --git a/lib/splay_tree.h b/src/spc/splay_tree.h similarity index 100% rename from lib/splay_tree.h rename to src/spc/splay_tree.h diff --git a/lib/splay_tree_def.h b/src/spc/splay_tree_def.h similarity index 100% rename from lib/splay_tree_def.h rename to src/spc/splay_tree_def.h diff --git a/lib/splay_tree_map.h b/src/spc/splay_tree_map.h similarity index 100% rename from lib/splay_tree_map.h rename to src/spc/splay_tree_map.h diff --git a/lib/use_list.cpp b/src/spc/use_list.cpp similarity index 100% rename from lib/use_list.cpp rename to src/spc/use_list.cpp diff --git a/lib/use_list.h b/src/spc/use_list.h similarity index 100% rename from lib/use_list.h rename to src/spc/use_list.h diff --git a/lib/aig.cpp b/src/tactic/aig/aig.cpp similarity index 100% rename from lib/aig.cpp rename to src/tactic/aig/aig.cpp diff --git a/lib/aig.h b/src/tactic/aig/aig.h similarity index 100% rename from lib/aig.h rename to src/tactic/aig/aig.h diff --git a/lib/aig_tactic.cpp b/src/tactic/aig/aig_tactic.cpp similarity index 100% rename from lib/aig_tactic.cpp rename to src/tactic/aig/aig_tactic.cpp diff --git a/lib/aig_tactic.h b/src/tactic/aig/aig_tactic.h similarity index 100% rename from lib/aig_tactic.h rename to src/tactic/aig/aig_tactic.h diff --git a/lib/add_bounds.cpp b/src/tactic/arith_tactics/add_bounds.cpp similarity index 100% rename from lib/add_bounds.cpp rename to src/tactic/arith_tactics/add_bounds.cpp diff --git a/lib/add_bounds.h b/src/tactic/arith_tactics/add_bounds.h similarity index 100% rename from lib/add_bounds.h rename to src/tactic/arith_tactics/add_bounds.h diff --git a/lib/add_bounds_tactic.cpp b/src/tactic/arith_tactics/add_bounds_tactic.cpp similarity index 100% rename from lib/add_bounds_tactic.cpp rename to src/tactic/arith_tactics/add_bounds_tactic.cpp diff --git a/lib/add_bounds_tactic.h b/src/tactic/arith_tactics/add_bounds_tactic.h similarity index 100% rename from lib/add_bounds_tactic.h rename to src/tactic/arith_tactics/add_bounds_tactic.h diff --git a/lib/bound_manager.cpp b/src/tactic/arith_tactics/bound_manager.cpp similarity index 100% rename from lib/bound_manager.cpp rename to src/tactic/arith_tactics/bound_manager.cpp diff --git a/lib/bound_manager.h b/src/tactic/arith_tactics/bound_manager.h similarity index 100% rename from lib/bound_manager.h rename to src/tactic/arith_tactics/bound_manager.h diff --git a/lib/bound_propagator.cpp b/src/tactic/arith_tactics/bound_propagator.cpp similarity index 100% rename from lib/bound_propagator.cpp rename to src/tactic/arith_tactics/bound_propagator.cpp diff --git a/lib/bound_propagator.h b/src/tactic/arith_tactics/bound_propagator.h similarity index 100% rename from lib/bound_propagator.h rename to src/tactic/arith_tactics/bound_propagator.h diff --git a/lib/bv2int_rewriter.cpp b/src/tactic/arith_tactics/bv2int_rewriter.cpp similarity index 100% rename from lib/bv2int_rewriter.cpp rename to src/tactic/arith_tactics/bv2int_rewriter.cpp diff --git a/lib/bv2int_rewriter.h b/src/tactic/arith_tactics/bv2int_rewriter.h similarity index 100% rename from lib/bv2int_rewriter.h rename to src/tactic/arith_tactics/bv2int_rewriter.h diff --git a/lib/bv2real_rewriter.cpp b/src/tactic/arith_tactics/bv2real_rewriter.cpp similarity index 100% rename from lib/bv2real_rewriter.cpp rename to src/tactic/arith_tactics/bv2real_rewriter.cpp diff --git a/lib/bv2real_rewriter.h b/src/tactic/arith_tactics/bv2real_rewriter.h similarity index 100% rename from lib/bv2real_rewriter.h rename to src/tactic/arith_tactics/bv2real_rewriter.h diff --git a/lib/degree_shift_tactic.cpp b/src/tactic/arith_tactics/degree_shift_tactic.cpp similarity index 100% rename from lib/degree_shift_tactic.cpp rename to src/tactic/arith_tactics/degree_shift_tactic.cpp diff --git a/lib/degree_shift_tactic.h b/src/tactic/arith_tactics/degree_shift_tactic.h similarity index 100% rename from lib/degree_shift_tactic.h rename to src/tactic/arith_tactics/degree_shift_tactic.h diff --git a/lib/diff_neq_tactic.cpp b/src/tactic/arith_tactics/diff_neq_tactic.cpp similarity index 100% rename from lib/diff_neq_tactic.cpp rename to src/tactic/arith_tactics/diff_neq_tactic.cpp diff --git a/lib/diff_neq_tactic.h b/src/tactic/arith_tactics/diff_neq_tactic.h similarity index 100% rename from lib/diff_neq_tactic.h rename to src/tactic/arith_tactics/diff_neq_tactic.h diff --git a/lib/elim_term_ite_strategy.cpp b/src/tactic/arith_tactics/elim_term_ite_strategy.cpp similarity index 100% rename from lib/elim_term_ite_strategy.cpp rename to src/tactic/arith_tactics/elim_term_ite_strategy.cpp diff --git a/lib/elim_term_ite_strategy.h b/src/tactic/arith_tactics/elim_term_ite_strategy.h similarity index 100% rename from lib/elim_term_ite_strategy.h rename to src/tactic/arith_tactics/elim_term_ite_strategy.h diff --git a/lib/factor_tactic.cpp b/src/tactic/arith_tactics/factor_tactic.cpp similarity index 100% rename from lib/factor_tactic.cpp rename to src/tactic/arith_tactics/factor_tactic.cpp diff --git a/lib/factor_tactic.h b/src/tactic/arith_tactics/factor_tactic.h similarity index 100% rename from lib/factor_tactic.h rename to src/tactic/arith_tactics/factor_tactic.h diff --git a/lib/fix_dl_var_tactic.cpp b/src/tactic/arith_tactics/fix_dl_var_tactic.cpp similarity index 100% rename from lib/fix_dl_var_tactic.cpp rename to src/tactic/arith_tactics/fix_dl_var_tactic.cpp diff --git a/lib/fix_dl_var_tactic.h b/src/tactic/arith_tactics/fix_dl_var_tactic.h similarity index 100% rename from lib/fix_dl_var_tactic.h rename to src/tactic/arith_tactics/fix_dl_var_tactic.h diff --git a/lib/fm_tactic.cpp b/src/tactic/arith_tactics/fm_tactic.cpp similarity index 100% rename from lib/fm_tactic.cpp rename to src/tactic/arith_tactics/fm_tactic.cpp diff --git a/lib/fm_tactic.h b/src/tactic/arith_tactics/fm_tactic.h similarity index 100% rename from lib/fm_tactic.h rename to src/tactic/arith_tactics/fm_tactic.h diff --git a/lib/lia2pb_tactic.cpp b/src/tactic/arith_tactics/lia2pb_tactic.cpp similarity index 100% rename from lib/lia2pb_tactic.cpp rename to src/tactic/arith_tactics/lia2pb_tactic.cpp diff --git a/lib/lia2pb_tactic.h b/src/tactic/arith_tactics/lia2pb_tactic.h similarity index 100% rename from lib/lia2pb_tactic.h rename to src/tactic/arith_tactics/lia2pb_tactic.h diff --git a/lib/linear_equation.cpp b/src/tactic/arith_tactics/linear_equation.cpp similarity index 100% rename from lib/linear_equation.cpp rename to src/tactic/arith_tactics/linear_equation.cpp diff --git a/lib/linear_equation.h b/src/tactic/arith_tactics/linear_equation.h similarity index 100% rename from lib/linear_equation.h rename to src/tactic/arith_tactics/linear_equation.h diff --git a/lib/lu.cpp b/src/tactic/arith_tactics/lu.cpp similarity index 100% rename from lib/lu.cpp rename to src/tactic/arith_tactics/lu.cpp diff --git a/lib/lu.h b/src/tactic/arith_tactics/lu.h similarity index 100% rename from lib/lu.h rename to src/tactic/arith_tactics/lu.h diff --git a/lib/mip_tactic.cpp b/src/tactic/arith_tactics/mip_tactic.cpp similarity index 100% rename from lib/mip_tactic.cpp rename to src/tactic/arith_tactics/mip_tactic.cpp diff --git a/lib/mip_tactic.h b/src/tactic/arith_tactics/mip_tactic.h similarity index 100% rename from lib/mip_tactic.h rename to src/tactic/arith_tactics/mip_tactic.h diff --git a/lib/nla2bv_tactic.cpp b/src/tactic/arith_tactics/nla2bv_tactic.cpp similarity index 100% rename from lib/nla2bv_tactic.cpp rename to src/tactic/arith_tactics/nla2bv_tactic.cpp diff --git a/lib/nla2bv_tactic.h b/src/tactic/arith_tactics/nla2bv_tactic.h similarity index 100% rename from lib/nla2bv_tactic.h rename to src/tactic/arith_tactics/nla2bv_tactic.h diff --git a/lib/normalize_bounds_tactic.cpp b/src/tactic/arith_tactics/normalize_bounds_tactic.cpp similarity index 100% rename from lib/normalize_bounds_tactic.cpp rename to src/tactic/arith_tactics/normalize_bounds_tactic.cpp diff --git a/lib/normalize_bounds_tactic.h b/src/tactic/arith_tactics/normalize_bounds_tactic.h similarity index 100% rename from lib/normalize_bounds_tactic.h rename to src/tactic/arith_tactics/normalize_bounds_tactic.h diff --git a/lib/pb2bv_model_converter.cpp b/src/tactic/arith_tactics/pb2bv_model_converter.cpp similarity index 100% rename from lib/pb2bv_model_converter.cpp rename to src/tactic/arith_tactics/pb2bv_model_converter.cpp diff --git a/lib/pb2bv_model_converter.h b/src/tactic/arith_tactics/pb2bv_model_converter.h similarity index 100% rename from lib/pb2bv_model_converter.h rename to src/tactic/arith_tactics/pb2bv_model_converter.h diff --git a/lib/pb2bv_tactic.cpp b/src/tactic/arith_tactics/pb2bv_tactic.cpp similarity index 100% rename from lib/pb2bv_tactic.cpp rename to src/tactic/arith_tactics/pb2bv_tactic.cpp diff --git a/lib/pb2bv_tactic.h b/src/tactic/arith_tactics/pb2bv_tactic.h similarity index 100% rename from lib/pb2bv_tactic.h rename to src/tactic/arith_tactics/pb2bv_tactic.h diff --git a/lib/probe_arith.cpp b/src/tactic/arith_tactics/probe_arith.cpp similarity index 100% rename from lib/probe_arith.cpp rename to src/tactic/arith_tactics/probe_arith.cpp diff --git a/lib/probe_arith.h b/src/tactic/arith_tactics/probe_arith.h similarity index 100% rename from lib/probe_arith.h rename to src/tactic/arith_tactics/probe_arith.h diff --git a/lib/propagate_ineqs_tactic.cpp b/src/tactic/arith_tactics/propagate_ineqs_tactic.cpp similarity index 100% rename from lib/propagate_ineqs_tactic.cpp rename to src/tactic/arith_tactics/propagate_ineqs_tactic.cpp diff --git a/lib/propagate_ineqs_tactic.h b/src/tactic/arith_tactics/propagate_ineqs_tactic.h similarity index 100% rename from lib/propagate_ineqs_tactic.h rename to src/tactic/arith_tactics/propagate_ineqs_tactic.h diff --git a/lib/purify_arith_tactic.cpp b/src/tactic/arith_tactics/purify_arith_tactic.cpp similarity index 100% rename from lib/purify_arith_tactic.cpp rename to src/tactic/arith_tactics/purify_arith_tactic.cpp diff --git a/lib/purify_arith_tactic.h b/src/tactic/arith_tactics/purify_arith_tactic.h similarity index 100% rename from lib/purify_arith_tactic.h rename to src/tactic/arith_tactics/purify_arith_tactic.h diff --git a/lib/recover_01_tactic.cpp b/src/tactic/arith_tactics/recover_01_tactic.cpp similarity index 100% rename from lib/recover_01_tactic.cpp rename to src/tactic/arith_tactics/recover_01_tactic.cpp diff --git a/lib/recover_01_tactic.h b/src/tactic/arith_tactics/recover_01_tactic.h similarity index 100% rename from lib/recover_01_tactic.h rename to src/tactic/arith_tactics/recover_01_tactic.h diff --git a/lib/smt_arith.cpp b/src/tactic/arith_tactics/smt_arith.cpp similarity index 100% rename from lib/smt_arith.cpp rename to src/tactic/arith_tactics/smt_arith.cpp diff --git a/lib/smt_arith.h b/src/tactic/arith_tactics/smt_arith.h similarity index 100% rename from lib/smt_arith.h rename to src/tactic/arith_tactics/smt_arith.h diff --git a/lib/smt_formula_compiler.cpp b/src/tactic/arith_tactics/smt_formula_compiler.cpp similarity index 100% rename from lib/smt_formula_compiler.cpp rename to src/tactic/arith_tactics/smt_formula_compiler.cpp diff --git a/lib/smt_formula_compiler.h b/src/tactic/arith_tactics/smt_formula_compiler.h similarity index 100% rename from lib/smt_formula_compiler.h rename to src/tactic/arith_tactics/smt_formula_compiler.h diff --git a/lib/smt_solver_exp.cpp b/src/tactic/arith_tactics/smt_solver_exp.cpp similarity index 100% rename from lib/smt_solver_exp.cpp rename to src/tactic/arith_tactics/smt_solver_exp.cpp diff --git a/lib/smt_solver_exp.h b/src/tactic/arith_tactics/smt_solver_exp.h similarity index 100% rename from lib/smt_solver_exp.h rename to src/tactic/arith_tactics/smt_solver_exp.h diff --git a/lib/smt_solver_strategy.cpp b/src/tactic/arith_tactics/smt_solver_strategy.cpp similarity index 100% rename from lib/smt_solver_strategy.cpp rename to src/tactic/arith_tactics/smt_solver_strategy.cpp diff --git a/lib/smt_solver_strategy.h b/src/tactic/arith_tactics/smt_solver_strategy.h similarity index 100% rename from lib/smt_solver_strategy.h rename to src/tactic/arith_tactics/smt_solver_strategy.h diff --git a/lib/smt_solver_types.h b/src/tactic/arith_tactics/smt_solver_types.h similarity index 100% rename from lib/smt_solver_types.h rename to src/tactic/arith_tactics/smt_solver_types.h diff --git a/lib/bit_blaster.cpp b/src/tactic/bit_blaster/bit_blaster.cpp similarity index 100% rename from lib/bit_blaster.cpp rename to src/tactic/bit_blaster/bit_blaster.cpp diff --git a/lib/bit_blaster.h b/src/tactic/bit_blaster/bit_blaster.h similarity index 100% rename from lib/bit_blaster.h rename to src/tactic/bit_blaster/bit_blaster.h diff --git a/lib/bit_blaster_model_converter.cpp b/src/tactic/bit_blaster/bit_blaster_model_converter.cpp similarity index 100% rename from lib/bit_blaster_model_converter.cpp rename to src/tactic/bit_blaster/bit_blaster_model_converter.cpp diff --git a/lib/bit_blaster_model_converter.h b/src/tactic/bit_blaster/bit_blaster_model_converter.h similarity index 100% rename from lib/bit_blaster_model_converter.h rename to src/tactic/bit_blaster/bit_blaster_model_converter.h diff --git a/lib/bit_blaster_rewriter.cpp b/src/tactic/bit_blaster/bit_blaster_rewriter.cpp similarity index 100% rename from lib/bit_blaster_rewriter.cpp rename to src/tactic/bit_blaster/bit_blaster_rewriter.cpp diff --git a/lib/bit_blaster_rewriter.h b/src/tactic/bit_blaster/bit_blaster_rewriter.h similarity index 100% rename from lib/bit_blaster_rewriter.h rename to src/tactic/bit_blaster/bit_blaster_rewriter.h diff --git a/lib/bit_blaster_tpl.h b/src/tactic/bit_blaster/bit_blaster_tpl.h similarity index 100% rename from lib/bit_blaster_tpl.h rename to src/tactic/bit_blaster/bit_blaster_tpl.h diff --git a/lib/bit_blaster_tpl_def.h b/src/tactic/bit_blaster/bit_blaster_tpl_def.h similarity index 100% rename from lib/bit_blaster_tpl_def.h rename to src/tactic/bit_blaster/bit_blaster_tpl_def.h diff --git a/lib/bv1_blaster_tactic.cpp b/src/tactic/bit_blaster/bv1_blaster_tactic.cpp similarity index 100% rename from lib/bv1_blaster_tactic.cpp rename to src/tactic/bit_blaster/bv1_blaster_tactic.cpp diff --git a/lib/bv1_blaster_tactic.h b/src/tactic/bit_blaster/bv1_blaster_tactic.h similarity index 100% rename from lib/bv1_blaster_tactic.h rename to src/tactic/bit_blaster/bv1_blaster_tactic.h diff --git a/lib/eager_bit_blaster.cpp b/src/tactic/bit_blaster/eager_bit_blaster.cpp similarity index 100% rename from lib/eager_bit_blaster.cpp rename to src/tactic/bit_blaster/eager_bit_blaster.cpp diff --git a/lib/eager_bit_blaster.h b/src/tactic/bit_blaster/eager_bit_blaster.h similarity index 100% rename from lib/eager_bit_blaster.h rename to src/tactic/bit_blaster/eager_bit_blaster.h diff --git a/lib/bit_blaster_tactic.cpp b/src/tactic/bv_tactics/bit_blaster_tactic.cpp similarity index 100% rename from lib/bit_blaster_tactic.cpp rename to src/tactic/bv_tactics/bit_blaster_tactic.cpp diff --git a/lib/bit_blaster_tactic.h b/src/tactic/bv_tactics/bit_blaster_tactic.h similarity index 100% rename from lib/bit_blaster_tactic.h rename to src/tactic/bv_tactics/bit_blaster_tactic.h diff --git a/lib/bv_size_reduction_tactic.cpp b/src/tactic/bv_tactics/bv_size_reduction_tactic.cpp similarity index 100% rename from lib/bv_size_reduction_tactic.cpp rename to src/tactic/bv_tactics/bv_size_reduction_tactic.cpp diff --git a/lib/bv_size_reduction_tactic.h b/src/tactic/bv_tactics/bv_size_reduction_tactic.h similarity index 100% rename from lib/bv_size_reduction_tactic.h rename to src/tactic/bv_tactics/bv_size_reduction_tactic.h diff --git a/lib/max_bv_sharing_tactic.cpp b/src/tactic/bv_tactics/max_bv_sharing_tactic.cpp similarity index 100% rename from lib/max_bv_sharing_tactic.cpp rename to src/tactic/bv_tactics/max_bv_sharing_tactic.cpp diff --git a/lib/max_bv_sharing_tactic.h b/src/tactic/bv_tactics/max_bv_sharing_tactic.h similarity index 100% rename from lib/max_bv_sharing_tactic.h rename to src/tactic/bv_tactics/max_bv_sharing_tactic.h diff --git a/lib/converter.h b/src/tactic/converter.h similarity index 100% rename from lib/converter.h rename to src/tactic/converter.h diff --git a/lib/cofactor_elim_term_ite.cpp b/src/tactic/core_tactics/cofactor_elim_term_ite.cpp similarity index 100% rename from lib/cofactor_elim_term_ite.cpp rename to src/tactic/core_tactics/cofactor_elim_term_ite.cpp diff --git a/lib/cofactor_elim_term_ite.h b/src/tactic/core_tactics/cofactor_elim_term_ite.h similarity index 100% rename from lib/cofactor_elim_term_ite.h rename to src/tactic/core_tactics/cofactor_elim_term_ite.h diff --git a/lib/cofactor_term_ite_tactic.cpp b/src/tactic/core_tactics/cofactor_term_ite_tactic.cpp similarity index 100% rename from lib/cofactor_term_ite_tactic.cpp rename to src/tactic/core_tactics/cofactor_term_ite_tactic.cpp diff --git a/lib/cofactor_term_ite_tactic.h b/src/tactic/core_tactics/cofactor_term_ite_tactic.h similarity index 100% rename from lib/cofactor_term_ite_tactic.h rename to src/tactic/core_tactics/cofactor_term_ite_tactic.h diff --git a/lib/ctx_simplify_tactic.cpp b/src/tactic/core_tactics/ctx_simplify_tactic.cpp similarity index 99% rename from lib/ctx_simplify_tactic.cpp rename to src/tactic/core_tactics/ctx_simplify_tactic.cpp index 9b4ca6c54..91334fd5c 100644 --- a/lib/ctx_simplify_tactic.cpp +++ b/src/tactic/core_tactics/ctx_simplify_tactic.cpp @@ -18,7 +18,7 @@ Notes: --*/ #include"ctx_simplify_tactic.h" #include"mk_simplified_app.h" -#include"num_occurs.h" +#include"num_occurs_goal.h" #include"cooperate.h" #include"ast_ll_pp.h" #include"ast_smt2_pp.h" @@ -51,7 +51,7 @@ struct ctx_simplify_tactic::imp { unsigned m_scope_lvl; unsigned m_depth; unsigned m_num_steps; - num_occurs m_occs; + num_occurs_goal m_occs; mk_simplified_app m_mk_app; unsigned long long m_max_memory; unsigned m_max_depth; diff --git a/lib/ctx_simplify_tactic.h b/src/tactic/core_tactics/ctx_simplify_tactic.h similarity index 100% rename from lib/ctx_simplify_tactic.h rename to src/tactic/core_tactics/ctx_simplify_tactic.h diff --git a/src/tactic/core_tactics/der_tactic.cpp b/src/tactic/core_tactics/der_tactic.cpp new file mode 100644 index 000000000..c2245b409 --- /dev/null +++ b/src/tactic/core_tactics/der_tactic.cpp @@ -0,0 +1,114 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + der_tactic.cpp + +Abstract: + + DER tactic + +Author: + + Leonardo de Moura (leonardo) 2012-10-20 + +--*/ +#include"der.h" +#include"tactical.h" + +class der_tactic : public tactic { + struct imp { + ast_manager & m_manager; + der_rewriter m_r; + + imp(ast_manager & m): + m_manager(m), + m_r(m) { + } + + ast_manager & m() const { return m_manager; } + + void set_cancel(bool f) { + m_r.set_cancel(f); + } + + void reset() { + m_r.reset(); + } + + void operator()(goal & g) { + SASSERT(g.is_well_sorted()); + bool proofs_enabled = g.proofs_enabled(); + tactic_report report("der", g); + TRACE("before_der", g.display(tout);); + expr_ref new_curr(m()); + proof_ref new_pr(m()); + unsigned size = g.size(); + for (unsigned idx = 0; idx < size; idx++) { + if (g.inconsistent()) + break; + expr * curr = g.form(idx); + m_r(curr, new_curr, new_pr); + if (proofs_enabled) { + proof * pr = g.pr(idx); + new_pr = m().mk_modus_ponens(pr, new_pr); + } + g.update(idx, new_curr, new_pr, g.dep(idx)); + } + g.elim_redundancies(); + TRACE("after_der", g.display(tout);); + SASSERT(g.is_well_sorted()); + } + }; + + imp * m_imp; + +public: + der_tactic(ast_manager & m) { + m_imp = alloc(imp, m); + } + + virtual tactic * translate(ast_manager & m) { + return alloc(der_tactic, m); + } + + virtual ~der_tactic() { + dealloc(m_imp); + } + + virtual void operator()(goal_ref const & in, + goal_ref_buffer & result, + model_converter_ref & mc, + proof_converter_ref & pc, + expr_dependency_ref & core) { + mc = 0; pc = 0; core = 0; + (*m_imp)(*(in.get())); + in->inc_depth(); + result.push_back(in.get()); + } + + virtual void cleanup() { + ast_manager & m = m_imp->m(); + imp * d = m_imp; + #pragma omp critical (tactic_cancel) + { + m_imp = 0; + } + dealloc(d); + d = alloc(imp, m); + #pragma omp critical (tactic_cancel) + { + m_imp = d; + } + } + + virtual void set_cancel(bool f) { + if (m_imp) + m_imp->set_cancel(f); + } +}; + +tactic * mk_der_tactic(ast_manager & m) { + return alloc(der_tactic, m); +} diff --git a/src/tactic/core_tactics/der_tactic.h b/src/tactic/core_tactics/der_tactic.h new file mode 100644 index 000000000..8e7d1453f --- /dev/null +++ b/src/tactic/core_tactics/der_tactic.h @@ -0,0 +1,25 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + der_tactic.h + +Abstract: + + DER tactic + +Author: + + Leonardo de Moura (leonardo) 2012-10-20 + +--*/ +#ifndef _DER_TACTIC_H_ +#define _DER_TACTIC_H_ + +class ast_manager; +class tactic; + +tactic * mk_der_tactic(ast_manager & m); + +#endif /* _DER_TACTIC_H_ */ diff --git a/lib/distribute_forall_tactic.cpp b/src/tactic/core_tactics/distribute_forall_tactic.cpp similarity index 100% rename from lib/distribute_forall_tactic.cpp rename to src/tactic/core_tactics/distribute_forall_tactic.cpp diff --git a/lib/distribute_forall_tactic.h b/src/tactic/core_tactics/distribute_forall_tactic.h similarity index 100% rename from lib/distribute_forall_tactic.h rename to src/tactic/core_tactics/distribute_forall_tactic.h diff --git a/lib/elim_term_ite_tactic.cpp b/src/tactic/core_tactics/elim_term_ite_tactic.cpp similarity index 100% rename from lib/elim_term_ite_tactic.cpp rename to src/tactic/core_tactics/elim_term_ite_tactic.cpp diff --git a/lib/elim_term_ite_tactic.h b/src/tactic/core_tactics/elim_term_ite_tactic.h similarity index 100% rename from lib/elim_term_ite_tactic.h rename to src/tactic/core_tactics/elim_term_ite_tactic.h diff --git a/lib/elim_uncnstr_tactic.cpp b/src/tactic/core_tactics/elim_uncnstr_tactic.cpp similarity index 100% rename from lib/elim_uncnstr_tactic.cpp rename to src/tactic/core_tactics/elim_uncnstr_tactic.cpp diff --git a/lib/elim_uncnstr_tactic.h b/src/tactic/core_tactics/elim_uncnstr_tactic.h similarity index 100% rename from lib/elim_uncnstr_tactic.h rename to src/tactic/core_tactics/elim_uncnstr_tactic.h diff --git a/lib/nnf_tactic.cpp b/src/tactic/core_tactics/nnf_tactic.cpp similarity index 100% rename from lib/nnf_tactic.cpp rename to src/tactic/core_tactics/nnf_tactic.cpp diff --git a/lib/nnf_tactic.h b/src/tactic/core_tactics/nnf_tactic.h similarity index 100% rename from lib/nnf_tactic.h rename to src/tactic/core_tactics/nnf_tactic.h diff --git a/lib/occf_tactic.cpp b/src/tactic/core_tactics/occf_tactic.cpp similarity index 100% rename from lib/occf_tactic.cpp rename to src/tactic/core_tactics/occf_tactic.cpp diff --git a/lib/occf_tactic.h b/src/tactic/core_tactics/occf_tactic.h similarity index 100% rename from lib/occf_tactic.h rename to src/tactic/core_tactics/occf_tactic.h diff --git a/lib/propagate_values_tactic.cpp b/src/tactic/core_tactics/propagate_values_tactic.cpp similarity index 100% rename from lib/propagate_values_tactic.cpp rename to src/tactic/core_tactics/propagate_values_tactic.cpp diff --git a/lib/propagate_values_tactic.h b/src/tactic/core_tactics/propagate_values_tactic.h similarity index 100% rename from lib/propagate_values_tactic.h rename to src/tactic/core_tactics/propagate_values_tactic.h diff --git a/lib/reduce_args_tactic.cpp b/src/tactic/core_tactics/reduce_args_tactic.cpp similarity index 100% rename from lib/reduce_args_tactic.cpp rename to src/tactic/core_tactics/reduce_args_tactic.cpp diff --git a/lib/reduce_args_tactic.h b/src/tactic/core_tactics/reduce_args_tactic.h similarity index 100% rename from lib/reduce_args_tactic.h rename to src/tactic/core_tactics/reduce_args_tactic.h diff --git a/lib/simplify_tactic.cpp b/src/tactic/core_tactics/simplify_tactic.cpp similarity index 100% rename from lib/simplify_tactic.cpp rename to src/tactic/core_tactics/simplify_tactic.cpp diff --git a/lib/simplify_tactic.h b/src/tactic/core_tactics/simplify_tactic.h similarity index 100% rename from lib/simplify_tactic.h rename to src/tactic/core_tactics/simplify_tactic.h diff --git a/lib/solve_eqs_tactic.cpp b/src/tactic/core_tactics/solve_eqs_tactic.cpp similarity index 100% rename from lib/solve_eqs_tactic.cpp rename to src/tactic/core_tactics/solve_eqs_tactic.cpp diff --git a/lib/solve_eqs_tactic.h b/src/tactic/core_tactics/solve_eqs_tactic.h similarity index 100% rename from lib/solve_eqs_tactic.h rename to src/tactic/core_tactics/solve_eqs_tactic.h diff --git a/lib/split_clause_tactic.cpp b/src/tactic/core_tactics/split_clause_tactic.cpp similarity index 100% rename from lib/split_clause_tactic.cpp rename to src/tactic/core_tactics/split_clause_tactic.cpp diff --git a/lib/split_clause_tactic.h b/src/tactic/core_tactics/split_clause_tactic.h similarity index 100% rename from lib/split_clause_tactic.h rename to src/tactic/core_tactics/split_clause_tactic.h diff --git a/lib/symmetry_reduce_tactic.cpp b/src/tactic/core_tactics/symmetry_reduce_tactic.cpp similarity index 99% rename from lib/symmetry_reduce_tactic.cpp rename to src/tactic/core_tactics/symmetry_reduce_tactic.cpp index 5ca1dbcbf..0ee606da9 100644 --- a/lib/symmetry_reduce_tactic.cpp +++ b/src/tactic/core_tactics/symmetry_reduce_tactic.cpp @@ -7,7 +7,7 @@ Module Name: Abstract: - Add symmetry breaking predicates to assertion sets. + Add symmetry breaking predicates to goals. Author: @@ -20,7 +20,6 @@ Notes: --*/ #include"tactical.h" -#include"assertion_set.h" #include"for_each_expr.h" #include"map.h" #include"expr_replacer.h" diff --git a/lib/symmetry_reduce_tactic.h b/src/tactic/core_tactics/symmetry_reduce_tactic.h similarity index 100% rename from lib/symmetry_reduce_tactic.h rename to src/tactic/core_tactics/symmetry_reduce_tactic.h diff --git a/lib/tseitin_cnf_tactic.cpp b/src/tactic/core_tactics/tseitin_cnf_tactic.cpp similarity index 100% rename from lib/tseitin_cnf_tactic.cpp rename to src/tactic/core_tactics/tseitin_cnf_tactic.cpp diff --git a/lib/tseitin_cnf_tactic.h b/src/tactic/core_tactics/tseitin_cnf_tactic.h similarity index 100% rename from lib/tseitin_cnf_tactic.h rename to src/tactic/core_tactics/tseitin_cnf_tactic.h diff --git a/lib/extension_model_converter.cpp b/src/tactic/extension_model_converter.cpp similarity index 100% rename from lib/extension_model_converter.cpp rename to src/tactic/extension_model_converter.cpp diff --git a/lib/extension_model_converter.h b/src/tactic/extension_model_converter.h similarity index 100% rename from lib/extension_model_converter.h rename to src/tactic/extension_model_converter.h diff --git a/lib/filter_model_converter.cpp b/src/tactic/filter_model_converter.cpp similarity index 100% rename from lib/filter_model_converter.cpp rename to src/tactic/filter_model_converter.cpp diff --git a/lib/filter_model_converter.h b/src/tactic/filter_model_converter.h similarity index 100% rename from lib/filter_model_converter.h rename to src/tactic/filter_model_converter.h diff --git a/lib/fpa2bv_converter.cpp b/src/tactic/fpa/fpa2bv_converter.cpp similarity index 100% rename from lib/fpa2bv_converter.cpp rename to src/tactic/fpa/fpa2bv_converter.cpp diff --git a/lib/fpa2bv_converter.h b/src/tactic/fpa/fpa2bv_converter.h similarity index 100% rename from lib/fpa2bv_converter.h rename to src/tactic/fpa/fpa2bv_converter.h diff --git a/lib/fpa2bv_tactic.cpp b/src/tactic/fpa/fpa2bv_tactic.cpp similarity index 100% rename from lib/fpa2bv_tactic.cpp rename to src/tactic/fpa/fpa2bv_tactic.cpp diff --git a/lib/fpa2bv_tactic.h b/src/tactic/fpa/fpa2bv_tactic.h similarity index 100% rename from lib/fpa2bv_tactic.h rename to src/tactic/fpa/fpa2bv_tactic.h diff --git a/lib/qffpa_tactic.cpp b/src/tactic/fpa/qffpa_tactic.cpp similarity index 100% rename from lib/qffpa_tactic.cpp rename to src/tactic/fpa/qffpa_tactic.cpp diff --git a/lib/qffpa_tactic.h b/src/tactic/fpa/qffpa_tactic.h similarity index 100% rename from lib/qffpa_tactic.h rename to src/tactic/fpa/qffpa_tactic.h diff --git a/lib/goal.cpp b/src/tactic/goal.cpp similarity index 92% rename from lib/goal.cpp rename to src/tactic/goal.cpp index a84b34dd5..6897097be 100644 --- a/lib/goal.cpp +++ b/src/tactic/goal.cpp @@ -17,7 +17,6 @@ Revision History: --*/ #include"goal.h" -#include"cmd_context.h" #include"ast_ll_pp.h" #include"ast_smt2_pp.h" #include"for_each_expr.h" @@ -235,17 +234,17 @@ void goal::reset() { m_inconsistent = false; } -void goal::display(cmd_context & ctx, std::ostream & out) const { +void goal::display(ast_printer & prn, std::ostream & out) const { out << "(goal"; unsigned sz = size(); for (unsigned i = 0; i < sz; i++) { out << "\n "; - ctx.display(out, form(i), 2); + prn.display(out, form(i), 2); } out << "\n :precision " << prec() << " :depth " << depth() << ")" << std::endl; } -void goal::display_with_dependencies(cmd_context & ctx, std::ostream & out) const { +void goal::display_with_dependencies(ast_printer & prn, std::ostream & out) const { ptr_vector deps; obj_hashtable to_pp; out << "(goal"; @@ -267,7 +266,7 @@ void goal::display_with_dependencies(cmd_context & ctx, std::ostream & out) cons } } out << "\n "; - ctx.display(out, form(i), 2); + prn.display(out, form(i), 2); } if (!to_pp.empty()) { out << "\n :dependencies-definitions ("; @@ -276,7 +275,7 @@ void goal::display_with_dependencies(cmd_context & ctx, std::ostream & out) cons for (; it != end; ++it) { expr * d = *it; out << "\n (#" << d->get_id() << "\n "; - ctx.display(out, d, 2); + prn.display(out, d, 2); out << ")"; } out << ")"; @@ -308,11 +307,11 @@ void goal::display_with_dependencies(std::ostream & out) const { out << "\n :precision " << prec() << " :depth " << depth() << ")" << std::endl; } -void goal::display(cmd_context & ctx) const { +void goal::display(ast_printer_context & ctx) const { display(ctx, ctx.regular_stream()); } -void goal::display_with_dependencies(cmd_context & ctx) const { +void goal::display_with_dependencies(ast_printer_context & ctx) const { display_with_dependencies(ctx, ctx.regular_stream()); } @@ -546,32 +545,6 @@ bool goal::is_well_sorted() const { return true; } -/** - \brief Assert expressions from ctx into t. -*/ -void assert_exprs_from(cmd_context const & ctx, goal & t) { - if (ctx.produce_proofs() && ctx.produce_unsat_cores()) - throw cmd_exception("Frontend does not support simultaneous generation of proofs and unsat cores"); - ast_manager & m = t.m(); - bool proofs_enabled = t.proofs_enabled(); - ptr_vector::const_iterator it = ctx.begin_assertions(); - ptr_vector::const_iterator end = ctx.end_assertions(); - for (; it != end; ++it) { - t.assert_expr(*it, proofs_enabled ? m.mk_asserted(*it) : 0, 0); - } - if (ctx.produce_unsat_cores()) { - SASSERT(!ctx.produce_proofs()); - it = ctx.begin_assumptions(); - end = ctx.end_assumptions(); - for (; it != end; ++it) { - t.assert_expr(*it, 0, m.mk_leaf(*it)); - } - } - else { - SASSERT(ctx.begin_assumptions() == ctx.end_assumptions()); - } -} - /** \brief Translate the assertion set to a new one that uses a different ast_manager. */ diff --git a/lib/goal.h b/src/tactic/goal.h similarity index 96% rename from lib/goal.h rename to src/tactic/goal.h index 61c7e2081..c1dcaa6f6 100644 --- a/lib/goal.h +++ b/src/tactic/goal.h @@ -30,13 +30,12 @@ Revision History: #include"ast.h" #include"ast_translation.h" +#include"ast_printer.h" #include"for_each_expr.h" #include"ref.h" #include"ref_vector.h" #include"ref_buffer.h" -class cmd_context; - class goal { public: enum precision { @@ -172,14 +171,14 @@ public: void elim_true(); void elim_redundancies(); - void display(cmd_context & ctx, std::ostream & out) const; - void display(cmd_context & ctx) const; + void display(ast_printer & prn, std::ostream & out) const; + void display(ast_printer_context & ctx) const; void display(std::ostream & out) const; void display_ll(std::ostream & out) const; void display_as_and(std::ostream & out) const; void display_dimacs(std::ostream & out) const; - void display_with_dependencies(cmd_context & ctx, std::ostream & out) const; - void display_with_dependencies(cmd_context & ctx) const; + void display_with_dependencies(ast_printer & prn, std::ostream & out) const; + void display_with_dependencies(ast_printer_context & ctx) const; void display_with_dependencies(std::ostream & out) const; bool sat_preserved() const { @@ -220,8 +219,6 @@ inline bool is_decided_sat(GoalCollection const & c) { return c.size() == 1 && c template inline bool is_decided_unsat(GoalCollection const & c) { return c.size() == 1 && c[0]->is_decided_unsat(); } -void assert_exprs_from(cmd_context const & ctx, goal & t); - template void for_each_expr_at(ForEachProc& proc, goal const & s) { expr_mark visited; diff --git a/lib/goal_shared_occs.cpp b/src/tactic/goal_shared_occs.cpp similarity index 100% rename from lib/goal_shared_occs.cpp rename to src/tactic/goal_shared_occs.cpp diff --git a/lib/goal_shared_occs.h b/src/tactic/goal_shared_occs.h similarity index 100% rename from lib/goal_shared_occs.h rename to src/tactic/goal_shared_occs.h diff --git a/lib/goal_util.cpp b/src/tactic/goal_util.cpp similarity index 100% rename from lib/goal_util.cpp rename to src/tactic/goal_util.cpp diff --git a/lib/goal_util.h b/src/tactic/goal_util.h similarity index 100% rename from lib/goal_util.h rename to src/tactic/goal_util.h diff --git a/lib/model_converter.cpp b/src/tactic/model_converter.cpp similarity index 100% rename from lib/model_converter.cpp rename to src/tactic/model_converter.cpp diff --git a/lib/model_converter.h b/src/tactic/model_converter.h similarity index 100% rename from lib/model_converter.h rename to src/tactic/model_converter.h diff --git a/lib/goal2nlsat.cpp b/src/tactic/nlsat_tactic/goal2nlsat.cpp similarity index 100% rename from lib/goal2nlsat.cpp rename to src/tactic/nlsat_tactic/goal2nlsat.cpp diff --git a/lib/goal2nlsat.h b/src/tactic/nlsat_tactic/goal2nlsat.h similarity index 100% rename from lib/goal2nlsat.h rename to src/tactic/nlsat_tactic/goal2nlsat.h diff --git a/lib/nlsat_tactic.cpp b/src/tactic/nlsat_tactic/nlsat_tactic.cpp similarity index 100% rename from lib/nlsat_tactic.cpp rename to src/tactic/nlsat_tactic/nlsat_tactic.cpp diff --git a/lib/nlsat_tactic.h b/src/tactic/nlsat_tactic/nlsat_tactic.h similarity index 100% rename from lib/nlsat_tactic.h rename to src/tactic/nlsat_tactic/nlsat_tactic.h diff --git a/lib/qfnra_nlsat_tactic.cpp b/src/tactic/nlsat_tactic/qfnra_nlsat_tactic.cpp similarity index 100% rename from lib/qfnra_nlsat_tactic.cpp rename to src/tactic/nlsat_tactic/qfnra_nlsat_tactic.cpp diff --git a/lib/qfnra_nlsat_tactic.h b/src/tactic/nlsat_tactic/qfnra_nlsat_tactic.h similarity index 100% rename from lib/qfnra_nlsat_tactic.h rename to src/tactic/nlsat_tactic/qfnra_nlsat_tactic.h diff --git a/src/tactic/num_occurs_goal.cpp b/src/tactic/num_occurs_goal.cpp new file mode 100644 index 000000000..adc412434 --- /dev/null +++ b/src/tactic/num_occurs_goal.cpp @@ -0,0 +1,27 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + num_occurs_goal.cpp + +Abstract: + + +Author: + + Leonardo de Moura (leonardo) 2012-10-20. + +Revision History: + +--*/ +#include"num_occurs_goal.h" +#include"goal.h" + +void num_occurs_goal::operator()(goal const & g) { + expr_fast_mark1 visited; + unsigned sz = g.size(); + for (unsigned i = 0; i < sz; i++) { + process(g.form(i), visited); + } +} diff --git a/src/tactic/num_occurs_goal.h b/src/tactic/num_occurs_goal.h new file mode 100644 index 000000000..5e6e0cc94 --- /dev/null +++ b/src/tactic/num_occurs_goal.h @@ -0,0 +1,35 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + num_occurs_goal.h + +Abstract: + + +Author: + + Leonardo de Moura (leonardo) 2012-10-20. + +Revision History: + +--*/ +#ifndef _NUM_OCCURS_GOAL_H_ +#define _NUM_OCCURS_GOAL_H_ + +#include"num_occurs.h" + +class goal; + +class num_occurs_goal : public num_occurs { +public: + num_occurs_goal(bool ignore_ref_count1 = false, bool ignore_quantifiers = false): + num_occurs(ignore_ref_count1, ignore_quantifiers) { + } + + void operator()(goal const & s); +}; + + +#endif diff --git a/lib/default_tactic.cpp b/src/tactic/portfolio/default_tactic.cpp similarity index 100% rename from lib/default_tactic.cpp rename to src/tactic/portfolio/default_tactic.cpp diff --git a/lib/default_tactic.h b/src/tactic/portfolio/default_tactic.h similarity index 100% rename from lib/default_tactic.h rename to src/tactic/portfolio/default_tactic.h diff --git a/lib/install_tactics.cpp b/src/tactic/portfolio/install_tactics.cpp similarity index 99% rename from lib/install_tactics.cpp rename to src/tactic/portfolio/install_tactics.cpp index 3a0155605..9f99d6b77 100644 --- a/lib/install_tactics.cpp +++ b/src/tactic/portfolio/install_tactics.cpp @@ -27,7 +27,7 @@ Notes: #include"bit_blaster_tactic.h" #include"bv1_blaster_tactic.h" -#include"der.h" +#include"der_tactic.h" #include"aig_tactic.h" #include"smt_tactic.h" #include"sat_tactic.h" diff --git a/lib/install_tactics.h b/src/tactic/portfolio/install_tactics.h similarity index 100% rename from lib/install_tactics.h rename to src/tactic/portfolio/install_tactics.h diff --git a/lib/smt_strategic_solver.cpp b/src/tactic/portfolio/smt_strategic_solver.cpp similarity index 99% rename from lib/smt_strategic_solver.cpp rename to src/tactic/portfolio/smt_strategic_solver.cpp index 2b5792613..d958c501b 100644 --- a/lib/smt_strategic_solver.cpp +++ b/src/tactic/portfolio/smt_strategic_solver.cpp @@ -34,6 +34,7 @@ Notes: #include"default_tactic.h" #include"ufbv_tactic.h" #include"qffpa_tactic.h" +#include"default_solver.h" MK_SIMPLE_TACTIC_FACTORY(qfuf_fct, mk_qfuf_tactic(m, p)); MK_SIMPLE_TACTIC_FACTORY(qfidl_fct, mk_qfidl_tactic(m, p)); diff --git a/lib/smt_strategic_solver.h b/src/tactic/portfolio/smt_strategic_solver.h similarity index 100% rename from lib/smt_strategic_solver.h rename to src/tactic/portfolio/smt_strategic_solver.h diff --git a/lib/probe.cpp b/src/tactic/probe.cpp similarity index 100% rename from lib/probe.cpp rename to src/tactic/probe.cpp diff --git a/lib/probe.h b/src/tactic/probe.h similarity index 100% rename from lib/probe.h rename to src/tactic/probe.h diff --git a/lib/proof_converter.cpp b/src/tactic/proof_converter.cpp similarity index 100% rename from lib/proof_converter.cpp rename to src/tactic/proof_converter.cpp diff --git a/lib/proof_converter.h b/src/tactic/proof_converter.h similarity index 100% rename from lib/proof_converter.h rename to src/tactic/proof_converter.h diff --git a/lib/atom2bool_var.cpp b/src/tactic/sat_tactic/atom2bool_var.cpp similarity index 95% rename from lib/atom2bool_var.cpp rename to src/tactic/sat_tactic/atom2bool_var.cpp index 8176fdb53..935eeb28e 100644 --- a/lib/atom2bool_var.cpp +++ b/src/tactic/sat_tactic/atom2bool_var.cpp @@ -19,7 +19,6 @@ Notes: #include"atom2bool_var.h" #include"ast_smt2_pp.h" #include"ref_util.h" -#include"assertion_set.h" // TODO delete #include"goal.h" void atom2bool_var::mk_inv(expr_ref_vector & lit2expr) const { @@ -107,10 +106,6 @@ void collect_boolean_interface_core(T const & s, obj_hashtable & r) { proc(s); } -void collect_boolean_interface(assertion_set const & s, obj_hashtable & r) { - collect_boolean_interface_core(s, r); -} - void collect_boolean_interface(goal const & g, obj_hashtable & r) { collect_boolean_interface_core(g, r); } diff --git a/lib/atom2bool_var.h b/src/tactic/sat_tactic/atom2bool_var.h similarity index 87% rename from lib/atom2bool_var.h rename to src/tactic/sat_tactic/atom2bool_var.h index 8dbff5ea4..4d6ce79e0 100644 --- a/lib/atom2bool_var.h +++ b/src/tactic/sat_tactic/atom2bool_var.h @@ -35,10 +35,8 @@ public: bool interpreted_atoms() const { return expr2var::interpreted_vars(); } }; -class assertion_set; // TODO: delete class goal; -void collect_boolean_interface(assertion_set const & s, obj_hashtable & r); // TODO delete void collect_boolean_interface(goal const & g, obj_hashtable & r); void collect_boolean_interface(ast_manager & m, unsigned num, expr * const * fs, obj_hashtable & r); diff --git a/lib/goal2sat.cpp b/src/tactic/sat_tactic/goal2sat.cpp similarity index 100% rename from lib/goal2sat.cpp rename to src/tactic/sat_tactic/goal2sat.cpp diff --git a/lib/goal2sat.h b/src/tactic/sat_tactic/goal2sat.h similarity index 100% rename from lib/goal2sat.h rename to src/tactic/sat_tactic/goal2sat.h diff --git a/lib/sat_tactic.cpp b/src/tactic/sat_tactic/sat_tactic.cpp similarity index 100% rename from lib/sat_tactic.cpp rename to src/tactic/sat_tactic/sat_tactic.cpp diff --git a/lib/sat_tactic.h b/src/tactic/sat_tactic/sat_tactic.h similarity index 100% rename from lib/sat_tactic.h rename to src/tactic/sat_tactic/sat_tactic.h diff --git a/lib/sls_strategy.h b/src/tactic/sls_tactic/sls_strategy.h similarity index 100% rename from lib/sls_strategy.h rename to src/tactic/sls_tactic/sls_strategy.h diff --git a/lib/sls_tactic.cpp b/src/tactic/sls_tactic/sls_tactic.cpp similarity index 100% rename from lib/sls_tactic.cpp rename to src/tactic/sls_tactic/sls_tactic.cpp diff --git a/lib/sls_tactic.h b/src/tactic/sls_tactic/sls_tactic.h similarity index 100% rename from lib/sls_tactic.h rename to src/tactic/sls_tactic/sls_tactic.h diff --git a/lib/nra_tactic.cpp b/src/tactic/smtlogic_tactics/nra_tactic.cpp similarity index 100% rename from lib/nra_tactic.cpp rename to src/tactic/smtlogic_tactics/nra_tactic.cpp diff --git a/lib/nra_tactic.h b/src/tactic/smtlogic_tactics/nra_tactic.h similarity index 100% rename from lib/nra_tactic.h rename to src/tactic/smtlogic_tactics/nra_tactic.h diff --git a/lib/qfaufbv_tactic.cpp b/src/tactic/smtlogic_tactics/qfaufbv_tactic.cpp similarity index 100% rename from lib/qfaufbv_tactic.cpp rename to src/tactic/smtlogic_tactics/qfaufbv_tactic.cpp diff --git a/lib/qfaufbv_tactic.h b/src/tactic/smtlogic_tactics/qfaufbv_tactic.h similarity index 100% rename from lib/qfaufbv_tactic.h rename to src/tactic/smtlogic_tactics/qfaufbv_tactic.h diff --git a/lib/qfauflia_tactic.cpp b/src/tactic/smtlogic_tactics/qfauflia_tactic.cpp similarity index 100% rename from lib/qfauflia_tactic.cpp rename to src/tactic/smtlogic_tactics/qfauflia_tactic.cpp diff --git a/lib/qfauflia_tactic.h b/src/tactic/smtlogic_tactics/qfauflia_tactic.h similarity index 100% rename from lib/qfauflia_tactic.h rename to src/tactic/smtlogic_tactics/qfauflia_tactic.h diff --git a/lib/qfbv_tactic.cpp b/src/tactic/smtlogic_tactics/qfbv_tactic.cpp similarity index 100% rename from lib/qfbv_tactic.cpp rename to src/tactic/smtlogic_tactics/qfbv_tactic.cpp diff --git a/lib/qfbv_tactic.h b/src/tactic/smtlogic_tactics/qfbv_tactic.h similarity index 100% rename from lib/qfbv_tactic.h rename to src/tactic/smtlogic_tactics/qfbv_tactic.h diff --git a/lib/qfidl_tactic.cpp b/src/tactic/smtlogic_tactics/qfidl_tactic.cpp similarity index 100% rename from lib/qfidl_tactic.cpp rename to src/tactic/smtlogic_tactics/qfidl_tactic.cpp diff --git a/lib/qfidl_tactic.h b/src/tactic/smtlogic_tactics/qfidl_tactic.h similarity index 100% rename from lib/qfidl_tactic.h rename to src/tactic/smtlogic_tactics/qfidl_tactic.h diff --git a/lib/qflia_tactic.cpp b/src/tactic/smtlogic_tactics/qflia_tactic.cpp similarity index 100% rename from lib/qflia_tactic.cpp rename to src/tactic/smtlogic_tactics/qflia_tactic.cpp diff --git a/lib/qflia_tactic.h b/src/tactic/smtlogic_tactics/qflia_tactic.h similarity index 100% rename from lib/qflia_tactic.h rename to src/tactic/smtlogic_tactics/qflia_tactic.h diff --git a/lib/qflra_tactic.cpp b/src/tactic/smtlogic_tactics/qflra_tactic.cpp similarity index 100% rename from lib/qflra_tactic.cpp rename to src/tactic/smtlogic_tactics/qflra_tactic.cpp diff --git a/lib/qflra_tactic.h b/src/tactic/smtlogic_tactics/qflra_tactic.h similarity index 100% rename from lib/qflra_tactic.h rename to src/tactic/smtlogic_tactics/qflra_tactic.h diff --git a/lib/qfnia_tactic.cpp b/src/tactic/smtlogic_tactics/qfnia_tactic.cpp similarity index 100% rename from lib/qfnia_tactic.cpp rename to src/tactic/smtlogic_tactics/qfnia_tactic.cpp diff --git a/lib/qfnia_tactic.h b/src/tactic/smtlogic_tactics/qfnia_tactic.h similarity index 100% rename from lib/qfnia_tactic.h rename to src/tactic/smtlogic_tactics/qfnia_tactic.h diff --git a/lib/qfnra_tactic.cpp b/src/tactic/smtlogic_tactics/qfnra_tactic.cpp similarity index 100% rename from lib/qfnra_tactic.cpp rename to src/tactic/smtlogic_tactics/qfnra_tactic.cpp diff --git a/lib/qfnra_tactic.h b/src/tactic/smtlogic_tactics/qfnra_tactic.h similarity index 100% rename from lib/qfnra_tactic.h rename to src/tactic/smtlogic_tactics/qfnra_tactic.h diff --git a/lib/qfuf_tactic.cpp b/src/tactic/smtlogic_tactics/qfuf_tactic.cpp similarity index 100% rename from lib/qfuf_tactic.cpp rename to src/tactic/smtlogic_tactics/qfuf_tactic.cpp diff --git a/lib/qfuf_tactic.h b/src/tactic/smtlogic_tactics/qfuf_tactic.h similarity index 100% rename from lib/qfuf_tactic.h rename to src/tactic/smtlogic_tactics/qfuf_tactic.h diff --git a/lib/qfufbv_tactic.cpp b/src/tactic/smtlogic_tactics/qfufbv_tactic.cpp similarity index 100% rename from lib/qfufbv_tactic.cpp rename to src/tactic/smtlogic_tactics/qfufbv_tactic.cpp diff --git a/lib/qfufbv_tactic.h b/src/tactic/smtlogic_tactics/qfufbv_tactic.h similarity index 100% rename from lib/qfufbv_tactic.h rename to src/tactic/smtlogic_tactics/qfufbv_tactic.h diff --git a/lib/quant_tactics.cpp b/src/tactic/smtlogic_tactics/quant_tactics.cpp similarity index 100% rename from lib/quant_tactics.cpp rename to src/tactic/smtlogic_tactics/quant_tactics.cpp diff --git a/lib/quant_tactics.h b/src/tactic/smtlogic_tactics/quant_tactics.h similarity index 100% rename from lib/quant_tactics.h rename to src/tactic/smtlogic_tactics/quant_tactics.h diff --git a/lib/tactic.cpp b/src/tactic/tactic.cpp similarity index 72% rename from lib/tactic.cpp rename to src/tactic/tactic.cpp index cc2f3bc3f..4bf9e48f4 100644 --- a/lib/tactic.cpp +++ b/src/tactic/tactic.cpp @@ -21,7 +21,6 @@ Notes: #include"probe.h" #include"stopwatch.h" #include"model_v2_pp.h" -#include"cmd_context.h" void tactic::cancel() { #pragma omp critical (tactic_cancel) @@ -81,25 +80,17 @@ void report_tactic_progress(char const * id, unsigned val) { } } - -class skip_tactic : public tactic { -public: - virtual void operator()(goal_ref const & in, - goal_ref_buffer & result, - model_converter_ref & mc, - proof_converter_ref & pc, - expr_dependency_ref & core) { - result.reset(); - result.push_back(in.get()); - mc = 0; - pc = 0; - core = 0; - } - - virtual void cleanup() {} - - virtual tactic * translate(ast_manager & m) { return this; } -}; +void skip_tactic::operator()(goal_ref const & in, + goal_ref_buffer & result, + model_converter_ref & mc, + proof_converter_ref & pc, + expr_dependency_ref & core) { + result.reset(); + result.push_back(in.get()); + mc = 0; + pc = 0; + core = 0; +} tactic * mk_skip_tactic() { return alloc(skip_tactic); @@ -163,69 +154,6 @@ tactic * mk_trace_tactic(char const * tag) { return alloc(trace_tactic, tag); } -class echo_tactic : public skip_tactic { - cmd_context & m_ctx; - char const * m_msg; - bool m_newline; -public: - echo_tactic(cmd_context & ctx, char const * msg, bool newline):m_ctx(ctx), m_msg(msg), m_newline(newline) {} - - virtual void operator()(goal_ref const & in, - goal_ref_buffer & result, - model_converter_ref & mc, - proof_converter_ref & pc, - expr_dependency_ref & core) { - #pragma omp critical (echo_tactic) - { - m_ctx.diagnostic_stream() << m_msg; - if (m_newline) - m_ctx.diagnostic_stream() << std::endl; - } - skip_tactic::operator()(in, result, mc, pc, core); - } -}; - -tactic * mk_echo_tactic(cmd_context & ctx, char const * msg, bool newline) { - return alloc(echo_tactic, ctx, msg, newline); -} - -class probe_value_tactic : public skip_tactic { - cmd_context & m_ctx; - char const * m_msg; - probe * m_p; - bool m_newline; -public: - probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline):m_ctx(ctx), m_msg(msg), m_p(p), m_newline(newline) { - SASSERT(m_p); - m_p->inc_ref(); - } - - ~probe_value_tactic() { - m_p->dec_ref(); - } - - virtual void operator()(goal_ref const & in, - goal_ref_buffer & result, - model_converter_ref & mc, - proof_converter_ref & pc, - expr_dependency_ref & core) { - double val = (*m_p)(*(in.get())).get_value(); - #pragma omp critical (probe_value_tactic) - { - if (m_msg) - m_ctx.diagnostic_stream() << m_msg << " "; - m_ctx.diagnostic_stream() << val; - if (m_newline) - m_ctx.diagnostic_stream() << std::endl; - } - skip_tactic::operator()(in, result, mc, pc, core); - } -}; - -tactic * mk_probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline) { - return alloc(probe_value_tactic, ctx, msg, p, newline); -} - class fail_if_undecided_tactic : public skip_tactic { public: fail_if_undecided_tactic() {} diff --git a/lib/tactic.h b/src/tactic/tactic.h similarity index 94% rename from lib/tactic.h rename to src/tactic/tactic.h index 2b3a34ca6..fb443cd41 100644 --- a/lib/tactic.h +++ b/src/tactic/tactic.h @@ -117,17 +117,19 @@ public: void report_tactic_progress(char const * id, unsigned val); +class skip_tactic : public tactic { +public: + virtual void operator()(goal_ref const & in, goal_ref_buffer & result, model_converter_ref & mc, proof_converter_ref & pc, expr_dependency_ref & core); + virtual void cleanup() {} + virtual tactic * translate(ast_manager & m) { return this; } +}; + tactic * mk_skip_tactic(); tactic * mk_fail_tactic(); tactic * mk_fail_if_undecided_tactic(); tactic * mk_report_verbose_tactic(char const * msg, unsigned lvl); tactic * mk_trace_tactic(char const * tag); -tactic * mk_echo_tactic(cmd_context & ctx, char const * msg, bool newline = true); -// Display the value returned by p in the diagnostic_stream -class probe; -tactic * mk_probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline = true); - class tactic_factory { public: diff --git a/lib/tactical.cpp b/src/tactic/tactical.cpp similarity index 100% rename from lib/tactical.cpp rename to src/tactic/tactical.cpp diff --git a/lib/tactical.h b/src/tactic/tactical.h similarity index 100% rename from lib/tactical.h rename to src/tactic/tactical.h diff --git a/lib/ufbv_rewriter.cpp b/src/tactic/ufbv_tactic/ufbv_rewriter.cpp similarity index 100% rename from lib/ufbv_rewriter.cpp rename to src/tactic/ufbv_tactic/ufbv_rewriter.cpp diff --git a/lib/ufbv_rewriter.h b/src/tactic/ufbv_tactic/ufbv_rewriter.h similarity index 100% rename from lib/ufbv_rewriter.h rename to src/tactic/ufbv_tactic/ufbv_rewriter.h diff --git a/lib/ufbv_tactic.cpp b/src/tactic/ufbv_tactic/ufbv_tactic.cpp similarity index 99% rename from lib/ufbv_tactic.cpp rename to src/tactic/ufbv_tactic/ufbv_tactic.cpp index e576f5cbb..3091d6e53 100644 --- a/lib/ufbv_tactic.cpp +++ b/src/tactic/ufbv_tactic/ufbv_tactic.cpp @@ -31,7 +31,7 @@ Notes: #include"elim_var_model_converter.h" #include"ufbv_rewriter.h" #include"distribute_forall_tactic.h" -#include"der.h" +#include"der_tactic.h" #include"reduce_args_tactic.h" #include"smt_tactic.h" #include"ufbv_tactic.h" @@ -361,7 +361,7 @@ class quasi_macros_tactic : public tactic { while (more) { // CMW: use repeat(...) ? if (m_cancel) - throw strategy_exception(STE_CANCELED_MSG); + throw tactic_exception(TACTIC_CANCELED_MSG); new_forms.reset(); new_proofs.reset(); @@ -495,4 +495,4 @@ tactic * mk_ufbv_tactic(ast_manager & m, params_ref const & p) { t->updt_params(p); return t; -} \ No newline at end of file +} diff --git a/lib/ufbv_tactic.h b/src/tactic/ufbv_tactic/ufbv_tactic.h similarity index 100% rename from lib/ufbv_tactic.h rename to src/tactic/ufbv_tactic/ufbv_tactic.h diff --git a/test/algebraic.cpp b/src/test/algebraic.cpp similarity index 100% rename from test/algebraic.cpp rename to src/test/algebraic.cpp diff --git a/test/api.cpp b/src/test/api.cpp similarity index 100% rename from test/api.cpp rename to src/test/api.cpp diff --git a/test/api_bug.cpp b/src/test/api_bug.cpp similarity index 96% rename from test/api_bug.cpp rename to src/test/api_bug.cpp index 917ac7dd6..4519b2352 100644 --- a/test/api_bug.cpp +++ b/src/test/api_bug.cpp @@ -1,5 +1,5 @@ -#include "z3.h" -#include "stdio.h" +#include +#include"z3.h" void tst_api_bug() { unsigned vmajor, vminor, vbuild, vrevision; diff --git a/test/arith_rewriter.cpp b/src/test/arith_rewriter.cpp similarity index 88% rename from test/arith_rewriter.cpp rename to src/test/arith_rewriter.cpp index 04b018646..0933e9d11 100644 --- a/test/arith_rewriter.cpp +++ b/src/test/arith_rewriter.cpp @@ -1,10 +1,11 @@ #include "arith_rewriter.h" #include "bv_decl_plugin.h" #include "ast_pp.h" +#include "reg_decl_plugins.h" void tst_arith_rewriter() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_rewriter ar(m); arith_util au(m); expr_ref t1(m), t2(m), result(m); diff --git a/test/arith_simplifier_plugin.cpp b/src/test/arith_simplifier_plugin.cpp similarity index 100% rename from test/arith_simplifier_plugin.cpp rename to src/test/arith_simplifier_plugin.cpp diff --git a/test/array_property_expander.cpp b/src/test/array_property_expander.cpp similarity index 100% rename from test/array_property_expander.cpp rename to src/test/array_property_expander.cpp diff --git a/test/ast.cpp b/src/test/ast.cpp similarity index 100% rename from test/ast.cpp rename to src/test/ast.cpp diff --git a/test/ast_pp.cpp b/src/test/ast_pp.cpp similarity index 100% rename from test/ast_pp.cpp rename to src/test/ast_pp.cpp diff --git a/test/ast_smt_pp.cpp b/src/test/ast_smt_pp.cpp similarity index 100% rename from test/ast_smt_pp.cpp rename to src/test/ast_smt_pp.cpp diff --git a/test/bit_blaster.cpp b/src/test/bit_blaster.cpp similarity index 100% rename from test/bit_blaster.cpp rename to src/test/bit_blaster.cpp diff --git a/test/bit_vector.cpp b/src/test/bit_vector.cpp similarity index 100% rename from test/bit_vector.cpp rename to src/test/bit_vector.cpp diff --git a/test/bits.cpp b/src/test/bits.cpp similarity index 100% rename from test/bits.cpp rename to src/test/bits.cpp diff --git a/test/buffer.cpp b/src/test/buffer.cpp similarity index 100% rename from test/buffer.cpp rename to src/test/buffer.cpp diff --git a/test/bv_simplifier_plugin.cpp b/src/test/bv_simplifier_plugin.cpp similarity index 99% rename from test/bv_simplifier_plugin.cpp rename to src/test/bv_simplifier_plugin.cpp index 9c9a7100b..271d1a534 100644 --- a/test/bv_simplifier_plugin.cpp +++ b/src/test/bv_simplifier_plugin.cpp @@ -1,6 +1,7 @@ #include "bv_simplifier_plugin.h" #include "arith_decl_plugin.h" #include "ast_pp.h" +#include "reg_decl_plugins.h" class tst_bv_simplifier_plugin_cls { ast_manager m_manager; @@ -79,7 +80,7 @@ public: m_arith(m_manager), m_simp(m_manager, m_bsimp, m_bv_params), m_fid(m_manager.get_family_id("bv")) { - m_manager.register_decl_plugins(); + reg_decl_plugins(m_manager); } ~tst_bv_simplifier_plugin_cls() {} diff --git a/test/chashtable.cpp b/src/test/chashtable.cpp similarity index 100% rename from test/chashtable.cpp rename to src/test/chashtable.cpp diff --git a/test/check_assumptions.cpp b/src/test/check_assumptions.cpp similarity index 95% rename from test/check_assumptions.cpp rename to src/test/check_assumptions.cpp index dce982345..033e3fdc9 100644 --- a/test/check_assumptions.cpp +++ b/src/test/check_assumptions.cpp @@ -4,13 +4,14 @@ #include "arith_decl_plugin.h" #include "bv_decl_plugin.h" #include "smt_context.h" +#include "reg_decl_plugins.h" void tst_check_assumptions() { memory::initialize(0); front_end_params params; ast_manager mgr; - mgr.register_decl_plugins(); + reg_decl_plugins(mgr); sort_ref b(mgr.mk_bool_sort(), mgr); func_decl_ref pPred(mgr.mk_func_decl(symbol("p"), 0, static_cast(0), b), mgr); diff --git a/test/datalog_parser.cpp b/src/test/datalog_parser.cpp similarity index 96% rename from test/datalog_parser.cpp rename to src/test/datalog_parser.cpp index 489808aba..2d8a04225 100644 --- a/test/datalog_parser.cpp +++ b/src/test/datalog_parser.cpp @@ -3,6 +3,7 @@ #include "arith_decl_plugin.h" #include "dl_context.h" #include "front_end_params.h" +#include "reg_decl_plugins.h" using namespace datalog; @@ -10,7 +11,7 @@ using namespace datalog; static void dparse_string(char const* str) { ast_manager m; front_end_params params; - m.register_decl_plugins(); + reg_decl_plugins(m); context ctx(m, params); parser* p = parser::create(ctx,m); @@ -37,7 +38,7 @@ static void dparse_string(char const* str) { static void dparse_file(char const* file) { ast_manager m; front_end_params params; - m.register_decl_plugins(); + reg_decl_plugins(m); context ctx(m, params); parser* p = parser::create(ctx,m); diff --git a/test/par_dll.cpp b/src/test/dead/par_dll.cpp similarity index 98% rename from test/par_dll.cpp rename to src/test/dead/par_dll.cpp index b83df67b8..eb3a572e3 100644 --- a/test/par_dll.cpp +++ b/src/test/dead/par_dll.cpp @@ -1,5 +1,5 @@ #include "z3.h" -#include "windows.h" +#include class thread_check { diff --git a/test/parallel.cpp b/src/test/dead/parallel.cpp similarity index 98% rename from test/parallel.cpp rename to src/test/dead/parallel.cpp index 14f4d4b08..c7471d472 100644 --- a/test/parallel.cpp +++ b/src/test/dead/parallel.cpp @@ -10,7 +10,7 @@ #include "vector.h" #include "buffer.h" #undef ARRAYSIZE -#include "windows.h" +#include class thread_check { diff --git a/test/diff_logic.cpp b/src/test/diff_logic.cpp similarity index 100% rename from test/diff_logic.cpp rename to src/test/diff_logic.cpp diff --git a/test/dl_context.cpp b/src/test/dl_context.cpp similarity index 100% rename from test/dl_context.cpp rename to src/test/dl_context.cpp diff --git a/test/dl_product_relation.cpp b/src/test/dl_product_relation.cpp similarity index 100% rename from test/dl_product_relation.cpp rename to src/test/dl_product_relation.cpp diff --git a/test/dl_query.cpp b/src/test/dl_query.cpp similarity index 99% rename from test/dl_query.cpp rename to src/test/dl_query.cpp index 9d99c6ee6..469797bf0 100644 --- a/test/dl_query.cpp +++ b/src/test/dl_query.cpp @@ -3,7 +3,8 @@ #include "dl_table_relation.h" #include "dl_context.h" #include "front_end_params.h" -#include"stopwatch.h" +#include "stopwatch.h" +#include "reg_decl_plugins.h" using namespace datalog; @@ -127,7 +128,7 @@ void dl_query_test(ast_manager & m, front_end_params & fparams, params_ref& para void dl_query_test_wpa(front_end_params & fparams, params_ref& params) { params.set_bool(":magic-sets-for-queries", true); ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util arith(m); const char * problem_dir = "C:\\tvm\\src\\z3_2\\debug\\test\\w0.datalog"; dl_decl_util dl_util(m); diff --git a/test/dl_relation.cpp b/src/test/dl_relation.cpp similarity index 100% rename from test/dl_relation.cpp rename to src/test/dl_relation.cpp diff --git a/test/dl_rule_set.cpp b/src/test/dl_rule_set.cpp similarity index 100% rename from test/dl_rule_set.cpp rename to src/test/dl_rule_set.cpp diff --git a/test/dl_smt_relation.cpp b/src/test/dl_smt_relation.cpp similarity index 99% rename from test/dl_smt_relation.cpp rename to src/test/dl_smt_relation.cpp index bf34688ea..0a473a7f9 100644 --- a/test/dl_smt_relation.cpp +++ b/src/test/dl_smt_relation.cpp @@ -3,13 +3,14 @@ #include "dl_context.h" #include "z3.h" #include "z3_private.h" +#include "reg_decl_plugins.h" namespace datalog { void test_smt_relation_unit() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util a(m); sort* int_sort = a.mk_int(); sort* real_sort = a.mk_real(); diff --git a/test/dl_table.cpp b/src/test/dl_table.cpp similarity index 100% rename from test/dl_table.cpp rename to src/test/dl_table.cpp diff --git a/test/dl_util.cpp b/src/test/dl_util.cpp similarity index 100% rename from test/dl_util.cpp rename to src/test/dl_util.cpp diff --git a/test/escaped.cpp b/src/test/escaped.cpp similarity index 100% rename from test/escaped.cpp rename to src/test/escaped.cpp diff --git a/test/ex.cpp b/src/test/ex.cpp similarity index 100% rename from test/ex.cpp rename to src/test/ex.cpp diff --git a/test/expr_context_simplifier.cpp b/src/test/expr_context_simplifier.cpp similarity index 95% rename from test/expr_context_simplifier.cpp rename to src/test/expr_context_simplifier.cpp index 91bd29ca7..1ff4944d8 100644 --- a/test/expr_context_simplifier.cpp +++ b/src/test/expr_context_simplifier.cpp @@ -1,6 +1,7 @@ #include "expr_context_simplifier.h" #include "smtparser.h" #include "ast_pp.h" +#include "reg_decl_plugins.h" static void simplify_formula(ast_manager& m, expr* e) { expr_ref result(m); @@ -19,7 +20,7 @@ void tst_expr_context_simplifier() { ast_manager m; smtlib::parser* parser = smtlib::parser::create(m); - m.register_decl_plugins(); + reg_decl_plugins(m); parser->initialize_smtlib(); diff --git a/test/expr_delta.cpp b/src/test/expr_delta.cpp similarity index 100% rename from test/expr_delta.cpp rename to src/test/expr_delta.cpp diff --git a/test/expr_pattern_match.cpp b/src/test/expr_pattern_match.cpp similarity index 96% rename from test/expr_pattern_match.cpp rename to src/test/expr_pattern_match.cpp index 4e1fef1ed..e7088913e 100644 --- a/test/expr_pattern_match.cpp +++ b/src/test/expr_pattern_match.cpp @@ -4,10 +4,11 @@ #include "arith_decl_plugin.h" #include "bv_decl_plugin.h" #include "array_decl_plugin.h" +#include "reg_decl_plugins.h" void tst_expr_pattern_match() { ast_manager manager; - manager.register_decl_plugins(); + reg_decl_plugins(manager); expr_pattern_match apm(manager); diff --git a/test/expr_rand.cpp b/src/test/expr_rand.cpp similarity index 98% rename from test/expr_rand.cpp rename to src/test/expr_rand.cpp index fec4e5d3f..1ceeba8b8 100644 --- a/test/expr_rand.cpp +++ b/src/test/expr_rand.cpp @@ -6,12 +6,13 @@ #include "ast_smt_pp.h" #include #include +#include "reg_decl_plugins.h" static unsigned rand_seed = 1; void tst_expr_arith(unsigned num_files) { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); expr_rand er(m); er.seed(rand_seed); diff --git a/test/ext_numeral.cpp b/src/test/ext_numeral.cpp similarity index 100% rename from test/ext_numeral.cpp rename to src/test/ext_numeral.cpp diff --git a/test/f2n.cpp b/src/test/f2n.cpp similarity index 100% rename from test/f2n.cpp rename to src/test/f2n.cpp diff --git a/test/factor_rewriter.cpp b/src/test/factor_rewriter.cpp similarity index 90% rename from test/factor_rewriter.cpp rename to src/test/factor_rewriter.cpp index 110df86a3..625710fe1 100644 --- a/test/factor_rewriter.cpp +++ b/src/test/factor_rewriter.cpp @@ -1,10 +1,11 @@ #include "factor_rewriter.h" #include "bv_decl_plugin.h" #include "ast_pp.h" +#include "reg_decl_plugins.h" void tst_factor_rewriter() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); factor_rewriter_star fw(m); arith_util a(m); diff --git a/test/for_each_file.cpp b/src/test/for_each_file.cpp similarity index 100% rename from test/for_each_file.cpp rename to src/test/for_each_file.cpp diff --git a/test/for_each_file.h b/src/test/for_each_file.h similarity index 100% rename from test/for_each_file.h rename to src/test/for_each_file.h diff --git a/lib/expr_delta.cpp b/src/test/fuzzing/expr_delta.cpp similarity index 100% rename from lib/expr_delta.cpp rename to src/test/fuzzing/expr_delta.cpp diff --git a/lib/expr_delta.h b/src/test/fuzzing/expr_delta.h similarity index 100% rename from lib/expr_delta.h rename to src/test/fuzzing/expr_delta.h diff --git a/lib/expr_rand.cpp b/src/test/fuzzing/expr_rand.cpp similarity index 100% rename from lib/expr_rand.cpp rename to src/test/fuzzing/expr_rand.cpp diff --git a/lib/expr_rand.h b/src/test/fuzzing/expr_rand.h similarity index 100% rename from lib/expr_rand.h rename to src/test/fuzzing/expr_rand.h diff --git a/test/fvi.cpp b/src/test/fvi.cpp similarity index 100% rename from test/fvi.cpp rename to src/test/fvi.cpp diff --git a/test/get_implied_equalities.cpp b/src/test/get_implied_equalities.cpp similarity index 100% rename from test/get_implied_equalities.cpp rename to src/test/get_implied_equalities.cpp diff --git a/test/grobner.cpp b/src/test/grobner.cpp similarity index 97% rename from test/grobner.cpp rename to src/test/grobner.cpp index 92ba2c854..89aea5049 100644 --- a/test/grobner.cpp +++ b/src/test/grobner.cpp @@ -24,6 +24,7 @@ Revision History: #include"arith_simplifier_plugin.h" #include"front_end_params.h" #include"grobner.h" +#include"reg_decl_plugins.h" void display_eqs(grobner & gb, v_dependency_manager & dep_m) { std::cerr << "RESULT:\n"; @@ -55,7 +56,7 @@ void tst_grobner(char ** argv, int argc, int & i) { ast_manager m; smtlib::parser* parser = smtlib::parser::create(m); - m.register_decl_plugins(); + reg_decl_plugins(m); parser->initialize_smtlib(); if (!parser->parse_file(file_path)) { diff --git a/test/hashtable.cpp b/src/test/hashtable.cpp similarity index 100% rename from test/hashtable.cpp rename to src/test/hashtable.cpp diff --git a/test/heap.cpp b/src/test/heap.cpp similarity index 100% rename from test/heap.cpp rename to src/test/heap.cpp diff --git a/test/horn_subsume_model_converter.cpp b/src/test/horn_subsume_model_converter.cpp similarity index 97% rename from test/horn_subsume_model_converter.cpp rename to src/test/horn_subsume_model_converter.cpp index c99a50c87..28359b954 100644 --- a/test/horn_subsume_model_converter.cpp +++ b/src/test/horn_subsume_model_converter.cpp @@ -2,10 +2,11 @@ #include "horn_subsume_model_converter.h" #include "arith_decl_plugin.h" #include "model_smt2_pp.h" +#include "reg_decl_plugins.h" void tst_horn_subsume_model_converter() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util a(m); ptr_vector ints; diff --git a/test/hwf.cpp b/src/test/hwf.cpp similarity index 100% rename from test/hwf.cpp rename to src/test/hwf.cpp diff --git a/test/im_float_config.h b/src/test/im_float_config.h similarity index 100% rename from test/im_float_config.h rename to src/test/im_float_config.h diff --git a/test/imdd.cpp b/src/test/imdd.cpp similarity index 100% rename from test/imdd.cpp rename to src/test/imdd.cpp diff --git a/test/inf_rational.cpp b/src/test/inf_rational.cpp similarity index 100% rename from test/inf_rational.cpp rename to src/test/inf_rational.cpp diff --git a/test/ini_file.cpp b/src/test/ini_file.cpp similarity index 100% rename from test/ini_file.cpp rename to src/test/ini_file.cpp diff --git a/test/interval.cpp b/src/test/interval.cpp similarity index 100% rename from test/interval.cpp rename to src/test/interval.cpp diff --git a/test/interval_skip_list.cpp b/src/test/interval_skip_list.cpp similarity index 100% rename from test/interval_skip_list.cpp rename to src/test/interval_skip_list.cpp diff --git a/test/list.cpp b/src/test/list.cpp similarity index 100% rename from test/list.cpp rename to src/test/list.cpp diff --git a/test/main.cpp b/src/test/main.cpp similarity index 99% rename from test/main.cpp rename to src/test/main.cpp index cc3c59158..edeced68d 100644 --- a/test/main.cpp +++ b/src/test/main.cpp @@ -167,7 +167,6 @@ int main(int argc, char ** argv) { TST(interval_skip_list); TST(no_overflow); TST(memory); - TST(parallel); TST(get_implied_equalities); TST(arith_simplifier_plugin); TST(quant_elim); diff --git a/test/map.cpp b/src/test/map.cpp similarity index 100% rename from test/map.cpp rename to src/test/map.cpp diff --git a/test/matcher.cpp b/src/test/matcher.cpp similarity index 100% rename from test/matcher.cpp rename to src/test/matcher.cpp diff --git a/test/memory.cpp b/src/test/memory.cpp similarity index 100% rename from test/memory.cpp rename to src/test/memory.cpp diff --git a/test/model2expr.cpp b/src/test/model2expr.cpp similarity index 96% rename from test/model2expr.cpp rename to src/test/model2expr.cpp index 3040ddadc..abca706c1 100644 --- a/test/model2expr.cpp +++ b/src/test/model2expr.cpp @@ -2,10 +2,11 @@ #include "ast_pp.h" #include "arith_decl_plugin.h" #include "model_smt2_pp.h" +#include "reg_decl_plugins.h" void tst_model2expr() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util a(m); ptr_vector ints; diff --git a/test/model_retrieval.cpp b/src/test/model_retrieval.cpp similarity index 97% rename from test/model_retrieval.cpp rename to src/test/model_retrieval.cpp index 96d956b0e..2fa1cb24f 100644 --- a/test/model_retrieval.cpp +++ b/src/test/model_retrieval.cpp @@ -6,6 +6,7 @@ #include "bv_decl_plugin.h" #include "array_decl_plugin.h" #include "model_v2_pp.h" +#include "reg_decl_plugins.h" void tst_model_retrieval() { @@ -15,7 +16,7 @@ void tst_model_retrieval() ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); family_id array_fid = m.get_family_id(symbol("array")); array_util au(m); diff --git a/test/mpbq.cpp b/src/test/mpbq.cpp similarity index 100% rename from test/mpbq.cpp rename to src/test/mpbq.cpp diff --git a/test/mpf.cpp b/src/test/mpf.cpp similarity index 100% rename from test/mpf.cpp rename to src/test/mpf.cpp diff --git a/test/mpff.cpp b/src/test/mpff.cpp similarity index 100% rename from test/mpff.cpp rename to src/test/mpff.cpp diff --git a/test/mpfx.cpp b/src/test/mpfx.cpp similarity index 100% rename from test/mpfx.cpp rename to src/test/mpfx.cpp diff --git a/test/mpq.cpp b/src/test/mpq.cpp similarity index 100% rename from test/mpq.cpp rename to src/test/mpq.cpp diff --git a/test/mpz.cpp b/src/test/mpz.cpp similarity index 100% rename from test/mpz.cpp rename to src/test/mpz.cpp diff --git a/test/nlarith_util.cpp b/src/test/nlarith_util.cpp similarity index 96% rename from test/nlarith_util.cpp rename to src/test/nlarith_util.cpp index 87d5f9594..f08fa020e 100644 --- a/test/nlarith_util.cpp +++ b/src/test/nlarith_util.cpp @@ -1,10 +1,11 @@ #include "nlarith_util.h" #include "arith_decl_plugin.h" #include "ast_pp.h" +#include "reg_decl_plugins.h" void tst_nlarith_util() { ast_manager M; - M.register_decl_plugins(); + reg_decl_plugins(M); arith_util A(M); sort_ref R(A.mk_real(), M); app_ref one(A.mk_numeral(rational(1), false), M); diff --git a/test/nlsat.cpp b/src/test/nlsat.cpp similarity index 100% rename from test/nlsat.cpp rename to src/test/nlsat.cpp diff --git a/test/no_overflow.cpp b/src/test/no_overflow.cpp similarity index 100% rename from test/no_overflow.cpp rename to src/test/no_overflow.cpp diff --git a/test/object_allocator.cpp b/src/test/object_allocator.cpp similarity index 100% rename from test/object_allocator.cpp rename to src/test/object_allocator.cpp diff --git a/test/old_interval.cpp b/src/test/old_interval.cpp similarity index 100% rename from test/old_interval.cpp rename to src/test/old_interval.cpp diff --git a/test/optional.cpp b/src/test/optional.cpp similarity index 100% rename from test/optional.cpp rename to src/test/optional.cpp diff --git a/test/parray.cpp b/src/test/parray.cpp similarity index 100% rename from test/parray.cpp rename to src/test/parray.cpp diff --git a/test/permutation.cpp b/src/test/permutation.cpp similarity index 100% rename from test/permutation.cpp rename to src/test/permutation.cpp diff --git a/test/polynomial.cpp b/src/test/polynomial.cpp similarity index 100% rename from test/polynomial.cpp rename to src/test/polynomial.cpp diff --git a/test/polynomial_factorization.cpp b/src/test/polynomial_factorization.cpp similarity index 100% rename from test/polynomial_factorization.cpp rename to src/test/polynomial_factorization.cpp diff --git a/test/prime_generator.cpp b/src/test/prime_generator.cpp similarity index 100% rename from test/prime_generator.cpp rename to src/test/prime_generator.cpp diff --git a/test/proof_checker.cpp b/src/test/proof_checker.cpp similarity index 100% rename from test/proof_checker.cpp rename to src/test/proof_checker.cpp diff --git a/test/qe_defs.cpp b/src/test/qe_defs.cpp similarity index 97% rename from test/qe_defs.cpp rename to src/test/qe_defs.cpp index 0620a3b59..d1c8232d8 100644 --- a/test/qe_defs.cpp +++ b/src/test/qe_defs.cpp @@ -2,6 +2,7 @@ #include "qe.h" #include "ast_pp.h" #include "smtparser.h" +#include "reg_decl_plugins.h" static void test_defs(ast_manager& m, expr* _fml) { @@ -48,7 +49,7 @@ static void test_defs_all(ast_manager& m, expr* _fml) { static void test_defs(char const* str) { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); scoped_ptr parser = smtlib::parser::create(m); parser->initialize_smtlib(); std::ostringstream buffer; diff --git a/test/quant_elim.cpp b/src/test/quant_elim.cpp similarity index 99% rename from test/quant_elim.cpp rename to src/test/quant_elim.cpp index 0947b5583..3e8e8b16f 100644 --- a/test/quant_elim.cpp +++ b/src/test/quant_elim.cpp @@ -11,6 +11,7 @@ #include "smtparser.h" #include "lbool.h" #include +#include "reg_decl_plugins.h" static void test_qe(ast_manager& m, lbool expected_outcome, expr* fml, char const* option) { @@ -52,7 +53,7 @@ static void test_qe(ast_manager& m, lbool expected_outcome, expr* fml, char cons static void test_formula(lbool expected_outcome, char const* fml) { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); scoped_ptr parser = smtlib::parser::create(m); parser->initialize_smtlib(); diff --git a/test/quant_solve.cpp b/src/test/quant_solve.cpp similarity index 98% rename from test/quant_solve.cpp rename to src/test/quant_solve.cpp index 096ae33de..003ae26b4 100644 --- a/test/quant_solve.cpp +++ b/src/test/quant_solve.cpp @@ -7,6 +7,7 @@ #include #include "expr_replacer.h" #include "smt_solver.h" +#include "reg_decl_plugins.h" static void validate_quant_solution(ast_manager& m, app* x, expr* fml, expr* t, expr* new_fml) { // verify: @@ -86,7 +87,7 @@ static void test_quant_solve1() { ast_manager m; arith_util ar(m); - m.register_decl_plugins(); + reg_decl_plugins(m); sort* i = ar.mk_int(); app_ref x(m.mk_const(symbol("x"),i), m); app_ref y(m.mk_const(symbol("y"),i), m); diff --git a/test/random.cpp b/src/test/random.cpp similarity index 100% rename from test/random.cpp rename to src/test/random.cpp diff --git a/test/rational.cpp b/src/test/rational.cpp similarity index 100% rename from test/rational.cpp rename to src/test/rational.cpp diff --git a/test/region.cpp b/src/test/region.cpp similarity index 100% rename from test/region.cpp rename to src/test/region.cpp diff --git a/test/simple_parser.cpp b/src/test/simple_parser.cpp similarity index 96% rename from test/simple_parser.cpp rename to src/test/simple_parser.cpp index 189fcd2cf..a5d4d8def 100644 --- a/test/simple_parser.cpp +++ b/src/test/simple_parser.cpp @@ -22,10 +22,11 @@ Revision History: #include"ast_pp.h" #include"well_sorted.h" #include"warning.h" +#include"reg_decl_plugins.h" void tst_simple_parser() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util m_util(m); cost_parser p(m); var_ref_vector vs(m); diff --git a/test/simplifier.cpp b/src/test/simplifier.cpp similarity index 100% rename from test/simplifier.cpp rename to src/test/simplifier.cpp diff --git a/test/small_object_allocator.cpp b/src/test/small_object_allocator.cpp similarity index 100% rename from test/small_object_allocator.cpp rename to src/test/small_object_allocator.cpp diff --git a/test/smt2print_parse.cpp b/src/test/smt2print_parse.cpp similarity index 100% rename from test/smt2print_parse.cpp rename to src/test/smt2print_parse.cpp diff --git a/test/smt_context.cpp b/src/test/smt_context.cpp similarity index 92% rename from test/smt_context.cpp rename to src/test/smt_context.cpp index 48ac71077..853bde068 100644 --- a/test/smt_context.cpp +++ b/src/test/smt_context.cpp @@ -1,11 +1,12 @@ #include "smt_context.h" +#include "reg_decl_plugins.h" void tst_smt_context() { front_end_params params; ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); smt::context ctx(m, params); diff --git a/test/smtparser.cpp b/src/test/smtparser.cpp similarity index 94% rename from test/smtparser.cpp rename to src/test/smtparser.cpp index 6aa6f0e06..dc4f0eb74 100644 --- a/test/smtparser.cpp +++ b/src/test/smtparser.cpp @@ -7,7 +7,7 @@ #include "for_each_file.h" #include "array_decl_plugin.h" #include "bv_decl_plugin.h" - +#include "reg_decl_plugins.h" class for_each_file_smt : public for_each_file_proc { public: @@ -19,7 +19,7 @@ public: ast_manager ast_manager; smtlib::parser* parser = smtlib::parser::create(ast_manager); - ast_manager.register_decl_plugins(); + reg_decl_plugins(ast_manager); parser->initialize_smtlib(); diff --git a/test/splay_tree.cpp b/src/test/splay_tree.cpp similarity index 100% rename from test/splay_tree.cpp rename to src/test/splay_tree.cpp diff --git a/test/stack.cpp b/src/test/stack.cpp similarity index 100% rename from test/stack.cpp rename to src/test/stack.cpp diff --git a/test/string_buffer.cpp b/src/test/string_buffer.cpp similarity index 100% rename from test/string_buffer.cpp rename to src/test/string_buffer.cpp diff --git a/test/substitution.cpp b/src/test/substitution.cpp similarity index 93% rename from test/substitution.cpp rename to src/test/substitution.cpp index 80549c72d..38f85bb11 100644 --- a/test/substitution.cpp +++ b/src/test/substitution.cpp @@ -5,7 +5,7 @@ #include "bv_decl_plugin.h" #include "ast_pp.h" #include "arith_decl_plugin.h" - +#include "reg_decl_plugins.h" void tst_substitution() { @@ -16,7 +16,7 @@ void tst_substitution() enable_trace("subst_bug"); ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); var_ref v1(m.mk_var(0, m.mk_bool_sort()), m); var_ref v2(m.mk_var(1, m.mk_bool_sort()), m); diff --git a/test/symbol.cpp b/src/test/symbol.cpp similarity index 100% rename from test/symbol.cpp rename to src/test/symbol.cpp diff --git a/test/symbol_table.cpp b/src/test/symbol_table.cpp similarity index 100% rename from test/symbol_table.cpp rename to src/test/symbol_table.cpp diff --git a/test/symmetry.cpp b/src/test/symmetry.cpp similarity index 99% rename from test/symmetry.cpp rename to src/test/symmetry.cpp index ff0a84dff..d296a346c 100644 --- a/test/symmetry.cpp +++ b/src/test/symmetry.cpp @@ -5,6 +5,7 @@ #include "nat_set.h" #include "stream_buffer.h" #include "obj_hashtable.h" +#include "reg_decl_plugins.h" class partition { public: @@ -723,7 +724,7 @@ public: void parse_file(char const* file_path, char const* file_tmp) { smtlib::parser* parser = smtlib::parser::create(m_mgr); - m_mgr.register_decl_plugins(); + reg_decl_plugins(m_mgr); parser->initialize_smtlib(); if (!parser->parse_file(file_path)) { diff --git a/test/test_util.h b/src/test/test_util.h similarity index 100% rename from test/test_util.h rename to src/test/test_util.h diff --git a/test/theory_dl.cpp b/src/test/theory_dl.cpp similarity index 93% rename from test/theory_dl.cpp rename to src/test/theory_dl.cpp index 9d5796963..d07ec34af 100644 --- a/test/theory_dl.cpp +++ b/src/test/theory_dl.cpp @@ -2,6 +2,7 @@ #include "dl_decl_plugin.h" #include "ast_pp.h" #include "model_v2_pp.h" +#include "reg_decl_plugins.h" void tst_theory_dl() { ast_manager m; @@ -9,7 +10,7 @@ void tst_theory_dl() { params.m_model = true; datalog::dl_decl_util u(m); smt::context ctx(m, params); - m.register_decl_plugins(); + reg_decl_plugins(m); expr_ref a(m), b(m), c(m); sort_ref s(m); s = u.mk_sort(symbol("S"),111); diff --git a/test/timeout.cpp b/src/test/timeout.cpp similarity index 85% rename from test/timeout.cpp rename to src/test/timeout.cpp index 4e2e83847..19daebb12 100644 --- a/test/timeout.cpp +++ b/src/test/timeout.cpp @@ -4,7 +4,7 @@ #ifdef _WINDOWS -#include "windows.h" +#include void tst_timeout() { } diff --git a/test/total_order.cpp b/src/test/total_order.cpp similarity index 100% rename from test/total_order.cpp rename to src/test/total_order.cpp diff --git a/test/trigo.cpp b/src/test/trigo.cpp similarity index 100% rename from test/trigo.cpp rename to src/test/trigo.cpp diff --git a/test/uint_set.cpp b/src/test/uint_set.cpp similarity index 100% rename from test/uint_set.cpp rename to src/test/uint_set.cpp diff --git a/test/upolynomial.cpp b/src/test/upolynomial.cpp similarity index 100% rename from test/upolynomial.cpp rename to src/test/upolynomial.cpp diff --git a/test/var_subst.cpp b/src/test/var_subst.cpp similarity index 98% rename from test/var_subst.cpp rename to src/test/var_subst.cpp index ec8078025..efc4555fe 100644 --- a/test/var_subst.cpp +++ b/src/test/var_subst.cpp @@ -23,6 +23,7 @@ Revision History: #include"bv_decl_plugin.h" #include"array_decl_plugin.h" #include"for_each_expr.h" +#include"reg_decl_plugins.h" namespace find_q { struct proc { @@ -101,7 +102,7 @@ void tst_subst(ast_manager& m) { void tst_var_subst() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); tst_subst(m); scoped_ptr parser = smtlib::parser::create(m); diff --git a/test/vector.cpp b/src/test/vector.cpp similarity index 100% rename from test/vector.cpp rename to src/test/vector.cpp diff --git a/lib/approx_nat.cpp b/src/util/approx_nat.cpp similarity index 100% rename from lib/approx_nat.cpp rename to src/util/approx_nat.cpp diff --git a/lib/approx_nat.h b/src/util/approx_nat.h similarity index 100% rename from lib/approx_nat.h rename to src/util/approx_nat.h diff --git a/lib/approx_set.cpp b/src/util/approx_set.cpp similarity index 100% rename from lib/approx_set.cpp rename to src/util/approx_set.cpp diff --git a/lib/approx_set.h b/src/util/approx_set.h similarity index 100% rename from lib/approx_set.h rename to src/util/approx_set.h diff --git a/lib/array.h b/src/util/array.h similarity index 100% rename from lib/array.h rename to src/util/array.h diff --git a/lib/array_map.h b/src/util/array_map.h similarity index 100% rename from lib/array_map.h rename to src/util/array_map.h diff --git a/lib/backtrackable_set.h b/src/util/backtrackable_set.h similarity index 100% rename from lib/backtrackable_set.h rename to src/util/backtrackable_set.h diff --git a/lib/basic_interval.h b/src/util/basic_interval.h similarity index 100% rename from lib/basic_interval.h rename to src/util/basic_interval.h diff --git a/lib/bit_util.cpp b/src/util/bit_util.cpp similarity index 100% rename from lib/bit_util.cpp rename to src/util/bit_util.cpp diff --git a/lib/bit_util.h b/src/util/bit_util.h similarity index 100% rename from lib/bit_util.h rename to src/util/bit_util.h diff --git a/lib/bit_vector.cpp b/src/util/bit_vector.cpp similarity index 100% rename from lib/bit_vector.cpp rename to src/util/bit_vector.cpp diff --git a/lib/bit_vector.h b/src/util/bit_vector.h similarity index 100% rename from lib/bit_vector.h rename to src/util/bit_vector.h diff --git a/lib/buffer.h b/src/util/buffer.h similarity index 100% rename from lib/buffer.h rename to src/util/buffer.h diff --git a/lib/cancel_eh.h b/src/util/cancel_eh.h similarity index 100% rename from lib/cancel_eh.h rename to src/util/cancel_eh.h diff --git a/lib/chashtable.h b/src/util/chashtable.h similarity index 100% rename from lib/chashtable.h rename to src/util/chashtable.h diff --git a/lib/cmd_context_types.cpp b/src/util/cmd_context_types.cpp similarity index 100% rename from lib/cmd_context_types.cpp rename to src/util/cmd_context_types.cpp diff --git a/lib/cmd_context_types.h b/src/util/cmd_context_types.h similarity index 100% rename from lib/cmd_context_types.h rename to src/util/cmd_context_types.h diff --git a/lib/cooperate.cpp b/src/util/cooperate.cpp similarity index 100% rename from lib/cooperate.cpp rename to src/util/cooperate.cpp diff --git a/lib/cooperate.h b/src/util/cooperate.h similarity index 100% rename from lib/cooperate.h rename to src/util/cooperate.h diff --git a/lib/critical_flet.h b/src/util/critical_flet.h similarity index 100% rename from lib/critical_flet.h rename to src/util/critical_flet.h diff --git a/lib/debug.cpp b/src/util/debug.cpp similarity index 100% rename from lib/debug.cpp rename to src/util/debug.cpp diff --git a/lib/debug.h b/src/util/debug.h similarity index 100% rename from lib/debug.h rename to src/util/debug.h diff --git a/lib/dec_ref_util.h b/src/util/dec_ref_util.h similarity index 100% rename from lib/dec_ref_util.h rename to src/util/dec_ref_util.h diff --git a/lib/dependency.h b/src/util/dependency.h similarity index 100% rename from lib/dependency.h rename to src/util/dependency.h diff --git a/lib/dictionary.h b/src/util/dictionary.h similarity index 100% rename from lib/dictionary.h rename to src/util/dictionary.h diff --git a/lib/diff_logic.h b/src/util/diff_logic.h similarity index 100% rename from lib/diff_logic.h rename to src/util/diff_logic.h diff --git a/lib/dlist.h b/src/util/dlist.h similarity index 100% rename from lib/dlist.h rename to src/util/dlist.h diff --git a/lib/double_manager.h b/src/util/double_manager.h similarity index 100% rename from lib/double_manager.h rename to src/util/double_manager.h diff --git a/lib/error_codes.h b/src/util/error_codes.h similarity index 100% rename from lib/error_codes.h rename to src/util/error_codes.h diff --git a/lib/event_handler.h b/src/util/event_handler.h similarity index 100% rename from lib/event_handler.h rename to src/util/event_handler.h diff --git a/lib/ext_gcd.h b/src/util/ext_gcd.h similarity index 100% rename from lib/ext_gcd.h rename to src/util/ext_gcd.h diff --git a/lib/ext_numeral.h b/src/util/ext_numeral.h similarity index 100% rename from lib/ext_numeral.h rename to src/util/ext_numeral.h diff --git a/lib/f2n.h b/src/util/f2n.h similarity index 100% rename from lib/f2n.h rename to src/util/f2n.h diff --git a/lib/hash.cpp b/src/util/hash.cpp similarity index 100% rename from lib/hash.cpp rename to src/util/hash.cpp diff --git a/lib/hash.h b/src/util/hash.h similarity index 100% rename from lib/hash.h rename to src/util/hash.h diff --git a/lib/hashtable.h b/src/util/hashtable.h similarity index 99% rename from lib/hashtable.h rename to src/util/hashtable.h index 1eb168120..874636e91 100644 --- a/lib/hashtable.h +++ b/src/util/hashtable.h @@ -21,7 +21,7 @@ Revision History: #include"debug.h" #include #include"util.h" -#include"limits.h" +#include #include"memory_manager.h" #include"hash.h" diff --git a/lib/heap.h b/src/util/heap.h similarity index 100% rename from lib/heap.h rename to src/util/heap.h diff --git a/lib/hwf.cpp b/src/util/hwf.cpp similarity index 100% rename from lib/hwf.cpp rename to src/util/hwf.cpp diff --git a/lib/hwf.h b/src/util/hwf.h similarity index 100% rename from lib/hwf.h rename to src/util/hwf.h diff --git a/lib/id_gen.h b/src/util/id_gen.h similarity index 100% rename from lib/id_gen.h rename to src/util/id_gen.h diff --git a/lib/imdd.cpp b/src/util/imdd.cpp similarity index 100% rename from lib/imdd.cpp rename to src/util/imdd.cpp diff --git a/lib/imdd.h b/src/util/imdd.h similarity index 100% rename from lib/imdd.h rename to src/util/imdd.h diff --git a/lib/inf_int_rational.cpp b/src/util/inf_int_rational.cpp similarity index 100% rename from lib/inf_int_rational.cpp rename to src/util/inf_int_rational.cpp diff --git a/lib/inf_int_rational.h b/src/util/inf_int_rational.h similarity index 100% rename from lib/inf_int_rational.h rename to src/util/inf_int_rational.h diff --git a/lib/inf_rational.cpp b/src/util/inf_rational.cpp similarity index 100% rename from lib/inf_rational.cpp rename to src/util/inf_rational.cpp diff --git a/lib/inf_rational.h b/src/util/inf_rational.h similarity index 100% rename from lib/inf_rational.h rename to src/util/inf_rational.h diff --git a/lib/inf_s_integer.cpp b/src/util/inf_s_integer.cpp similarity index 100% rename from lib/inf_s_integer.cpp rename to src/util/inf_s_integer.cpp diff --git a/lib/inf_s_integer.h b/src/util/inf_s_integer.h similarity index 100% rename from lib/inf_s_integer.h rename to src/util/inf_s_integer.h diff --git a/lib/ini_file.cpp b/src/util/ini_file.cpp similarity index 100% rename from lib/ini_file.cpp rename to src/util/ini_file.cpp diff --git a/lib/ini_file.h b/src/util/ini_file.h similarity index 100% rename from lib/ini_file.h rename to src/util/ini_file.h diff --git a/lib/instruction_count.cpp b/src/util/instruction_count.cpp similarity index 97% rename from lib/instruction_count.cpp rename to src/util/instruction_count.cpp index ff9387f79..6dd5bcb85 100644 --- a/lib/instruction_count.cpp +++ b/src/util/instruction_count.cpp @@ -1,5 +1,5 @@ #ifdef _WINDOWS -#include "windows.h" +#include #endif #include "instruction_count.h" diff --git a/lib/instruction_count.h b/src/util/instruction_count.h similarity index 100% rename from lib/instruction_count.h rename to src/util/instruction_count.h diff --git a/lib/interval.h b/src/util/interval.h similarity index 100% rename from lib/interval.h rename to src/util/interval.h diff --git a/lib/interval_def.h b/src/util/interval_def.h similarity index 100% rename from lib/interval_def.h rename to src/util/interval_def.h diff --git a/lib/interval_skip_list.h b/src/util/interval_skip_list.h similarity index 100% rename from lib/interval_skip_list.h rename to src/util/interval_skip_list.h diff --git a/lib/lbool.cpp b/src/util/lbool.cpp similarity index 100% rename from lib/lbool.cpp rename to src/util/lbool.cpp diff --git a/lib/lbool.h b/src/util/lbool.h similarity index 100% rename from lib/lbool.h rename to src/util/lbool.h diff --git a/lib/list.h b/src/util/list.h similarity index 100% rename from lib/list.h rename to src/util/list.h diff --git a/lib/luby.cpp b/src/util/luby.cpp similarity index 100% rename from lib/luby.cpp rename to src/util/luby.cpp diff --git a/lib/luby.h b/src/util/luby.h similarity index 100% rename from lib/luby.h rename to src/util/luby.h diff --git a/lib/machine.h b/src/util/machine.h similarity index 100% rename from lib/machine.h rename to src/util/machine.h diff --git a/lib/map.h b/src/util/map.h similarity index 100% rename from lib/map.h rename to src/util/map.h diff --git a/lib/mem_stat.cpp b/src/util/mem_stat.cpp similarity index 100% rename from lib/mem_stat.cpp rename to src/util/mem_stat.cpp diff --git a/lib/mem_stat.h b/src/util/mem_stat.h similarity index 100% rename from lib/mem_stat.h rename to src/util/mem_stat.h diff --git a/lib/memory_manager.cpp b/src/util/memory_manager.cpp similarity index 100% rename from lib/memory_manager.cpp rename to src/util/memory_manager.cpp diff --git a/lib/memory_manager.h b/src/util/memory_manager.h similarity index 100% rename from lib/memory_manager.h rename to src/util/memory_manager.h diff --git a/lib/mpbq.cpp b/src/util/mpbq.cpp similarity index 100% rename from lib/mpbq.cpp rename to src/util/mpbq.cpp diff --git a/lib/mpbq.h b/src/util/mpbq.h similarity index 100% rename from lib/mpbq.h rename to src/util/mpbq.h diff --git a/lib/mpbqi.h b/src/util/mpbqi.h similarity index 100% rename from lib/mpbqi.h rename to src/util/mpbqi.h diff --git a/lib/mpf.cpp b/src/util/mpf.cpp similarity index 100% rename from lib/mpf.cpp rename to src/util/mpf.cpp diff --git a/lib/mpf.h b/src/util/mpf.h similarity index 100% rename from lib/mpf.h rename to src/util/mpf.h diff --git a/lib/mpff.cpp b/src/util/mpff.cpp similarity index 100% rename from lib/mpff.cpp rename to src/util/mpff.cpp diff --git a/lib/mpff.h b/src/util/mpff.h similarity index 100% rename from lib/mpff.h rename to src/util/mpff.h diff --git a/lib/mpfx.cpp b/src/util/mpfx.cpp similarity index 100% rename from lib/mpfx.cpp rename to src/util/mpfx.cpp diff --git a/lib/mpfx.h b/src/util/mpfx.h similarity index 100% rename from lib/mpfx.h rename to src/util/mpfx.h diff --git a/lib/mpn.cpp b/src/util/mpn.cpp similarity index 100% rename from lib/mpn.cpp rename to src/util/mpn.cpp diff --git a/lib/mpn.h b/src/util/mpn.h similarity index 100% rename from lib/mpn.h rename to src/util/mpn.h diff --git a/lib/mpq.cpp b/src/util/mpq.cpp similarity index 100% rename from lib/mpq.cpp rename to src/util/mpq.cpp diff --git a/lib/mpq.h b/src/util/mpq.h similarity index 100% rename from lib/mpq.h rename to src/util/mpq.h diff --git a/lib/mpq_inf.cpp b/src/util/mpq_inf.cpp similarity index 100% rename from lib/mpq_inf.cpp rename to src/util/mpq_inf.cpp diff --git a/lib/mpq_inf.h b/src/util/mpq_inf.h similarity index 96% rename from lib/mpq_inf.h rename to src/util/mpq_inf.h index 008333b0b..217b58567 100644 --- a/lib/mpq_inf.h +++ b/src/util/mpq_inf.h @@ -21,7 +21,6 @@ Revision History: #include"mpq.h" #include"hash.h" -#include"params.h" typedef std::pair mpq_inf; @@ -32,12 +31,12 @@ class mpq_inf_manager { public: typedef mpq_inf numeral; - mpq_inf_manager(mpq_manager & _m, params_ref const & p = params_ref()):m(_m) { - updt_params(p); + mpq_inf_manager(mpq_manager & _m, double inf = 0.0001):m(_m) { + set_inf(inf); } - void updt_params(params_ref const & p) { - m_inf = p.get_double(":infinitesimal-as-double", 0.00001); + void set_inf(double inf) { + m_inf = inf; } enum inf_kind { NEG=-1, ZERO, POS }; diff --git a/lib/mpz.cpp b/src/util/mpz.cpp similarity index 99% rename from lib/mpz.cpp rename to src/util/mpz.cpp index c9a6dc1f1..16a3f1a9e 100644 --- a/lib/mpz.cpp +++ b/src/util/mpz.cpp @@ -23,16 +23,7 @@ Revision History: #include"hash.h" #include"bit_util.h" -#if defined(_MP_MSBIGNUM) -#define COMPILER COMPILER_VC -#ifndef NDEBUG -#define NDEBUG -#endif -#ifdef ARRAYSIZE -#undef ARRAYSIZE -#endif -#include "..\msbig_rational\msbignum.h" -#elif defined(_MP_INTERNAL) +#if defined(_MP_INTERNAL) #include"mpn.h" #elif defined(_MP_GMP) #include diff --git a/lib/mpz.h b/src/util/mpz.h similarity index 100% rename from lib/mpz.h rename to src/util/mpz.h diff --git a/lib/mpzzp.h b/src/util/mpzzp.h similarity index 100% rename from lib/mpzzp.h rename to src/util/mpzzp.h diff --git a/lib/nat_set.h b/src/util/nat_set.h similarity index 98% rename from lib/nat_set.h rename to src/util/nat_set.h index 79e982f20..eb091fc61 100644 --- a/lib/nat_set.h +++ b/src/util/nat_set.h @@ -19,8 +19,8 @@ Revision History: #ifndef _NAT_SET_H_ #define _NAT_SET_H_ +#include #include"vector.h" -#include"limits.h" class nat_set { unsigned m_curr_timestamp; diff --git a/lib/numeral_buffer.h b/src/util/numeral_buffer.h similarity index 100% rename from lib/numeral_buffer.h rename to src/util/numeral_buffer.h diff --git a/lib/obj_hashtable.h b/src/util/obj_hashtable.h similarity index 100% rename from lib/obj_hashtable.h rename to src/util/obj_hashtable.h diff --git a/lib/obj_mark.h b/src/util/obj_mark.h similarity index 100% rename from lib/obj_mark.h rename to src/util/obj_mark.h diff --git a/lib/obj_pair_hashtable.h b/src/util/obj_pair_hashtable.h similarity index 100% rename from lib/obj_pair_hashtable.h rename to src/util/obj_pair_hashtable.h diff --git a/lib/obj_pair_set.h b/src/util/obj_pair_set.h similarity index 100% rename from lib/obj_pair_set.h rename to src/util/obj_pair_set.h diff --git a/lib/obj_ref.h b/src/util/obj_ref.h similarity index 100% rename from lib/obj_ref.h rename to src/util/obj_ref.h diff --git a/lib/obj_triple_hashtable.h b/src/util/obj_triple_hashtable.h similarity index 100% rename from lib/obj_triple_hashtable.h rename to src/util/obj_triple_hashtable.h diff --git a/lib/object_allocator.h b/src/util/object_allocator.h similarity index 100% rename from lib/object_allocator.h rename to src/util/object_allocator.h diff --git a/lib/old_interval.cpp b/src/util/old_interval.cpp similarity index 100% rename from lib/old_interval.cpp rename to src/util/old_interval.cpp diff --git a/lib/old_interval.h b/src/util/old_interval.h similarity index 100% rename from lib/old_interval.h rename to src/util/old_interval.h diff --git a/lib/optional.h b/src/util/optional.h similarity index 100% rename from lib/optional.h rename to src/util/optional.h diff --git a/lib/page.cpp b/src/util/page.cpp similarity index 100% rename from lib/page.cpp rename to src/util/page.cpp diff --git a/lib/page.h b/src/util/page.h similarity index 100% rename from lib/page.h rename to src/util/page.h diff --git a/lib/params.cpp b/src/util/params.cpp similarity index 80% rename from lib/params.cpp rename to src/util/params.cpp index bcb3ce078..ae7f0c830 100644 --- a/lib/params.cpp +++ b/src/util/params.cpp @@ -17,7 +17,6 @@ Notes: --*/ #include"params.h" -#include"ast.h" #include"rational.h" #include"symbol.h" #include"dictionary.h" @@ -158,11 +157,9 @@ class params { char const * m_str_value; char const * m_sym_value; rational * m_rat_value; - ast * m_ast_value; }; }; typedef std::pair entry; - ast_manager * m_manager; svector m_entries; unsigned m_ref_count; @@ -170,7 +167,7 @@ class params { void del_values(); public: - params():m_manager(0), m_ref_count(0) {} + params():m_ref_count(0) {} ~params() { reset(); } @@ -178,8 +175,6 @@ public: void inc_ref() { m_ref_count++; } void dec_ref() { SASSERT(m_ref_count > 0); m_ref_count--; if (m_ref_count == 0) dealloc(this); } - void set_manager(ast_manager & m); - bool empty() const { return m_entries.empty(); } bool contains(symbol const & k) const; bool contains(char const * k) const; @@ -213,12 +208,6 @@ public: rational get_rat(char const * k, rational const & _default) const; symbol get_sym(symbol const & k, symbol const & _default) const; symbol get_sym(char const * k, symbol const & _default) const; - expr * get_expr(symbol const & k, expr * _default) const; - expr * get_expr(char const * k, expr * _default) const; - func_decl * get_func_decl(symbol const & k, func_decl * _default) const; - func_decl * get_func_decl(char const * k, func_decl * _default) const; - sort * get_sort(symbol const & k, sort * _default) const; - sort * get_sort(char const * k, sort * _default) const; // setters void set_bool(symbol const & k, bool v); @@ -233,12 +222,6 @@ public: void set_rat(char const * k, rational const & v); void set_sym(symbol const & k, symbol const & v); void set_sym(char const * k, symbol const & v); - void set_expr(symbol const & k, expr * v); - void set_expr(char const * k, expr * v); - void set_func_decl(symbol const & k, func_decl * v); - void set_func_decl(char const * k, func_decl * v); - void set_sort(symbol const & k, sort * v); - void set_sort(char const * k, sort * v); void display(std::ostream & out) const { out << "(params"; @@ -265,11 +248,6 @@ public: case CPK_STRING: out << " " << it->second.m_str_value; break; - case CPK_EXPR: - case CPK_FUNC_DECL: - case CPK_SORT: - out << " #" << it->second.m_ast_value->get_id(); - break; default: UNREACHABLE(); break; @@ -344,15 +322,6 @@ void params_ref::copy_core(params const * src) { case CPK_STRING: m_params->set_str(it->first, it->second.m_str_value); break; - case CPK_EXPR: - m_params->set_expr(it->first, static_cast(it->second.m_ast_value)); - break; - case CPK_FUNC_DECL: - m_params->set_func_decl(it->first, static_cast(it->second.m_ast_value)); - break; - case CPK_SORT: - m_params->set_sort(it->first, static_cast(it->second.m_ast_value)); - break; default: UNREACHABLE(); break; @@ -369,7 +338,6 @@ void params_ref::init() { params * old = m_params; m_params = alloc(params); m_params->inc_ref(); - m_params->m_manager = old->m_manager; copy_core(old); old->dec_ref(); } @@ -385,12 +353,6 @@ double params_ref::get_double(symbol const & k, double _default) const { return double params_ref::get_double(char const * k, double _default) const { return m_params ? m_params->get_double(k, _default) : _default; } char const * params_ref::get_str(symbol const & k, char const * _default) const { return m_params ? m_params->get_str(k, _default) : _default; } char const * params_ref::get_str(char const * k, char const * _default) const { return m_params ? m_params->get_str(k, _default) : _default; } -expr * params_ref::get_expr(symbol const & k, expr * _default) const { return m_params ? m_params->get_expr(k, _default) : _default; } -expr * params_ref::get_expr(char const * k, expr * _default) const { return m_params ? m_params->get_expr(k, _default) : _default; } -func_decl * params_ref::get_func_decl(symbol const & k, func_decl * _default) const { return m_params ? m_params->get_func_decl(k, _default) : _default; } -func_decl * params_ref::get_func_decl(char const * k, func_decl * _default) const { return m_params ? m_params->get_func_decl(k, _default) : _default; } -sort * params_ref::get_sort(symbol const & k, sort * _default) const { return m_params ? m_params->get_sort(k, _default) : _default; } -sort * params_ref::get_sort(char const * k, sort * _default) const { return m_params ? m_params->get_sort(k, _default) : _default; } rational params_ref::get_rat(symbol const & k, rational const & _default) const { return m_params ? m_params->get_rat(k, _default) : _default; @@ -408,11 +370,6 @@ symbol params_ref::get_sym(char const * k, symbol const & _default) const { return m_params ? m_params->get_sym(k, _default) : _default; } -void params_ref::set_manager(ast_manager & m) { - init(); - m_params->set_manager(m); -} - bool params_ref::empty() const { if (!m_params) return true; @@ -506,35 +463,6 @@ void params_ref::set_sym(char const * k, symbol const & v) { m_params->set_sym(k, v); } -void params_ref::set_expr(symbol const & k, expr * v) { - init(); - m_params->set_expr(k, v); -} - -void params_ref::set_expr(char const * k, expr * v) { - init(); - m_params->set_expr(k, v); -} - -void params_ref::set_func_decl(symbol const & k, func_decl * v) { - init(); - m_params->set_func_decl(k, v); -} - -void params_ref::set_func_decl(char const * k, func_decl * v) { - init(); - m_params->set_func_decl(k, v); -} - -void params_ref::set_sort(symbol const & k, sort * v) { - init(); - m_params->set_sort(k, v); -} - -void params_ref::set_sort(char const * k, sort * v) { - init(); - m_params->set_sort(k, v); -} void params::del_value(entry & e) { switch (e.second.m_kind) { @@ -542,21 +470,11 @@ void params::del_value(entry & e) { if (e.second.m_kind == CPK_NUMERAL) dealloc(e.second.m_rat_value); break; - case CPK_EXPR: - case CPK_SORT: - case CPK_FUNC_DECL: - SASSERT(m_manager); - m_manager->dec_ref(e.second.m_ast_value); - return; default: return; } } -void params::set_manager(ast_manager & m) { - m_manager = &m; -} - #define TRAVERSE_ENTRIES(CODE) { \ svector::iterator it = m_entries.begin(); \ svector::iterator end = m_entries.end(); \ @@ -696,30 +614,6 @@ symbol params::get_sym(char const * k, symbol const & _default) const { GET_VALUE(return symbol::mk_symbol_from_c_ptr(it->second.m_sym_value);, CPK_SYMBOL); } -expr * params::get_expr(symbol const & k, expr * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_EXPR); -} - -expr * params::get_expr(char const * k, expr * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_EXPR); -} - -func_decl * params::get_func_decl(symbol const & k, func_decl * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_FUNC_DECL); -} - -func_decl * params::get_func_decl(char const * k, func_decl * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_FUNC_DECL); -} - -sort * params::get_sort(symbol const & k, sort * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_SORT); -} - -sort * params::get_sort(char const * k, sort * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_SORT); -} - #define SET_VALUE(MATCH_CODE, ADD_CODE) { \ TRAVERSE_ENTRIES(if (it->first == k) { \ MATCH_CODE \ @@ -820,44 +714,3 @@ void params::set_sym(char const * k, symbol const & v) { SET_SYM_VALUE(); } -#define SET_AST_VALUE(KIND) { \ - SASSERT(m_manager); \ - m_manager->inc_ref(v); \ - SET_VALUE({ \ - del_value(*it); \ - it->second.m_kind = KIND; \ - it->second.m_ast_value = v; \ - }, \ - { \ - entry new_entry; \ - new_entry.first = symbol(k); \ - new_entry.second.m_kind = KIND; \ - new_entry.second.m_ast_value = v; \ - m_entries.push_back(new_entry); \ - })} - - -void params::set_expr(symbol const & k, expr * v) { - SET_AST_VALUE(CPK_EXPR); -} - -void params::set_expr(char const * k, expr * v) { - SET_AST_VALUE(CPK_EXPR); -} - -void params::set_func_decl(symbol const & k, func_decl * v) { - SET_AST_VALUE(CPK_FUNC_DECL); -} - -void params::set_func_decl(char const * k, func_decl * v) { - SET_AST_VALUE(CPK_FUNC_DECL); -} - -void params::set_sort(symbol const & k, sort * v) { - SET_AST_VALUE(CPK_SORT); -} - -void params::set_sort(char const * k, sort * v) { - SET_AST_VALUE(CPK_SORT); -} - diff --git a/lib/params.h b/src/util/params.h similarity index 81% rename from lib/params.h rename to src/util/params.h index f2a5e4da8..66c4e7c7a 100644 --- a/lib/params.h +++ b/src/util/params.h @@ -21,8 +21,6 @@ Notes: #include"cmd_context_types.h" #include"vector.h" -class ast; -class ast_manager; typedef cmd_arg_kind param_kind; @@ -56,14 +54,6 @@ public: rational get_rat(char const * k, rational const & _default) const; symbol get_sym(symbol const & k, symbol const & _default) const; symbol get_sym(char const * k, symbol const & _default) const; - expr * get_expr(symbol const & k, expr * _default) const; - expr * get_expr(char const * k, expr * _default) const; - func_decl * get_func_decl(symbol const & k, func_decl * _default) const; - func_decl * get_func_decl(char const * k, func_decl * _default) const; - sort * get_sort(symbol const & k, sort * _default) const; - sort * get_sort(char const * k, sort * _default) const; - - void set_manager(ast_manager & m); bool empty() const; bool contains(symbol const & k) const; @@ -85,12 +75,6 @@ public: void set_rat(char const * k, rational const & v); void set_sym(symbol const & k, symbol const & v); void set_sym(char const * k, symbol const & v); - void set_expr(symbol const & k, expr * v); - void set_expr(char const * k, expr * v); - void set_func_decl(symbol const & k, func_decl * v); - void set_func_decl(char const * k, func_decl * v); - void set_sort(symbol const & k, sort * v); - void set_sort(char const * k, sort * v); void display(std::ostream & out) const; diff --git a/lib/parray.h b/src/util/parray.h similarity index 100% rename from lib/parray.h rename to src/util/parray.h diff --git a/lib/permutation.cpp b/src/util/permutation.cpp similarity index 100% rename from lib/permutation.cpp rename to src/util/permutation.cpp diff --git a/lib/permutation.h b/src/util/permutation.h similarity index 100% rename from lib/permutation.h rename to src/util/permutation.h diff --git a/lib/plugin_manager.h b/src/util/plugin_manager.h similarity index 100% rename from lib/plugin_manager.h rename to src/util/plugin_manager.h diff --git a/lib/pool.h b/src/util/pool.h similarity index 100% rename from lib/pool.h rename to src/util/pool.h diff --git a/lib/pop_scopes.h b/src/util/pop_scopes.h similarity index 100% rename from lib/pop_scopes.h rename to src/util/pop_scopes.h diff --git a/lib/prime_generator.cpp b/src/util/prime_generator.cpp similarity index 100% rename from lib/prime_generator.cpp rename to src/util/prime_generator.cpp diff --git a/lib/prime_generator.h b/src/util/prime_generator.h similarity index 100% rename from lib/prime_generator.h rename to src/util/prime_generator.h diff --git a/lib/ptr_scoped_buffer.h b/src/util/ptr_scoped_buffer.h similarity index 100% rename from lib/ptr_scoped_buffer.h rename to src/util/ptr_scoped_buffer.h diff --git a/lib/rational.cpp b/src/util/rational.cpp similarity index 100% rename from lib/rational.cpp rename to src/util/rational.cpp diff --git a/lib/rational.h b/src/util/rational.h similarity index 100% rename from lib/rational.h rename to src/util/rational.h diff --git a/lib/ref.h b/src/util/ref.h similarity index 100% rename from lib/ref.h rename to src/util/ref.h diff --git a/lib/ref_buffer.h b/src/util/ref_buffer.h similarity index 100% rename from lib/ref_buffer.h rename to src/util/ref_buffer.h diff --git a/lib/ref_util.h b/src/util/ref_util.h similarity index 100% rename from lib/ref_util.h rename to src/util/ref_util.h diff --git a/lib/ref_vector.h b/src/util/ref_vector.h similarity index 100% rename from lib/ref_vector.h rename to src/util/ref_vector.h diff --git a/lib/region.cpp b/src/util/region.cpp similarity index 100% rename from lib/region.cpp rename to src/util/region.cpp diff --git a/lib/region.h b/src/util/region.h similarity index 100% rename from lib/region.h rename to src/util/region.h diff --git a/lib/resource_limit.h b/src/util/resource_limit.h similarity index 100% rename from lib/resource_limit.h rename to src/util/resource_limit.h diff --git a/lib/s_integer.cpp b/src/util/s_integer.cpp similarity index 100% rename from lib/s_integer.cpp rename to src/util/s_integer.cpp diff --git a/lib/s_integer.h b/src/util/s_integer.h similarity index 100% rename from lib/s_integer.h rename to src/util/s_integer.h diff --git a/lib/scoped_ctrl_c.cpp b/src/util/scoped_ctrl_c.cpp similarity index 100% rename from lib/scoped_ctrl_c.cpp rename to src/util/scoped_ctrl_c.cpp diff --git a/lib/scoped_ctrl_c.h b/src/util/scoped_ctrl_c.h similarity index 100% rename from lib/scoped_ctrl_c.h rename to src/util/scoped_ctrl_c.h diff --git a/lib/scoped_numeral.h b/src/util/scoped_numeral.h similarity index 100% rename from lib/scoped_numeral.h rename to src/util/scoped_numeral.h diff --git a/lib/scoped_numeral_buffer.h b/src/util/scoped_numeral_buffer.h similarity index 100% rename from lib/scoped_numeral_buffer.h rename to src/util/scoped_numeral_buffer.h diff --git a/lib/scoped_numeral_vector.h b/src/util/scoped_numeral_vector.h similarity index 100% rename from lib/scoped_numeral_vector.h rename to src/util/scoped_numeral_vector.h diff --git a/lib/scoped_ptr_vector.h b/src/util/scoped_ptr_vector.h similarity index 100% rename from lib/scoped_ptr_vector.h rename to src/util/scoped_ptr_vector.h diff --git a/lib/scoped_timer.cpp b/src/util/scoped_timer.cpp similarity index 100% rename from lib/scoped_timer.cpp rename to src/util/scoped_timer.cpp diff --git a/lib/scoped_timer.h b/src/util/scoped_timer.h similarity index 100% rename from lib/scoped_timer.h rename to src/util/scoped_timer.h diff --git a/lib/sexpr.cpp b/src/util/sexpr.cpp similarity index 100% rename from lib/sexpr.cpp rename to src/util/sexpr.cpp diff --git a/lib/sexpr.h b/src/util/sexpr.h similarity index 100% rename from lib/sexpr.h rename to src/util/sexpr.h diff --git a/lib/skip_list_base.h b/src/util/skip_list_base.h similarity index 100% rename from lib/skip_list_base.h rename to src/util/skip_list_base.h diff --git a/lib/small_object_allocator.cpp b/src/util/small_object_allocator.cpp similarity index 100% rename from lib/small_object_allocator.cpp rename to src/util/small_object_allocator.cpp diff --git a/lib/small_object_allocator.h b/src/util/small_object_allocator.h similarity index 100% rename from lib/small_object_allocator.h rename to src/util/small_object_allocator.h diff --git a/src/util/smt2_util.cpp b/src/util/smt2_util.cpp new file mode 100644 index 000000000..70979cc01 --- /dev/null +++ b/src/util/smt2_util.cpp @@ -0,0 +1,62 @@ +/*++ +Copyright (c) 2011 Microsoft Corporation + +Module Name: + + smt2_util.cpp + +Abstract: + + Goodies for SMT2 standard + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#include"smt2_util.h" + +bool is_smt2_simple_symbol_char(char s) { + return + ('0' <= s && s <= '9') || + ('a' <= s && s <= 'z') || + ('A' <= s && s <= 'Z') || + s == '~' || s == '!' || s == '@' || s == '$' || s == '%' || s == '^' || s == '&' || + s == '*' || s == '_' || s == '-' || s == '+' || s == '=' || s == '<' || s == '>' || + s == '.' || s == '?' || s == '/'; +} + +bool is_smt2_quoted_symbol(char const * s) { + if (s == 0) + return false; + if ('0' <= s[0] && s[0] <= '9') + return true; + unsigned len = static_cast(strlen(s)); + for (unsigned i = 0; i < len; i++) + if (!is_smt2_simple_symbol_char(s[i])) + return true; + return false; +} + +bool is_smt2_quoted_symbol(symbol const & s) { + if (s.is_numerical()) + return false; + return is_smt2_quoted_symbol(s.bare_str()); +} + +std::string mk_smt2_quoted_symbol(symbol const & s) { + SASSERT(is_smt2_quoted_symbol(s)); + string_buffer<> buffer; + buffer.append('|'); + char const * str = s.bare_str(); + while (*str) { + if (*str == '|' || *str == '\\') + buffer.append('\\'); + buffer.append(*str); + str++; + } + buffer.append('|'); + return std::string(buffer.c_str()); +} diff --git a/src/util/smt2_util.h b/src/util/smt2_util.h new file mode 100644 index 000000000..c2ab4a727 --- /dev/null +++ b/src/util/smt2_util.h @@ -0,0 +1,29 @@ +/*++ +Copyright (c) 2011 Microsoft Corporation + +Module Name: + + smt2_util.h + +Abstract: + + Goodies for SMT2 standard + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#ifndef _SMT2_UTIL_H_ +#define _SMT2_UTIL_H_ + +#include"symbol.h" + +bool is_smt2_simple_symbol_char(char c); +bool is_smt2_quoted_symbol(char const * s); +bool is_smt2_quoted_symbol(symbol const & s); +std::string mk_smt2_quoted_symbol(symbol const & s); + +#endif diff --git a/lib/stack.cpp b/src/util/stack.cpp similarity index 100% rename from lib/stack.cpp rename to src/util/stack.cpp diff --git a/lib/stack.h b/src/util/stack.h similarity index 100% rename from lib/stack.h rename to src/util/stack.h diff --git a/lib/statistics.cpp b/src/util/statistics.cpp similarity index 99% rename from lib/statistics.cpp rename to src/util/statistics.cpp index 6b5d396f8..24d17ddfa 100644 --- a/lib/statistics.cpp +++ b/src/util/statistics.cpp @@ -20,7 +20,7 @@ Notes: #include"map.h" #include"str_hashtable.h" #include"buffer.h" -#include"ast_smt2_pp.h" +#include"smt2_util.h" #include void statistics::update(char const * key, unsigned inc) { diff --git a/lib/statistics.h b/src/util/statistics.h similarity index 100% rename from lib/statistics.h rename to src/util/statistics.h diff --git a/lib/stats.h b/src/util/stats.h similarity index 100% rename from lib/stats.h rename to src/util/stats.h diff --git a/lib/stopwatch.h b/src/util/stopwatch.h similarity index 100% rename from lib/stopwatch.h rename to src/util/stopwatch.h diff --git a/lib/str_hashtable.h b/src/util/str_hashtable.h similarity index 100% rename from lib/str_hashtable.h rename to src/util/str_hashtable.h diff --git a/lib/stream_buffer.h b/src/util/stream_buffer.h similarity index 100% rename from lib/stream_buffer.h rename to src/util/stream_buffer.h diff --git a/lib/string_buffer.h b/src/util/string_buffer.h similarity index 100% rename from lib/string_buffer.h rename to src/util/string_buffer.h diff --git a/lib/symbol.cpp b/src/util/symbol.cpp similarity index 100% rename from lib/symbol.cpp rename to src/util/symbol.cpp diff --git a/lib/symbol.h b/src/util/symbol.h similarity index 100% rename from lib/symbol.h rename to src/util/symbol.h diff --git a/lib/symbol_table.h b/src/util/symbol_table.h similarity index 100% rename from lib/symbol_table.h rename to src/util/symbol_table.h diff --git a/lib/tactic_exception.cpp b/src/util/tactic_exception.cpp similarity index 100% rename from lib/tactic_exception.cpp rename to src/util/tactic_exception.cpp diff --git a/lib/tactic_exception.h b/src/util/tactic_exception.h similarity index 100% rename from lib/tactic_exception.h rename to src/util/tactic_exception.h diff --git a/lib/timeit.cpp b/src/util/timeit.cpp similarity index 100% rename from lib/timeit.cpp rename to src/util/timeit.cpp diff --git a/lib/timeit.h b/src/util/timeit.h similarity index 100% rename from lib/timeit.h rename to src/util/timeit.h diff --git a/lib/timeout.cpp b/src/util/timeout.cpp similarity index 100% rename from lib/timeout.cpp rename to src/util/timeout.cpp diff --git a/lib/timeout.h b/src/util/timeout.h similarity index 100% rename from lib/timeout.h rename to src/util/timeout.h diff --git a/lib/timer.cpp b/src/util/timer.cpp similarity index 100% rename from lib/timer.cpp rename to src/util/timer.cpp diff --git a/lib/timer.h b/src/util/timer.h similarity index 100% rename from lib/timer.h rename to src/util/timer.h diff --git a/lib/total_order.h b/src/util/total_order.h similarity index 100% rename from lib/total_order.h rename to src/util/total_order.h diff --git a/lib/tptr.h b/src/util/tptr.h similarity index 100% rename from lib/tptr.h rename to src/util/tptr.h diff --git a/lib/trace.cpp b/src/util/trace.cpp similarity index 100% rename from lib/trace.cpp rename to src/util/trace.cpp diff --git a/lib/trace.h b/src/util/trace.h similarity index 100% rename from lib/trace.h rename to src/util/trace.h diff --git a/lib/uint_map.h b/src/util/uint_map.h similarity index 100% rename from lib/uint_map.h rename to src/util/uint_map.h diff --git a/lib/uint_set.h b/src/util/uint_set.h similarity index 100% rename from lib/uint_set.h rename to src/util/uint_set.h diff --git a/lib/util.cpp b/src/util/util.cpp similarity index 99% rename from lib/util.cpp rename to src/util/util.cpp index ee39db667..c2795b637 100644 --- a/lib/util.cpp +++ b/src/util/util.cpp @@ -160,7 +160,7 @@ void escaped::display(std::ostream & out) const { #ifdef ARRAYSIZE #undef ARRAYSIZE #endif -#include "windows.h" +#include #endif void z3_bound_num_procs() { diff --git a/lib/util.h b/src/util/util.h similarity index 100% rename from lib/util.h rename to src/util/util.h diff --git a/lib/vector.h b/src/util/vector.h similarity index 100% rename from lib/vector.h rename to src/util/vector.h diff --git a/lib/version.h b/src/util/version.h similarity index 100% rename from lib/version.h rename to src/util/version.h diff --git a/lib/warning.cpp b/src/util/warning.cpp similarity index 100% rename from lib/warning.cpp rename to src/util/warning.cpp diff --git a/lib/warning.h b/src/util/warning.h similarity index 100% rename from lib/warning.h rename to src/util/warning.h diff --git a/lib/z3_exception.cpp b/src/util/z3_exception.cpp similarity index 100% rename from lib/z3_exception.cpp rename to src/util/z3_exception.cpp diff --git a/lib/z3_exception.h b/src/util/z3_exception.h similarity index 100% rename from lib/z3_exception.h rename to src/util/z3_exception.h diff --git a/lib/z3_omp.h b/src/util/z3_omp.h similarity index 97% rename from lib/z3_omp.h rename to src/util/z3_omp.h index 8af7ae389..c63b23fc0 100644 --- a/lib/z3_omp.h +++ b/src/util/z3_omp.h @@ -20,7 +20,7 @@ Notes: #define _Z3_OMP_H #ifndef _NO_OMP_ -#include"omp.h" +#include #else #define omp_in_parallel() false #define omp_set_num_threads(SZ) ((void)0) diff --git a/test/buildpar.bat b/test/buildpar.bat deleted file mode 100644 index 4e70ec32c..000000000 --- a/test/buildpar.bat +++ /dev/null @@ -1 +0,0 @@ -cl /I ..\lib /MDd /LD ..\test\par_dll.cpp /link ..\parallel_debug\z3lib.lib /lib ..\parallel_debug\msbig_rational.lib \ No newline at end of file diff --git a/test/test.vcxproj b/test/test.vcxproj deleted file mode 100644 index 8ba191476..000000000 --- a/test/test.vcxproj +++ /dev/null @@ -1,589 +0,0 @@ - - - - - commercial - Win32 - - - commercial - x64 - - - Debug - Win32 - - - Debug - x64 - - - external - Win32 - - - external - x64 - - - release_mt - Win32 - - - release_mt - x64 - - - Release - Win32 - - - Release - x64 - - - Trace - Win32 - - - Trace - x64 - - - - {21A10ECD-32E2-4F27-A03D-81D855A048CC} - test - Win32Proj - - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(Configuration)\ - false - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - false - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - Default - Neither - ..\lib;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;Z3DEBUG;_CONSOLE;_TRACE;_WINDOWS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - /debug /debugtype:cv,fixup %(AdditionalOptions) - $(OutDir)test.exe - true - Console - false - - - MachineX86 - - - - - X64 - - - Disabled - ..\lib;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;Z3DEBUG;_CONSOLE;_TRACE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - /debug /debugtype:cv,fixup %(AdditionalOptions) - $(OutDir)test.exe - true - Console - MachineX64 - - - - - MaxSpeed - AnySuitable - Speed - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - false - - - MachineX86 - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - MachineX64 - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - false - - - MachineX86 - - - - - X64 - - - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_TRACE;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - MachineX64 - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - true - Console - true - true - false - - - MachineX86 - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - false - - - MachineX86 - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - false - - - MachineX86 - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - _AMD64_;WIN32;NDEBUG;_CONSOLE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - MachineX64 - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {4a7e5a93-19d8-4382-8950-fb2edec7a76e} - false - - - - - - \ No newline at end of file diff --git a/z3-prover.sln b/z3-prover.sln deleted file mode 100644 index 1b016a5e9..000000000 --- a/z3-prover.sln +++ /dev/null @@ -1,561 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{012E9D8D-46CF-4536-9F34-7260C08C1E3C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib", "lib\lib.vcxproj", "{4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shell", "shell\shell.vcxproj", "{BF547582-F16D-4BE5-B9AB-8B6A9364B447}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test\test.vcxproj", "{21A10ECD-32E2-4F27-A03D-81D855A048CC}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_capi", "test_capi\test_capi.vcxproj", "{9E76526D-EDA2-4B88-9616-A8FC08F31071}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll", "dll\dll.vcxproj", "{0BF8CB94-61C7-4545-AE55-C58D858AA8B6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Z3V3", "Microsoft.Z3V3\Microsoft.Z3V3.vcxproj", "{F008F2C4-D652-4A58-8DEF-DB83E2355454}" - ProjectSection(ProjectDependencies) = postProject - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} = {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "maxsat", "maxsat\maxsat.vcxproj", "{7C154132-AAAB-4F60-B652-F8C51A63D244}" - ProjectSection(ProjectDependencies) = postProject - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E} = {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E} - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} = {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Z3", "Microsoft.Z3\Microsoft.Z3.csproj", "{EC3DB697-B734-42F7-9468-5B62821EEB5A}" - ProjectSection(ProjectDependencies) = postProject - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} = {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test_mapi", "Microsoft.Z3\test_mapi\test_mapi.csproj", "{D350BC78-8455-45D3-9759-073394378BF2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - commercial|Any CPU = commercial|Any CPU - commercial|Mixed Platforms = commercial|Mixed Platforms - commercial|Win32 = commercial|Win32 - commercial|x64 = commercial|x64 - commercial|x86 = commercial|x86 - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - external|Any CPU = external|Any CPU - external|Mixed Platforms = external|Mixed Platforms - external|Win32 = external|Win32 - external|x64 = external|x64 - external|x86 = external|x86 - Release_delaysign|Any CPU = Release_delaysign|Any CPU - Release_delaysign|Mixed Platforms = Release_delaysign|Mixed Platforms - Release_delaysign|Win32 = Release_delaysign|Win32 - Release_delaysign|x64 = Release_delaysign|x64 - Release_delaysign|x86 = Release_delaysign|x86 - release_mt|Any CPU = release_mt|Any CPU - release_mt|Mixed Platforms = release_mt|Mixed Platforms - release_mt|Win32 = release_mt|Win32 - release_mt|x64 = release_mt|x64 - release_mt|x86 = release_mt|x86 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - Setup|Any CPU = Setup|Any CPU - Setup|Mixed Platforms = Setup|Mixed Platforms - Setup|Win32 = Setup|Win32 - Setup|x64 = Setup|x64 - Setup|x86 = Setup|x86 - Trace|Any CPU = Trace|Any CPU - Trace|Mixed Platforms = Trace|Mixed Platforms - Trace|Win32 = Trace|Win32 - Trace|x64 = Trace|x64 - Trace|x86 = Trace|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|Any CPU.ActiveCfg = commercial|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|Mixed Platforms.ActiveCfg = commercial|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|Mixed Platforms.Build.0 = commercial|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|Win32.ActiveCfg = commercial|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|Win32.Build.0 = commercial|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|x64.ActiveCfg = commercial|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|x64.Build.0 = commercial|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|x86.ActiveCfg = commercial|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Any CPU.Build.0 = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Win32.ActiveCfg = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Win32.Build.0 = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|x64.ActiveCfg = Debug|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|x64.Build.0 = Debug|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|x86.ActiveCfg = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|x86.Build.0 = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Any CPU.ActiveCfg = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Any CPU.Build.0 = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Mixed Platforms.ActiveCfg = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Mixed Platforms.Build.0 = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Win32.ActiveCfg = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Win32.Build.0 = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|x64.ActiveCfg = external|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|x64.Build.0 = external|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|x86.ActiveCfg = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|Any CPU.ActiveCfg = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|Mixed Platforms.Build.0 = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|Win32.ActiveCfg = release_mt|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|x64.ActiveCfg = Release|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|x64.Build.0 = Release|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Any CPU.ActiveCfg = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Any CPU.Build.0 = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Mixed Platforms.ActiveCfg = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Mixed Platforms.Build.0 = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Win32.Build.0 = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|x64.ActiveCfg = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|x86.ActiveCfg = release_mt|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Any CPU.ActiveCfg = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Any CPU.Build.0 = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Mixed Platforms.Build.0 = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Win32.ActiveCfg = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Win32.Build.0 = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|x64.ActiveCfg = Release|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|x64.Build.0 = Release|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|x86.ActiveCfg = Release|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|Any CPU.ActiveCfg = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|Mixed Platforms.ActiveCfg = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|Mixed Platforms.Build.0 = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|Win32.ActiveCfg = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|x64.ActiveCfg = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|x64.Build.0 = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|x86.ActiveCfg = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|Any CPU.ActiveCfg = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|Mixed Platforms.ActiveCfg = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|Mixed Platforms.Build.0 = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|Win32.ActiveCfg = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|Win32.Build.0 = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|x64.ActiveCfg = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|x86.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|Any CPU.ActiveCfg = commercial|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|Mixed Platforms.ActiveCfg = commercial|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|Mixed Platforms.Build.0 = commercial|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|Win32.ActiveCfg = commercial|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|Win32.Build.0 = commercial|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|x64.ActiveCfg = commercial|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|x64.Build.0 = commercial|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|x86.ActiveCfg = commercial|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Any CPU.Build.0 = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Win32.ActiveCfg = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Win32.Build.0 = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|x64.ActiveCfg = Debug|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|x64.Build.0 = Debug|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|x86.ActiveCfg = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|x86.Build.0 = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Any CPU.ActiveCfg = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Any CPU.Build.0 = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Mixed Platforms.ActiveCfg = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Mixed Platforms.Build.0 = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Win32.ActiveCfg = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Win32.Build.0 = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|x64.ActiveCfg = external|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|x64.Build.0 = external|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|x86.ActiveCfg = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|Any CPU.ActiveCfg = release_mt|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|Mixed Platforms.Build.0 = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|Win32.ActiveCfg = release_mt|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|x64.ActiveCfg = Release|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|x64.Build.0 = Release|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Any CPU.ActiveCfg = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Any CPU.Build.0 = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Mixed Platforms.ActiveCfg = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Mixed Platforms.Build.0 = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Win32.Build.0 = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|x64.ActiveCfg = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|x86.ActiveCfg = release_mt|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Any CPU.ActiveCfg = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Any CPU.Build.0 = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Mixed Platforms.Build.0 = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Win32.ActiveCfg = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Win32.Build.0 = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|x64.ActiveCfg = Release|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|x64.Build.0 = Release|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|x86.ActiveCfg = Release|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|Any CPU.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|Mixed Platforms.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|Mixed Platforms.Build.0 = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|Win32.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|x64.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|x64.Build.0 = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|x86.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|Any CPU.ActiveCfg = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|Mixed Platforms.ActiveCfg = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|Mixed Platforms.Build.0 = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|Win32.ActiveCfg = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|Win32.Build.0 = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|x64.ActiveCfg = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|x86.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.commercial|Any CPU.ActiveCfg = commercial|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.commercial|Mixed Platforms.ActiveCfg = commercial|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.commercial|Win32.ActiveCfg = commercial|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.commercial|x64.ActiveCfg = commercial|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.commercial|x86.ActiveCfg = commercial|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Any CPU.Build.0 = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Win32.ActiveCfg = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Win32.Build.0 = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|x64.ActiveCfg = Debug|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|x64.Build.0 = Debug|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|x86.ActiveCfg = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|x86.Build.0 = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.external|Any CPU.ActiveCfg = external|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.external|Mixed Platforms.ActiveCfg = external|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.external|Win32.ActiveCfg = external|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.external|x64.ActiveCfg = external|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.external|x86.ActiveCfg = external|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|Any CPU.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|Win32.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|x64.ActiveCfg = release_mt|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|x64.Build.0 = release_mt|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.release_mt|Any CPU.ActiveCfg = release_mt|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.release_mt|Mixed Platforms.ActiveCfg = release_mt|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.release_mt|x64.ActiveCfg = release_mt|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.release_mt|x86.ActiveCfg = release_mt|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|Any CPU.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|Mixed Platforms.Build.0 = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|Win32.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|Win32.Build.0 = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|x64.ActiveCfg = Release|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|x64.Build.0 = Release|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|x86.ActiveCfg = Release|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|Any CPU.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|Mixed Platforms.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|Mixed Platforms.Build.0 = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|Win32.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|x64.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|x64.Build.0 = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|x86.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|Any CPU.ActiveCfg = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|Mixed Platforms.ActiveCfg = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|Mixed Platforms.Build.0 = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|Win32.ActiveCfg = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|Win32.Build.0 = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|x64.ActiveCfg = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|x86.ActiveCfg = Trace|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.commercial|Any CPU.ActiveCfg = commercial|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.commercial|Mixed Platforms.ActiveCfg = commercial|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.commercial|Win32.ActiveCfg = commercial|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.commercial|x64.ActiveCfg = commercial|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.commercial|x86.ActiveCfg = commercial|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|Win32.Build.0 = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|x64.ActiveCfg = Debug|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|x64.Build.0 = Debug|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|x86.ActiveCfg = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|x86.Build.0 = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Any CPU.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Mixed Platforms.ActiveCfg = external|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Mixed Platforms.Build.0 = external|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Win32.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Win32.Build.0 = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|x64.ActiveCfg = external|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|x64.Build.0 = external|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|x86.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|Any CPU.ActiveCfg = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|Win32.ActiveCfg = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|x64.ActiveCfg = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|x64.Build.0 = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.release_mt|Any CPU.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.release_mt|Mixed Platforms.ActiveCfg = release_mt|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.release_mt|x64.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.release_mt|x86.ActiveCfg = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|Any CPU.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|Mixed Platforms.Build.0 = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|Win32.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|Win32.Build.0 = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|x64.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|x64.Build.0 = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|x86.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Setup|Any CPU.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Setup|Mixed Platforms.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Setup|Win32.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Setup|x64.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Setup|x86.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Trace|Any CPU.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Trace|Mixed Platforms.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Trace|Win32.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Trace|x64.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Trace|x86.ActiveCfg = Release|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.commercial|Any CPU.ActiveCfg = commercial|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.commercial|Mixed Platforms.ActiveCfg = commercial|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.commercial|Win32.ActiveCfg = commercial|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.commercial|x64.ActiveCfg = commercial|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.commercial|x86.ActiveCfg = commercial|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|Win32.ActiveCfg = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|Win32.Build.0 = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|x64.ActiveCfg = Debug|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|x64.Build.0 = Debug|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|x86.ActiveCfg = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|x86.Build.0 = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Any CPU.ActiveCfg = external|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Mixed Platforms.ActiveCfg = external|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Mixed Platforms.Build.0 = external|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Win32.ActiveCfg = external|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Win32.Build.0 = external|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|x64.ActiveCfg = external|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|x64.Build.0 = external|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|x86.ActiveCfg = external|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release_delaysign|Any CPU.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release_delaysign|Mixed Platforms.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release_delaysign|Win32.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release_delaysign|x64.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.release_mt|Any CPU.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.release_mt|Mixed Platforms.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.release_mt|x64.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.release_mt|x86.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|Any CPU.ActiveCfg = Release|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|Mixed Platforms.Build.0 = Release|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|Win32.ActiveCfg = Release|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|x64.ActiveCfg = Release|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|x64.Build.0 = Release|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|x86.ActiveCfg = Release|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Setup|Any CPU.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Setup|Mixed Platforms.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Setup|Win32.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Setup|x64.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Setup|x86.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Trace|Any CPU.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Trace|Mixed Platforms.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Trace|Win32.ActiveCfg = trace|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Trace|x64.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Trace|x86.ActiveCfg = trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.commercial|Any CPU.ActiveCfg = commercial|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.commercial|Mixed Platforms.ActiveCfg = commercial|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.commercial|Win32.ActiveCfg = commercial|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.commercial|x64.ActiveCfg = commercial|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.commercial|x86.ActiveCfg = commercial|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|Any CPU.ActiveCfg = Debug|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|Win32.ActiveCfg = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|Win32.Build.0 = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|x64.ActiveCfg = Debug|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|x64.Build.0 = Debug|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|x86.ActiveCfg = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|x86.Build.0 = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Any CPU.ActiveCfg = external|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Mixed Platforms.ActiveCfg = external|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Mixed Platforms.Build.0 = external|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Win32.ActiveCfg = external|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Win32.Build.0 = external|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|x64.ActiveCfg = external|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|x64.Build.0 = external|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|x86.ActiveCfg = external|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release_delaysign|Any CPU.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release_delaysign|Mixed Platforms.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release_delaysign|Win32.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release_delaysign|x64.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.release_mt|Any CPU.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.release_mt|Mixed Platforms.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.release_mt|x64.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.release_mt|x86.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|Any CPU.ActiveCfg = Release|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|Mixed Platforms.Build.0 = Release|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|Win32.ActiveCfg = Release|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|x64.ActiveCfg = Release|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|x64.Build.0 = Release|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|x86.ActiveCfg = Release|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Setup|Any CPU.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Setup|Mixed Platforms.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Setup|Win32.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Setup|x64.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Setup|x86.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Trace|Any CPU.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Trace|Mixed Platforms.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Trace|Win32.ActiveCfg = Trace|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Trace|x64.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Trace|x86.ActiveCfg = Trace|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.commercial|Any CPU.ActiveCfg = commercial|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.commercial|Mixed Platforms.ActiveCfg = commercial|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.commercial|Win32.ActiveCfg = commercial|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.commercial|x64.ActiveCfg = commercial|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.commercial|x86.ActiveCfg = commercial|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|Win32.ActiveCfg = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|Win32.Build.0 = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|x64.ActiveCfg = Debug|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|x64.Build.0 = Debug|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|x86.ActiveCfg = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|x86.Build.0 = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Any CPU.ActiveCfg = external|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Mixed Platforms.ActiveCfg = external|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Mixed Platforms.Build.0 = external|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Win32.ActiveCfg = external|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Win32.Build.0 = external|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|x64.ActiveCfg = external|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|x64.Build.0 = external|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|x86.ActiveCfg = external|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release_delaysign|Any CPU.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release_delaysign|Win32.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release_delaysign|x64.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release_delaysign|x86.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.release_mt|Any CPU.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.release_mt|Mixed Platforms.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.release_mt|Win32.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.release_mt|x64.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.release_mt|x86.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|Any CPU.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|Mixed Platforms.Build.0 = Release|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|Win32.ActiveCfg = Release|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|x64.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|x64.Build.0 = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|x86.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Setup|Any CPU.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Setup|Mixed Platforms.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Setup|Win32.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Setup|x64.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Setup|x86.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Trace|Any CPU.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Trace|Mixed Platforms.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Trace|Win32.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Trace|x64.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Trace|x86.ActiveCfg = Release|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.commercial|Any CPU.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.commercial|Mixed Platforms.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.commercial|Win32.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.commercial|x64.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.commercial|x86.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|Any CPU.ActiveCfg = Debug|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|Win32.ActiveCfg = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|Win32.Build.0 = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|x64.ActiveCfg = Debug|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|x64.Build.0 = Debug|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|x86.ActiveCfg = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|x86.Build.0 = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Any CPU.ActiveCfg = external|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Mixed Platforms.ActiveCfg = external|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Mixed Platforms.Build.0 = external|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Win32.ActiveCfg = external|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Win32.Build.0 = external|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|x64.ActiveCfg = external|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|x64.Build.0 = external|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|x86.ActiveCfg = external|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release_delaysign|Any CPU.ActiveCfg = Release_delaysign|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release_delaysign|Mixed Platforms.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release_delaysign|Win32.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release_delaysign|x64.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release_delaysign|x86.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.release_mt|Any CPU.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.release_mt|Mixed Platforms.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.release_mt|Win32.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.release_mt|x64.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.release_mt|x86.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|Win32.ActiveCfg = Release|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|x64.ActiveCfg = Release|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|x64.Build.0 = Release|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|x86.ActiveCfg = Release|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Setup|Any CPU.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Setup|Mixed Platforms.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Setup|Win32.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Setup|x64.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Setup|x86.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Trace|Any CPU.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Trace|Mixed Platforms.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Trace|Win32.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Trace|x64.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Trace|x86.ActiveCfg = Release_delaysign|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.commercial|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.commercial|Mixed Platforms.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.commercial|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.commercial|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.commercial|x86.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|Win32.ActiveCfg = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|Win32.Build.0 = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|x64.ActiveCfg = Debug|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|x64.Build.0 = Debug|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|x86.ActiveCfg = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|x86.Build.0 = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.external|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.external|Mixed Platforms.ActiveCfg = Release|x86 - {D350BC78-8455-45D3-9759-073394378BF2}.external|Mixed Platforms.Build.0 = Release|x86 - {D350BC78-8455-45D3-9759-073394378BF2}.external|Win32.ActiveCfg = Release|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.external|Win32.Build.0 = Release|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.external|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.external|x64.Build.0 = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.external|x86.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release_delaysign|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release_delaysign|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release_delaysign|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release_delaysign|x86.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.release_mt|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.release_mt|Mixed Platforms.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.release_mt|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.release_mt|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.release_mt|x86.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Release|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release|x64.Build.0 = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release|x86.ActiveCfg = Release|x86 - {D350BC78-8455-45D3-9759-073394378BF2}.Setup|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Setup|Mixed Platforms.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Setup|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Setup|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Setup|x86.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Trace|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Trace|Mixed Platforms.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Trace|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Trace|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Trace|x86.ActiveCfg = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal