3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-18 14:49:01 +00:00
Commit graph

4181 commits

Author SHA1 Message Date
Dan Liew beb21126e2 Move where the Z3 API header files to be scanned by the Python scripts
is declared out of ``src/api/CMakeLists.txt`` and into
``src/CMakeLists.txt``. We will need this list to generate the
``api_dll.def`` module definition file for MSVC. Whilst I'm here
also fix a stray use of ``USES_TERMINAL`` in ``add_custom_command()``.
2016-03-04 15:26:09 +00:00
Dan Liew ce54f6d957 Fix racing MSVC CMake build. The `libz3` target must have a different
OUTPUT_NAME than the ``shell`` target to avoid conflicting file names.
2016-03-04 15:26:09 +00:00
Dan Liew ca6c41e411 Don't append ${OpenMP_CXX_FLAGS} to Z3_DEPENDENT_LIBS. This is wrong
because this is passed to ``target_link_libraries()``. It just so
happens that ``target_link_libraries()`` will interpret arguments
starting with a dash as a flag to pass to the linker (i.e. in this
case ``-fopenmp``). However in the case of MSVC that flag is ``/openmp``
which is the interpreted as a file path which will lead to a linker
failure later because the linker can't find the file ``\openmp.obj``.
2016-03-04 15:26:09 +00:00
Dan Liew 32e51eda2e Only CMake >= 3.2 supports the `USES_TERMINAL` argument to
add_custom_command()
2016-03-04 15:26:09 +00:00
Dan Liew 9f5f8f128f CMake 2.8.12 doesn't support the `continue()` command. 2016-03-04 15:26:09 +00:00
Dan Liew 251527603d Implement a CMake build system.
This is a large rework of my first attempt at this (#459).

This implementation calls into the recently implemented python scripts
to generate the necessary generated ``.h`` and ``.cpp`` files but is
independent from Python building system otherwise.  Unlike the Python
build system, the generated files are emitted into the build tree to
avoid polluting the source tree. The build system is setup to refuse to
configure if it detects generated files in the source tree. If your
source tree is dirty you can run ``git clean -fx`` to clean your working
directory.

Currently the build succeeds on Linux using CMake 3.4.3 using
the "Unix Makefiles" generator with gcc or clang.

The following notable features are implemented:

* Building of the C and C++ examples and the ``test-z3`` executable.
  These are included from the ``all`` target so you have to tell the
  build system (e.g. make) to build them manually.

* Install (``make install``) and uninstall (``make uninstall``) of libz3
  and its header files. This supports ``DESTDIR`` out of the box because
  CMake supports it.

* An option (``BUILD_LIBZ3_SHARED``) to build libz3 as a static or dynamic library.

* Support for using/not using OpenMP (``USE_OPENMP``)

* Support for using/not using libgmp (``USE_LIB_GMP``)

* Setting the SOVERSION for libz3. I'm not sure if I'm setting the
* number correctly though. This is required by Linux distrubtions that
  wills ship libz3. This needs discussion.

The following notable features are currently not implemented
and are left for future work.

* Support for ARM.
* Support for the foci2 library.
* Support for creating/installing/uninstalling the dotnet, java, python and ml
  bindings.
* Full support for MSVC. Although I've tried to write the CMake code
  with MSVC in mind not all the correct flags are passed to it.
* Support for using the git hash.

This new build system has several advantages other the old build system.

* It is easier for outside contributors to contribute to Z3 when the
  build system is something more standard.
* Incremental builds work properly. With the old build system when
  new code is pulled down the old build directory would need to thrown
  out and a new fresh build had to be performed because the build system
  didn't know how to correctly rebuild the project (e.g. couldn't handle
  new sources being added/removed, compiler flags changing, generated
  files changing, etc...). This is a MASSIVE boost to productivity!
* We now have access rich array of features that CMake provides for
  building C/C++ projects. This means less time spent implementing
  custom build system logic in Python that is already supported by
  CMake.
* CMake supports many IDEs out of the box so it should be fairly
  straight forward to build Z3 with Visual Studio (once support for MSVC
  is added), Xcode, Eclipse CDT, CLion, ..etc.
