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