Nikolaj Bjorner
5669cf65bc
bug fixes to mod/div quantifier elimination features
2022-08-13 06:18:13 -07:00
Nikolaj Bjorner
88b6c4a30d
pdate decl collection to include functions under arrays
...
Signedoff-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-12 13:45:16 -07:00
Bruce Mitchener
72f4ee9230
api: Correctly map OP_BSREM0 to Z3_BSREM0.
2022-08-12 14:40:16 -04:00
Nikolaj Bjorner
550d6914b1
updates to div/mod handling in quantifier projection
...
note: the new code remains disabled at this point.
2022-08-12 14:39:33 -04:00
Nikolaj Bjorner
d272becade
fixes for division
2022-08-12 11:54:26 -04:00
Nikolaj Bjorner
f989521a8c
add initial skeleton for xor-solver
2022-08-12 11:54:10 -04:00
Nikolaj Bjorner
b6d71fccd8
fix #6265
2022-08-12 10:22:22 -04:00
Nikolaj Bjorner
03385bf78d
improve quantifier elimination for arithmetic
...
This update changes the handling of mod and adds support for nested div terms.
Simple use cases that are handled using small results are given below.
```
(declare-const x Int)
(declare-const y Int)
(declare-const z Int)
(assert (exists ((x Int)) (and (<= y (* 10 x)) (<= (* 10 x) z))))
(apply qe2)
(reset)
(declare-const y Int)
(assert (exists ((x Int)) (and (> x 0) (= (div x 41) y))))
(apply qe2)
(reset)
(declare-const y Int)
(assert (exists ((x Int)) (= (mod x 41) y)))
(apply qe2)
(reset)
```
The main idea is to introduce definition rows for mod/div terms.
Elimination of variables under mod/div is defined by rewriting the variable to multiples of the mod/divisior and remainder.
The functionality is disabled in this push.
2022-08-12 10:20:43 -04:00
Nikolaj Bjorner
786280c646
print skolem declarations only for lemma tracing
2022-08-11 11:34:54 +03:00
Nikolaj Bjorner
791ca02ab1
formula simplification example
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-11 09:33:36 +03:00
Nikolaj Bjorner
b55ad5f20e
fix #6267
2022-08-11 09:31:54 +03:00
Nikolaj Bjorner
49064252ac
fix issues for user-propagator from new core
2022-08-09 14:56:27 +03:00
Nikolaj Bjorner
f27485dae7
avoid push/pop if diseq/eq are not defined
2022-08-09 11:33:29 +03:00
Nikolaj Bjorner
78eaefe5a8
move solver-params to params
2022-08-08 11:34:41 +03:00
Nikolaj Bjorner
77a313ff76
redo #6242
...
revert to byte based high watermark
add mb based high watermark
2022-08-08 11:26:18 +03:00
Nikolaj Bjorner
63f48f8fd4
add options for logging learned lemmas and theory axioms
...
- add solver.axioms2files
- prints negated theory axioms to files. Each file should be unsat
- add solver.lemmas2console
- prints lemmas to the console.
- remove option smt.arith.dump_lemmas. It is replaced by solver.axioms2files
2022-08-08 11:18:56 +03:00
Nikolaj Bjorner
410eed9bd5
#6116
2022-08-07 11:09:43 +03:00
Nikolaj Bjorner
8e077d8ef9
#6116
2022-08-07 10:25:04 +03:00
Nikolaj Bjorner
539d44464f
#6196
...
map can be simplified
2022-08-07 10:17:24 +03:00
Nikolaj Bjorner
f34317d604
#6196
2022-08-07 09:44:10 +03:00
Nikolaj Bjorner
a4ea281602
fix #6260
2022-08-06 08:21:52 +03:00
Bruce Mitchener
5014b1a34d
Use = default
for virtual constructors.
2022-08-05 18:11:46 +03:00
Arie Gurfinkel
aa0719abae
model_based_opt: fix enabling complete resolution
...
a bug prevented an optimization to be enabled
2022-08-05 18:11:23 +03:00
Nikolaj Bjorner
80c516bb50
squash stores
2022-08-05 13:57:35 +03:00
Bruce Mitchener
6835522a7f
z3++.h: No longer include unused sstream.
...
This makes some code using the C++ API have to include `<sstream>`
if they used the functionality but didn't include it themselves.
2022-08-05 09:41:49 +03:00
Nikolaj Bjorner
e48474ec0e
Merge branch 'master' of https://github.com/z3prover/z3
2022-08-05 09:20:00 +03:00
Nikolaj Bjorner
c51af91256
#6257
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-05 09:19:49 +03:00
Arie Gurfinkel
a9b7348b4b
(cmake): fix visibility on shell z3 binary
...
Commit #b361226 changed symbol visibility from a global to a local option.
This creates inconsistency for shell that is compiled as an executable rather
than as z3 component.
This commit adds same local options to shell target in cmake.
Prior to the fix, clang on OSX complains with lots of warnings about symbol visibility
being different in different translation units that are linked together
2022-08-05 09:00:40 +03:00
Nikolaj Bjorner
78a0f57398
for #6257
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-05 08:09:39 +03:00
Bruce Mitchener
7eb1e6dd23
userPropagator: Compile as C++20.
...
Using std::unordered_map::contains requires C++20.
2022-08-05 07:41:14 +03:00
Bruce Mitchener
1d9345c3de
Fix typos.
2022-08-05 07:40:50 +03:00
Bruce Mitchener
08165f5367
No need to return a const bool.
2022-08-05 07:40:19 +03:00
Nikolaj Bjorner
9da6895276
add option to select with folding
2022-08-04 16:59:26 +03:00
Nikolaj Bjorner
a8ff976bcc
max maximal unfolding configurable
2022-08-04 16:59:26 +03:00
Bruce Mitchener
a3161bdc15
update_api.py: Remove usage of MKException.
...
This wasn't working as it was being accessed from a function object
rather than the module.
Instead, let's just print the error and exit.
2022-08-04 07:54:42 +03:00
Bruce Mitchener
8a3556e5ba
cmake: Remove dep on mk_util.py for update_api.py calls.
...
update_api.py doesn't depend on mk_util.py any longer, so these
dependencies can go away.
2022-08-04 07:54:26 +03:00
Bruce Mitchener
ad4c786ea4
mk_unix_dist.py: Fix --nopython
...
Writing to the global PYTHON_ENABLED requires that it be flagged
as a global.
2022-08-04 07:54:10 +03:00
Bruce Mitchener
dc75031a36
Remove all per-OS defines apart from _WINDOWS.
...
These are all unused and shouldn't be needed. Mostly we need
something for differentiating between POSIX and non-POSIX
(until we can reduce some of those differences as well).
We shouldn't need to modify the build system to build on a new
OS if it is basically a Unix and is supported by cmake.
2022-08-03 19:03:04 +03:00
Bruce Mitchener
85b96dc877
cmake: Remove telling the Intel compiler to link OpenMP.
...
This also removes a duplicated branch since the Intel compiler
is already handled at the same time as GCC and Clang, so it
doesn't need its own block as well.
2022-08-03 19:02:12 +03:00
Saloed
d908ebec4c
fix memory_high_watermark parameter according to documentation
2022-08-03 18:50:54 +03:00
Bruce Mitchener
d8c99480c6
test/lp: Replace if linux with if not windows.
...
This is stuff that works on posix, so we can flip the check.
2022-08-03 08:22:54 +03:00
Bruce Mitchener
55b70b4c7e
Remove contrib/cmake.
...
This mainly contained a bootstrap script that did nothing except
say that it would be deleted soon. It has been 5 years, so it
should be safe to go away now.
2022-08-03 08:22:13 +03:00
Bruce Mitchener
112dba559f
Remove unused private member from smaller_pattern.
2022-08-03 08:21:32 +03:00
Bruce Mitchener
3ab96281eb
Remove Travis CI configs.
2022-08-03 08:20:57 +03:00
Nikolaj Bjorner
774ce3d7ab
create special case for osx arm
...
shortcut when store/select are distinct
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-03 07:56:02 +03:00
Bruce Mitchener
42f5047463
cmake: Cleanup remnants of workaround for USES_TERMINAL.
...
In older versions, this was dependent upon the version of cmake,
but when it was updated for newer cmake, these remnants were
left.
2022-08-02 17:39:10 +03:00
Bruce Mitchener
8313282cda
Use char version of find_last_of when possible.
2022-08-02 17:38:11 +03:00
Bruce Mitchener
b3612264a9
Use cmake properties for symbol visibility and PIC.
2022-08-02 09:32:03 +03:00
Bruce Mitchener
886c3abec1
Remove remnants of _MP_MSBIGNUM checks.
2022-08-02 09:28:57 +03:00
dependabot[bot]
053c3ec9e8
Bump docker/build-push-action from 3.0.0 to 3.1.0
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v3.0.0...v3.1.0 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 09:27:27 +03:00