2016-03-04 15:26:09 +00:00
Christoph M. Wintersteiger a51201298c Bugfix for assumptions in inc_sat_solver 2016-03-04 14:42:38 +00:00
Christoph M. Wintersteiger b2eb5b7170 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-03-04 13:09:50 +00:00
Christoph M. Wintersteiger 8cc3ba5a8b fixed FP Python doctest examples 2016-03-04 13:09:42 +00:00
Nikolaj Bjorner 6fef24edb4 recursive function definitions; combine model-building functionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-03 08:07:06 -08:00
Nikolaj Bjorner 50b2389e7f Merge branch 'master' of https://github.com/Z3Prover/z3 2016-03-03 07:59:13 -08:00
Nikolaj Bjorner 7c6540e18f recursive function definitions; combine model-building functionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-03 07:59:03 -08:00
Christoph M. Wintersteiger 1aeea763ff Assertion fix in inc_sat_solver 2016-03-02 18:39:28 +00:00
Christoph M. Wintersteiger bf40bb8005 Bugfix for inc_sat_solver 2016-03-02 18:27:01 +00:00
Christoph M. Wintersteiger 68416bf6bc whitespace 2016-03-02 18:25:56 +00:00
Christoph M. Wintersteiger bddf416064 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-03-02 18:06:22 +00:00
Christoph M. Wintersteiger dbf9609b4c added assertion 2016-03-02 18:06:14 +00:00
Christoph M. Wintersteiger f128c76f23 whitespace 2016-03-02 18:05:14 +00:00
Christoph M. Wintersteiger 6fa2338edc Merge pull request #471 from 4tXJ7f/patch-1
[Z3py] Fix documentation in FPSortRef
2016-03-02 14:14:54 +00:00
Nikolaj Bjorner 1a081936ac Merge branch 'master' of https://github.com/Z3Prover/z3 2016-03-01 22:31:53 -08:00
Nikolaj Bjorner a25336a899 fix test build, working on rec-functions and automata complementation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-01 22:31:44 -08:00
Andres Nötzli 18b9cd1948 [Z3py] Fix documentation in FPSortRef 2016-03-01 18:56:20 -08:00
Christoph M. Wintersteiger 1e86175c03 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-03-01 21:21:32 +00:00
Christoph M. Wintersteiger 59e695f2be Bugfixes for FP numerals in Python
Relates to #464, #470
2016-03-01 21:21:25 +00:00
Nikolaj Bjorner 9b6963d112 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-03-01 09:48:53 -08:00
Nikolaj Bjorner 67397bf71e enable logic parameter update to configure SMTLIB logic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-01 09:48:24 -08:00
Christoph M. Wintersteiger 0cb8193cdd logic fix 2016-03-01 17:42:33 +00:00
Nikolaj Bjorner 7f51ecab37 enable logic parameter update to configure SMTLIB logic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-01 09:26:14 -08:00
Nikolaj Bjorner 31c58b0999 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-03-01 08:46:51 -08:00
Nikolaj Bjorner 908f09a9df update logic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-01 08:46:43 -08:00
Christoph M. Wintersteiger c171170bed Fixed FP string input conversions.
Fixes #464
2016-03-01 15:31:33 +00:00
Christoph M. Wintersteiger b6e43b6d7b Merge pull request #468 from 4tXJ7f/fix_fp_neq
[Z3py] Consistent behavior of eq and ne for FP
2016-03-01 14:07:28 +00:00
Nuno Lopes 62e46aacd9 bv_bounds: make may_simplify more precise to skip exprs with just 1 bound expr
speedups up to 3x in selected benchmarks
2016-03-01 11:31:08 +00:00
Nuno Lopes 33431ef922 fix build with gcc 2016-03-01 10:02:24 +00:00
Nuno Lopes 10ea36bfed fix build with gcc 2016-03-01 10:00:58 +00:00
Andres Notzli 91d6b2cbbb [Z3py] Consistent behavior of eq and ne for FP
Before, x == y and x != y were returning inconsistent expressions (i.e.
`Not(x == y)` was not the same as `x != y`):

