3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00
Commit graph

5989 commits

Author SHA1 Message Date
Nikolaj Bjorner
bcf0ee7709 n/a
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-29 18:53:58 -07:00
Nikolaj Bjorner
7580644d15 n/a
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-29 08:11:27 -07:00
Nikolaj Bjorner
085c18a92a add pb to local search
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-28 20:29:13 -07:00
Nikolaj Bjorner
5c83dfee06 n/a
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-28 18:04:08 -07:00
Nikolaj Bjorner
e176c4ba9a rename to ba_solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-28 17:54:16 -07:00
Nikolaj Bjorner
6fad478a18 reorg
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-28 17:46:29 -07:00
Nikolaj Bjorner
a28a8304b7 Dev (#56)
* introduce int_solver.h

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* add int_solver class

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* track which var is an integer

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* add queries for integrality of vars

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* resurrect lp_tst in its own director lp

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* add file

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* add_constraint has got a body

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* fix add_constraint and substitute_terms_in_linear_expression

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* after merge with Z3Prover

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* adding stub check_int_feasibility()

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* Dev (#50)

* initial skeletons for nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* initial skeletons for nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* small fix in lar_solver.cpp

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* adding some content to the new check_int_feasibility()

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* Dev (#51)

* initial skeletons for nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* initial skeletons for nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding more nlsat

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* nlsat integration

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding constraints

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add missing initialization

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* test

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* Dev (#53)

* change in a comment

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* Disabled debug output

* removing FOCI2 interface from interp

* remove foci reference from cmakelist.txt

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* initial skeletons for nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* initial skeletons for nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding more nlsat

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* nlsat integration

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding constraints

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add missing initialization

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding nra

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* debugging nra

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* updates to nra_solver integration to call it directly from theory_lra instead of over lar_solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* n/a

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* integrate nlsat

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* tidy

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* preserve is_int flag

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* remove a debug printout

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* Dev (#54)

* change in a comment

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* Disabled debug output

* removing FOCI2 interface from interp

* remove foci reference from cmakelist.txt

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* initial skeletons for nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* initial skeletons for nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding more nlsat

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* nlsat integration

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding constraints

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add missing initialization

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding nra solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* adding nra

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* debugging nra

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* updates to nra_solver integration to call it directly from theory_lra instead of over lar_solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* n/a

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* integrate nlsat

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* tidy

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* use integer test from lra solver, updated it to work on term variables

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix equality check in assume-eq

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix model_is_int_feasible

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* untested gcd_test()

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* call fill_explanation_from_fixed_columns()

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* add the call to pivot_fixed_vars_from_basis() to int_solver.cpp::check()

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* port more of theory_arith_int.h

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* use statistics of lar_solver by theory_lra.cpp

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* port more code to int_solver.cpp

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* add an assert

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* more int porting

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* fix a bug in pivot_fixed_vars_from_basis

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* small change

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* implement find_inf_int_base_column()

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* catch unregistered vars in add_var_bound

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* add a file

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* compile for vs2012

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* fix asserts in add_var_bound

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* fix the lp_solver init when workig on an mps file

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* towards int_solver::check()

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* change in int_solver::check() signature

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

* add handlers for lia moves

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* spacing

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-28 13:12:12 -07:00
Christoph M. Wintersteiger
1a59123819 Fixed x86/x64 issues in theory_str 2017-06-28 12:49:10 +01:00
Nikolaj Bjorner
6f4c873b29 debugging
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-27 13:18:20 -07:00
Lev Nachmanson
4d0fda81df fix run of lp_solver for mps files
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2017-06-27 11:45:29 -07:00
Nikolaj Bjorner
94416bea52 fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-27 09:07:55 -07:00
Lev Nachmanson
dfe15adf7e fix maybe non initialized warning
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
2017-06-26 16:32:44 -07:00
Nikolaj Bjorner
244cbc2638 ensure that auxiliary PB booleans are recognized during rewriting. Fixes segementation fault #1113, but does not address performance issues with quantifiers and optimization combinations
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-26 10:04:50 -07:00
Nikolaj Bjorner
7db1847f51 fix bitrot in maxsat example reference management #1116
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-26 09:36:53 -07:00
Nikolaj Bjorner
66f0de6785 added in-processing features to card/pb
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-25 16:26:47 -07:00
Dan Liew
42e0f8f9ce Unbreak Z3 C++ API exception support for GCC < 5.0. This was broken
by 0b1d564509 .

Older versions of GCC do not define `__cpp_exceptions` which caused
exceptions to not be raised leading to unexpected failures. To fix
this also check the `__EXCEPTIONS` macro which is used by older GCC
versions.

Also `#undef` the `Z3_THROW` macro at the end of the header file
because this is an implementation detail that we don't want to leak
to clients.
2017-06-25 23:03:39 +01:00
Christoph M. Wintersteiger
2fceac04d4 Merge branch 'master' of https://github.com/Z3Prover/z3 2017-06-25 22:19:54 +01:00
Christoph M. Wintersteiger
c395516058 Adjusted rlimit increments in theory_arith to avoid non-termination issues 2017-06-25 22:19:42 +01:00
Christoph M. Wintersteiger
ffbf19d944 Merge branch 'master' of https://github.com/wintersteiger/z3 2017-06-25 20:46:14 +01:00
Christoph M. Wintersteiger
ad7aff2334 Added rlimit increments in theory_arith to avoid non-termination issues via F*. 2017-06-25 20:45:56 +01:00
Nikolaj Bjorner
c3d29e75ef adding in-processing
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-24 18:27:32 -07:00
Nikolaj Bjorner
1631a68981 make the option soup dependencies more user-friendly, #1109
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-23 16:57:50 -07:00
Nikolaj Bjorner
1681419052 adding change notes to release notes for a future release
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-23 16:50:33 -07:00
Nikolaj Bjorner
9d1852343c add separate get-objectives command #1107
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-23 16:34:38 -07:00
Nikolaj Bjorner
fb84ba8c34 updates and fixes to copying and cardinalities
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-23 14:00:33 -07:00
Nikolaj Bjorner
e3ec7e7d05 Merge branch 'master' of https://github.com/z3prover/z3 2017-06-23 11:34:18 -07:00
Nikolaj Bjorner
cd4bb5beaf another fix for #1101
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-23 11:34:10 -07:00
Arie Gurfinkel
c7fbab0c11 propagate rule names during xform 2017-06-23 09:38:04 -04:00
Arie Gurfinkel
0dead22dca fix missing initialization 2017-06-23 09:38:04 -04:00
Arie Gurfinkel
9874db7458 [CMake] typos in cmake 2017-06-23 09:37:49 -04:00
Nikolaj Bjorner
6caef86738 translate
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-22 21:05:54 -07:00
Nikolaj Bjorner
5752830f71 bug fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-22 15:01:12 -07:00
Nikolaj Bjorner
7386f2e045 #1101
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-22 14:18:53 -07:00
Lev Nachmanson
2a5f1d6e93 add a template instantination
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2017-06-22 10:32:35 -07:00
Nikolaj Bjorner
9ebe980b44 cleaning up lookahead
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-22 07:42:44 -07:00
Nikolaj Bjorner
5e2f7f7177 fixes top lookahead simplification
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-21 20:22:31 -07:00
Nikolaj Bjorner
77ffa9f32f Merge pull request #1095 from agurfinkel/mev_fix
model_evaluator fix
2017-06-21 20:17:44 -07:00
Arie Gurfinkel
972ab6298c (mev) only reduce function interpretation 2017-06-21 22:59:52 -04:00
Nikolaj Bjorner
2d49119d2a add note to Context documentation about scoped uses of contexts #1077 2017-06-21 18:56:16 -07:00
Arie Gurfinkel
493a3a6312 (mev) call expand_value only at the end
There is no need to expand array values throughout evaluation.
They are expanded during array equality checking (if requested), and
can be expanded at the very end of evaluation (if needed).
2017-06-21 20:58:10 -04:00
Arie Gurfinkel
d5ca902bf6 (mev) bug fix in expanding array equalities
The stores were processed in the wrong order so that

  (store (store a x y) x u)

was reduced to

  (store a x y)

instead of

  (store a x u)
2017-06-21 20:58:10 -04:00
Arie Gurfinkel
e62e563e2d (mev) renamed variable to clarify that it is unused 2017-06-21 20:58:10 -04:00
Nikolaj Bjorner
1fee5fd94e Merge pull request #1094 from delcypher/cmake_fix_generated_cpp_deps
[WIP][CMake] Fix broken regeneration of some .cpp files
2017-06-21 17:47:41 -07:00
Dan Liew
d00892c9a6 [CMake] Fix dependencies for generating mem_initializer.cpp.
Previously CMake was not aware of which headers files the generation
of `mem_initializer.cpp` depended on. Consequently this could result
in broken incremental builds if

* Existing headers that declare memory initializers/finalizers change.
* New headers are added that declare memory initializers/finalizer.

Now the `z3_add_component()` CMake function has been modifed so that
it now takes an optional `MEMORY_INIT_FINALIZER_HEADERS` argument
which allows the headers that declare memory initializers/finalizers
to be explicitly listed.

With this information CMake will now regenerate `mem_initializer.cpp`
correctly.

This required the `mk_mem_initializer_cpp_internal()` function to be
changed to take a list of header files rather than a list of component
source directories. The two consumers (CMake and Python/Makefile build
systems) of this function have been modified to work with this change.

This partially fixes #1030.
2017-06-21 23:56:53 +01:00
Dan Liew
6f48a145aa [CMake] Fix dependencies for generating gparams_register_modules.cpp.
Previously CMake was not aware of which headers files the generation
of `gparams_register_modules.cpp` depended on. Consequently this could result
in broken incremental builds if

* Existing headers that declared module description/parameters change.
* New headers are added that declare module description/parameters.
* `.pyg` files that generate header files that declare module
  description/parameters change

Now the `z3_add_component()` CMake function has been modifed so that

* All header files that are generated from `.pyg` files are added as
dependencies and are scanned from module description/parameter
declarations. This implicit dependency of `gparams_register_modules.cpp`
depending on other generated header files seems unnecessary complex. We
should revisit this design decision once the Python/Makefile build
system is deprecated.

* The function now takes an optional `EXTRA_REGISTER_MODULE_HEADERS`
argument which allows the headers that declare module
description/paramters to be explicitly listed.

With this information CMake will now regenerate `gparams_register_modules.cpp`
correctly.

This required the `mk_gparams_register_modules_internal()` function to be
changed to take a list of header files rather than a list of component
source directories. The two consumers (CMake and Python/Makefile build
systems) of this function have been modified to work with this change.

This partially fixes #1030.
2017-06-21 23:56:46 +01:00
Dan Liew
229fd3dc3e [CMake] Fix dependencies for generating install_tactic.cpp.
Previously CMake was not aware of which headers files the generation
of `install_tactic.cpp` depended on. Consequently this could result
in broken incremental builds if

* Existing headers that declared tactics/probes changed.
* New tactics/probes were added to new header files.

Now the `z3_add_component()` CMake function has been modifed to take an
optional `TACTIC_HEADERS` argument which allows the headers that declare
tactics/probes to be explicitly listed. The necessary component
declarations have been modified to declare their tactic/probe header
files.

With this information CMake will now regenerate `install_tactic.cpp`
correctly.

This required the `mk_install_tactic_cpp_internal()` function to be
changed to take a list of header files rather than a list of component
source directories. The two consumers (CMake and Python/Makefile build
systems) of this function have been modified to work with this change.

This partially fixes #1030.
2017-06-21 23:03:48 +01:00
Nikolaj Bjorner
5f93b9a081 add N-ary clause reward heuristic based on discussions with Heule
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-21 10:30:30 -07:00
Nikolaj Bjorner
b516f22549 refine test for non-fd to be more inclusive while addressing #1092
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-21 08:01:03 -07:00
Nikolaj Bjorner
a3ee785923 disable dt2bv for quantified variables as enum2bv does not handle them. #1092
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-21 07:29:21 -07:00
Arie Gurfinkel
af28057980 preserve dl rule names during xforms 2017-06-20 22:23:55 -04:00