>>> x = FP('x', Float32())
>>> y = FP('y', Float32())
>>> (x == y).sexpr()
'(= x y)'
>>> (x != y).sexpr()
'(not (fp.eq x y))'

`=` does not have the same semantics as `fp.eq` (e.g. `fp.eq` of +0.0
and -0.0 is true while it is false for `=`).
This patch removes the __ne__ method from FPRef, so `x == y` and `x !=
y` use the inherited operations while fpEQ and fpNEQ can be used to
refer to `fp.eq(..)`/`Not(fp.eq(..))`.
2016-03-01 00:21:10 -08:00
Nikolaj Bjorner 830a99aab4 finish minimization
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-01 00:04:03 -08:00
Nikolaj Bjorner 4a15d756d7 uint64_t -> uint64 for cross platform
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-29 22:16:03 -08:00
Nikolaj Bjorner b90bc4e685 fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-29 21:15:44 -08:00
Nikolaj Bjorner 3b6eef05c9 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-29 20:23:29 -08:00
Nikolaj Bjorner 6cf76f2113 remove references to _DEBUG use Z3DEBUG instead
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-29 20:23:20 -08:00
Andres Nötzli c9269c1983 Fix documentation for floating-point comparisons 2016-02-29 19:12:14 -08:00
Nikolaj Bjorner 7ac5e67538 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-29 17:04:32 -08:00
Nikolaj Bjorner c6c84dd59a update documentation help to be inline with fpLT. Issue #465
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-29 17:04:26 -08:00
Nuno Lopes 43202572ee bv_bounds: switch from rational to uint64
this limits the analysis to 64-bit BVs, but gives a speedup of up to one order of magnitude
2016-02-29 17:23:54 +00:00
Nikolaj Bjorner 9efc7f4aea turn on model completion in validation code
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-29 09:06:20 -08:00
Nikolaj Bjorner d89c39cbe2 apply t()
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-29 08:36:25 -08:00
Nuno Lopes 006dc147a8 fix build with gcc 5 2016-02-29 14:34:48 +00:00
Nikolaj Bjorner 7656adc483 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-28 17:05:52 -08:00
Nikolaj Bjorner df2d7e7628 add intersection using symbolic automata facility
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-28 17:05:12 -08:00
Nuno Lopes c1eb1cc3f2 bv_bounds: improve perf of push/pop 2016-02-28 20:07:39 +00:00
Nuno Lopes e7a360ca08 ctx_simplify: remove virtual push() method 2016-02-28 17:57:40 +00:00
Nuno Lopes 51687b2be7 bv_bounds: ensure (bvule x maxuint) is simplified to true 2016-02-28 10:56:48 +00:00
Nikolaj Bjorner e659845bc0 tune handling of contains, avoid redundant equalities, merge use of indexof.left/right with contains.left/right adding only least-ness constraints in the context of index
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-27 09:56:11 -08:00
Nikolaj Bjorner 1c630ccc9a Merge branch 'master' of https://github.com/Z3Prover/z3 into HEAD 2016-02-26 18:15:57 -08:00
Nikolaj Bjorner ce8862d415 fix bug in conflict clause generation in seq-branch-variable
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-26 18:15:45 -08:00
Nuno Lopes 97d6098d00 bv_bounds: make may_simplify() more aggressive for the common case of a single comparison
fix expr_has_bounds to handle cases like (bvadd (ite c t e) ...)
2016-02-25 19:41:01 +00:00
Nuno Lopes 6563e458f0 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-25 16:53:45 +00:00
Nuno Lopes c693c990df bv_bounds: speedup up to 10x in larger formulas
introduce a may_simplify() function to short-circuit evaluation of expression trees that are guaranteed to not be simplifiable
2016-02-25 16:53:35 +00:00
Nuno Lopes d642d5fe4c API: add smt.logic parameter to enable setting the logic through the API
currently only Z3_solver_set_params() is supported
logic has to be set before solver first usage or before solver reset
2016-02-25 09:47:51 +00:00
Nuno Lopes c1aa33339d bv_bounds: early exit in is_bound in case the expr is not boolean
~2% speedup
2016-02-25 09:32:10 +00:00
Nikolaj Bjorner 4c408165ab Merge branch 'master' of https://github.com/Z3Prover/z3 into HEAD 2016-02-24 08:55:28 -08:00
Nikolaj Bjorner 5679fb5d6b experimenting with alternative prefix encodings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-24 08:55:22 -08:00
Nikolaj Bjorner 4e7a867cd9 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-23 18:42:01 -08:00
Nikolaj Bjorner d5383e2387 fix bug in definition of rewrite rule for replace, tighten constraints for tightest-prefix
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-23 18:41:56 -08:00
Nikolaj Bjorner 8c68aed69e Merge branch 'master' of https://github.com/Z3Prover/z3 into HEAD 2016-02-23 08:11:09 -08:00
Nuno Lopes 64888b6b19 ctx_simplify: fix bug in simplification of or exprs
this triggered when the or covers the whole space -> true
2016-02-23 10:37:01 +00:00
Nuno Lopes 12458b1a84 remove dead code in qfufbv 2016-02-22 10:22:56 +00:00
Nikolaj Bjorner 63c138c08e add option to enable equality propagation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-21 11:16:13 -08:00
Nikolaj Bjorner 8c538fd3f0 setting partial equivalence priority lower so that it doesn't intefere with inlining (partial fix to the fact that inlining will remove such implicit relations). Using short-circuit negation in qe to avoid redundant double negations in intermediary results
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-21 10:31:13 -08:00
Nikolaj Bjorner d4f41c0420 add goal context for simplifier, disable equality creation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-20 10:13:24 -08:00
Nikolaj Bjorner c7abc11ce0 Merge branch 'master' of https://github.com/Z3Prover/z3 into HEAD 2016-02-19 08:23:32 -08:00
Nikolaj Bjorner bff10527d1 merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-19 08:23:27 -08:00
Nuno Lopes 7d3af70a63 ctx-simplify: fix mem leak of simplifier 2016-02-19 11:08:01 +00:00
Nuno Lopes c618838ed9 bv_bounds: fix crash in push() when realloc happened 2016-02-19 11:06:22 +00:00
Nuno Lopes 121b3b60f3 bv_bounds/ctx_simplify: improve handling of (ite x a b) where (not x) is proved to be false 2016-02-19 09:42:42 +00:00
Nikolaj Bjorner 73f93dbadb Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-18 18:10:30 -08:00
Nikolaj Bjorner a073b37ce3 fix bugs in seq solver: add relevancy and axiom
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-18 18:10:16 -08:00
Nikolaj Bjorner 5962ca2a62 seq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-18 12:08:35 -08:00
Nuno Lopes 73da4dda07 add a bv rewrite pattern:
(bvsle (- x (srem x c1)) c2) -> (bvsle x (+ c1 c2 - 1))
2016-02-18 17:45:55 +00:00
Nuno Lopes d32b4c71d1 [bv_bounds] introduce a tight bit in intervals to denote they are tight (over and under approx)
use this to ensure certain transformations remain sound
2016-02-18 15:53:11 +00:00
Nikolaj Bjorner 67958efed2 add fixed length heuristic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-17 21:20:39 -08:00
Nuno Lopes 8718c1c99f bv_bounds: simplify negated expressions as well 2016-02-17 19:14:02 +00:00
Nikolaj Bjorner 16ced7cda5 Merge pull request #453 from delcypher/fix_clause_allocator_bound_check
Fix incorrect (off by one) bound check in clause_allocator
2016-02-17 08:50:51 -08:00
Nuno Lopes a4cfcd4550 bv_bounds: fix bug in interval intersection for non-wrapping disjoint values 2016-02-17 16:32:43 +00:00
Nuno Lopes ac20d8bc11 bv_bounds: fix intersection of wrapped intervals
e.g., [117, 115] /\ [115, 113] -> [115, 113]
2016-02-17 15:41:12 +00:00
Nuno Lopes 98a92b9255 bv_bounds tactic: change representation to intervals
Code by myself and Nikolaj Bjorner
2016-02-17 10:02:40 +00:00
Dan Liew 6c966bba59 Fix incorrect (off by one) bound check. Also assert that we don't
increment ``m_num_segments`` beyond the maximum value
(``c_max_segments``).

This is related to #436.

When doing an AddressSanitized build and running the ``c_example``
it looks like Z3 tries to create too many segments and index out of
bounds. Fixing the checks here causes them to fail which should help
us narrow down the problem.
2016-02-16 14:04:21 +00:00
Nuno Lopes c05a0dfa61 revert my previous attempt to simplify the destructor of ctx-simplify
there can be assertions at level 0
2016-02-16 13:10:17 +00:00
Nuno Lopes 293566d464 ctx-simplify: simplify destructor 2016-02-16 09:53:04 +00:00
Nuno Lopes 98c5a5c86c move ctx_propagate_assertions class to .cpp file 2016-02-16 09:34:45 +00:00
Nikolaj Bjorner 07953342ac Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-15 17:29:54 -08:00
Nikolaj Bjorner d3805bbdf6 fix location of level retrieval
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-15 17:29:46 -08:00
Nuno Lopes 96f6bf7028 ctx_simplify: simplify ite if then/else values become equal 2016-02-15 12:06:20 +00:00
Nikolaj Bjorner 8fc58e1ace propagate bounds implementation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-13 02:07:41 +00:00
Nikolaj Bjorner d7186eede8 bv bounds tactic for Nuno
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-13 00:13:16 +00:00
Nikolaj Bjorner e484fc365d add outline of bv bounds tactic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-12 22:57:47 +00:00
Nikolaj Bjorner 94be6fc776 remove passing suffixes into pdr_sym_mux, trying to isolate cause of issue #420
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-12 19:25:52 +00:00
Nikolaj Bjorner 660eff0b9e Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-12 18:59:05 +00:00
Nikolaj Bjorner 45999b254c hoist simplifier functionality out of context loop to allow plugging in other contextual simplification methods
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-12 18:58:37 +00:00
Christoph M. Wintersteiger 6319861e26 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-12 18:32:46 +00:00
Christoph M. Wintersteiger f399fe5e1d resolved conflicts 2016-02-12 18:29:46 +00:00
Christoph M. Wintersteiger 3356f36b8f Merge pull request #446 from msullivan/arm-build
Fix gcc build failure on ARM caused by including <emmintrin.h>
2016-02-12 18:27:14 +00:00
Nikolaj Bjorner e2dc7c6f64 add note that current re.complement is non-standard
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-12 17:12:43 +00:00
Nikolaj Bjorner 94453033b6 add partial support for complementation of regular expressions. Handles case of complementing character ranges
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-12 15:59:33 +00:00
Christoph M. Wintersteiger 9dbb8057ca Merge pull request #449 from kenmcmil/issue243
fixed logging on return of Z3_compute_interpolant...
2016-02-12 12:40:01 +00:00
Nikolaj Bjorner 8d61d36c3f add documentation methods to param_descrs, add C++ API and example for param_descrs. Issue #443
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-12 11:45:00 +00:00
Ken McMillan 8b90bc9e91 fixed logginf on return of Z3_compute_interpolant and added interpolation example to test_capi.c 2016-02-11 16:09:54 -08:00
Michael Sullivan fa598edf43 Fix gcc build failure on ARM caused by including <emmintrin.h>
src/util/hwf.cpp tries to use <emmintrin.h> to directly use SSE
intrinsics. Make sure to only use those when actually on x86 or
x86_64.
2016-02-10 20:47:08 +00:00
Nikolaj Bjorner 9ed7dadc02 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-10 15:02:28 +00:00
Nikolaj Bjorner a6e1c70eab fix documentation/default bug. #445
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-10 15:02:22 +00:00
Christoph M. Wintersteiger fa68b00563 Cleanliness 2016-02-10 14:39:33 +00:00
Christoph M. Wintersteiger c01f0323c3 Merge branch 'lackr' of https://github.com/MikolasJanota/z3 into MikolasJanota-lackr 2016-02-10 14:26:04 +00:00
Nikolaj Bjorner 84cf208d5f Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-10 12:02:51 +00:00
Nikolaj Bjorner 535fb39313 add documentation comments as raised in #443
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-10 12:02:40 +00:00
Nikolaj Bjorner 56f15e98b5 Merge pull request #444 from delcypher/explicit_solver_timeout_units
Explicitly state what the units of the timeout parameter for the "smt" module are.
2016-02-10 11:43:31 +00:00
Dan Liew ea900db337 Explicitly state what the units of the timeout parameter for the "smt"
module are.
2016-02-10 11:35:15 +00:00
Nikolaj Bjorner 5285a795ac handle configuration passed in as null, deal with crash in logs attached to issue #243
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-10 01:20:16 +00:00
Nikolaj Bjorner cacfa0cb98 fix build, likely addressing issue #420
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-09 22:58:08 +00:00
Nikolaj Bjorner a0503ba6a1 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-09 22:24:48 +00:00
Nikolaj Bjorner 5ce85aba40 removing const qualifiers, perhaps this helps for #420 and adding assert to enable Clang analysis earlier for issue #440
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-09 22:23:37 +00:00
Mikolas Janota 73ef125171 Merge remote-tracking branch 'upstream/master' into lackr 2016-02-09 17:28:24 +00:00
Christoph M. Wintersteiger 4ba744987d Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-09 16:38:42 +00:00
Christoph M. Wintersteiger 3df9fea54c removed unused variables 2016-02-09 16:38:35 +00:00
Nuno Lopes 564343c39c remove unused methods in ast.cpp 2016-02-09 15:30:05 +00:00
Nikolaj Bjorner 60c0e73b2f Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-09 11:08:52 +00:00
Nikolaj Bjorner 133e3693de fix bug in replace built-in and move length-equality propagation to branch final check
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-09 11:08:33 +00:00
Christoph M. Wintersteiger a2f376f9d6 Fixed memory leak in theory_fpa. Relates to #436 2016-02-08 17:17:49 +00:00
Christoph M. Wintersteiger 7e2783c6a2 Fixed javadoc links in comments.
Relates to #401.
2016-02-08 15:25:53 +00:00
Mikolas Janota b614e7732b Merge remote-tracking branch 'upstream/master' into lackr 2016-02-08 12:54:22 +00:00
Christoph M. Wintersteiger 92b6a3e134 Fixed exponent cap for fp.add in fpa2bv_converter (was unsound for combinations of many sbits but few ebits).
Fixes #439.
2016-02-07 17:33:33 +00:00
Christoph M. Wintersteiger e9d94e53f6 Improved FPA simplifier plugin 2016-02-07 15:01:22 +00:00
Christoph M. Wintersteiger 37b11cdc74 Comments, whitespace. 2016-02-07 15:01:09 +00:00
Nikolaj Bjorner 3ef6d91038 fix #434: repeat documentation remarks about reference counting for disambiguation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-07 14:46:53 +00:00
Nikolaj Bjorner 677b4bf4fe fix #436, adding more length-based propagation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-07 14:43:53 +00:00
Nikolaj Bjorner fc1f37efc9 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-06 16:14:07 +00:00
Nikolaj Bjorner 5b50d98b89 ensure that seq rewriter gets invoked during pre-processing
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-06 16:13:31 +00:00
Christoph M. Wintersteiger b61376e8c2 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-05 15:22:42 +00:00
Christoph M. Wintersteiger 7ddd2856c8 Added is_considered_uninterpreted() to decl_plugins. 2016-02-05 15:22:37 +00:00
Christoph M. Wintersteiger 3d37c25bcc whitespace 2016-02-05 15:16:54 +00:00
Christoph M. Wintersteiger c11b6d90ce whitespace 2016-02-05 15:16:19 +00:00
Christoph M. Wintersteiger 757585d96f Merge pull request #427 from jwakely/patch-1
Convert stream to bool explicitly
2016-02-05 15:08:33 +00:00
Christoph M. Wintersteiger ac19bfb032 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-05 13:53:41 +00:00
Christoph M. Wintersteiger bb5118acbb Bugfix for bv*div0 model construction. 2016-02-05 13:53:35 +00:00
Christoph M. Wintersteiger 88f007e9da whitespace 2016-02-05 13:48:47 +00:00
Christoph M. Wintersteiger b87f4ca677 whitespace 2016-02-05 13:48:05 +00:00
Christoph M. Wintersteiger 21b85c27e1 whitespace 2016-02-05 13:47:14 +00:00
Nikolaj Bjorner eae17a43a2 Fix #430: disable rewriting of concatentations with constants because it breaks equality propagation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-05 11:00:17 +00:00
Nikolaj Bjorner cf970fd76a Fix #430: disable rewriting of concatentations with constants because it breaks equality propagation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-05 10:59:24 +00:00
Nikolaj Bjorner 2a65503235 fix #425 and report from Patrick Trentin of same bug in preprocessing soft constraints that are simplified to true/false
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-04 22:35:02 +00:00
Christoph M. Wintersteiger 808eb664cb Merge branch 'master' of https://github.com/Z3Prover/z3 into lackr 2016-02-04 18:27:19 +00:00
Nikolaj Bjorner 768bb84798 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-04 08:12:56 -08:00
Nikolaj Bjorner 9c7e5c37d1 add equality propagation based on partial length information to sequence theory. Fix issue #429
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-04 08:12:46 -08:00
Mikolas Janota 8547a965ab changing preamble for qfufbv_ackr_tactic. 2016-02-04 14:05:40 +00:00
Christoph M. Wintersteiger 4e37821dde "canceled" -> Z3_CANCELED_MSG
Relates to #431
2016-02-04 13:52:43 +00:00
mikolas faa620f673 Further refactoring ackermannization. 2016-02-03 17:31:19 +00:00
mikolas f3240024e7 Further refactoring ackermannization. 2016-02-03 17:26:58 +00:00
mikolas 2679b74543 refactoring 2016-02-03 13:53:52 +00:00
Mikolas Janota 6f12c0e6f9 bugfix in refactoring 2016-02-03 11:52:11 +00:00
Jonathan Wakely f02d273ee3 Convert stream to bool explicitly
In C++11 there is no implicit conversion from iostream classes to `void*`, just an explicit conversion to bool.
2016-02-02 23:39:11 +00:00
mikolas 0f0d3e55dc refactoring 2016-02-02 17:58:23 +00:00
mikolas 21b332235a Merge branch 'lackr' of github.com:MikolasJanota/z3 into lackr 2016-02-02 15:04:32 +00:00
mikolas bcab9a3600 re-factoring 2016-02-02 15:04:20 +00:00
Christoph M. Wintersteiger 3f6a1eb8c5 Fix for QF_BV core theory detection. 2016-02-02 13:01:32 +00:00
Christoph M. Wintersteiger 35c21779e3 Merge branch 'master' of https://github.com/Z3Prover/z3 into lackr 2016-02-02 11:29:35 +00:00
Nikolaj Bjorner 9b979b6e1e more string optimizations based on Chris' examples
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-01 17:08:11 -08:00
Christoph M. Wintersteiger 0b298b4df9 Minor fixes for QF_BV div0 ackermannization 2016-02-01 18:04:19 +00:00
Nuno Lopes 16a69e750a fix break in configure 2016-02-01 17:38:14 +00:00
Nuno Lopes ea55bd495f add new API function Z3_get_estimated_alloc_size() that returns *estimated* allocated memory size by Z3
Signed-off-by: Nuno Lopes <nlopes@microsoft.com>
2016-02-01 17:19:55 +00:00
Nuno Lopes b9c0578eea fix build on C++98 compilers 2016-02-01 17:12:22 +00:00
Nikolaj Bjorner fe6799699c Merge branch 'master' of https://github.com/Z3Prover/z3 2016-02-01 07:51:26 -08:00
Nikolaj Bjorner 995a2e1a29 perf tuning based on Chris's examples
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-02-01 07:51:05 -08:00
Nuno Lopes cc6769c866 improve bit-blasting for the case (bvsrem var power-of-two)
We will now transform bvsrem into an extract + zero extend
Gives ~40% speedup in selected benchmarks

Signed-off-by: Nuno Lopes <nlopes@microsoft.com>
2016-02-01 13:46:55 +00:00
mikolas de28e57dee Adding parameters to Ackermannization in qfbv_tactic. 2016-01-29 17:21:21 +00:00
mikolas c9799b143d Adding parameters to Ackermannization in qfbv_tactic. 2016-01-29 17:18:21 +00:00
Mikolas Janota 470b5c20fe Small modifs in ackermannization. 2016-01-29 16:43:18 +00:00
mikolas 2ce7dc68ad Adding a probe for estimating the number of Ackermann congruence lemas. 2016-01-29 15:37:10 +00:00
Nikolaj Bjorner 2115111dac update display method for datalog to use predicates, throttle use of extensionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-28 20:23:06 -08:00
Mikolas Janota 3e94a44540 Refactoring ackermannization functionality. 2016-01-28 18:18:42 +00:00
Nikolaj Bjorner 847607bda7 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-01-28 08:51:40 -08:00
Nikolaj Bjorner 30f8110488 fix bugs exposed by Chris' sequence unit tests. Improve diagnostics for reason-unknown in combined solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-28 08:51:04 -08:00
Nikolaj Bjorner b352d43e50 fix bugs exposed by Chris' sequence unit tests. Improve diagnostics for reason-unknown in combined solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-28 08:50:13 -08:00
Mikolas Janota 53c187671f Merge branch 'lackr' of github.com:MikolasJanota/z3 into lackr 2016-01-28 11:48:20 +00:00
mikolas acd01c7778 Adding a probe for qf_ufbv and applying it in the qfufbv_ackr_tactic. 2016-01-28 11:46:31 +00:00
Christoph M. Wintersteiger 20df9e1cd1 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-01-28 11:14:11 +00:00
Christoph M. Wintersteiger 5f0ea74e89 Made ufbv-rewriter tactic public 2016-01-28 11:14:01 +00:00
Nikolaj Bjorner 512aa0e8d3 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-01-27 14:47:24 -08:00
Nikolaj Bjorner 87228b6a9d add a little more verbiage to description of simplify. Issue #424
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-27 14:47:15 -08:00
Nuno Lopes ac2e8f8b57 Merge branch 'master' of https://github.com/Z3Prover/z3 2016-01-27 18:09:36 +00:00
Nuno Lopes ee2bae898a remove unused exceeded_memory_allocations class 2016-01-27 18:09:24 +00:00
Mikolas Janota 28a5c27e33 Merge branch 'lackr' of github.com:MikolasJanota/z3 into lackr 2016-01-27 16:27:35 +00:00
Mikolas Janota e318d460d7 dbg printing 2016-01-27 16:27:31 +00:00
mikolas 956d774299 Detecting OP_BSDIV0, etc. as uninterpreted functions in ackermannization. 2016-01-27 16:22:28 +00:00
Mikolas Janota 4b37140780 small fix 2016-01-26 18:11:33 +00:00
Nikolaj Bjorner 6529d43fb1 fix bugs exposed by unit tests from Pierre
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-26 09:50:14 -08:00
Mikolas Janota 0dc8dc4d8e Moving things around. Adding tactic just for ackermannization. 2016-01-26 17:02:30 +00:00
Mikolas Janota 470f8bca73 Merge remote-tracking branch 'upstream/master' into lackr 2016-01-26 16:51:57 +00:00
Mikolas Janota c63f9f4912 Moving things around. Adding tactic just for ackermannization. 2016-01-26 16:50:00 +00:00
Nikolaj Bjorner 8e378062e2 add get-some-value to seq API, expose quantifier tactics
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-26 08:05:44 -08:00
Nikolaj Bjorner 345f6e87bd seq bug fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-01-26 07:21:31 -08:00