3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-27 10:55:50 +00:00
Commit graph

2054 commits

Author SHA1 Message Date
Nikolaj Bjorner
437e83f6de fixmul negative case
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-23 08:20:32 -07:00
Nikolaj Bjorner
8128ae8109 generalize subsumption to non-univariate
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-22 10:46:49 -07:00
Jakob Rath
058c5771b9 univariate solver: add_bit 2022-08-22 15:09:11 +02:00
Jakob Rath
d9a63ce786 fix 2022-08-22 15:05:29 +02:00
Jakob Rath
9fcea37625 remove constructor 2022-08-22 15:00:35 +02:00
Jakob Rath
28ddd4ad56 Implement unilinear subsumption as clause simplification 2022-08-22 14:55:02 +02:00
Jakob Rath
c1e2ea80f5 make explicit that we compare the concrete values 2022-08-22 14:17:47 +02:00
Jakob Rath
3a759c1a28 move fi_record 2022-08-22 14:14:30 +02:00
Jakob Rath
26fcfc6ecd Add default constructor to fi_entry 2022-08-22 14:03:43 +02:00
Jakob Rath
3c093e03cf log 2022-08-22 12:46:47 +02:00
Jakob Rath
53f276d225 apply 2022-08-22 12:44:56 +02:00
Jakob Rath
bf1a7914cd Add clause simplification stub 2022-08-22 12:36:05 +02:00
Bruce Mitchener
6ba9ada1e2
Fix typos. (#6291) 2022-08-21 12:40:07 -07:00
Jakob Rath
3e99828c3c start make_asserting for non-unit coeff 2022-08-19 17:06:28 +02:00
Jakob Rath
ee208efdc5 fix 2022-08-19 16:18:13 +02:00
Jakob Rath
c3e7bd34d0 make_asserting for unit coefficients 2022-08-19 16:02:56 +02:00
Jakob Rath
9766ad00b1 Revert "remove overcomplicated search_iterator"
This reverts commit 309473edad.
2022-08-19 14:12:57 +02:00
Nikolaj Bjorner
540e36e6cb roll version number
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-18 15:47:08 -07:00
Nikolaj Bjorner
31ffe89480 normalize more pretty printing 2022-08-17 08:24:41 -07:00
Nikolaj Bjorner
cb272bd7a8 fix missing removal of x in solve_mod 2022-08-17 07:31:26 -07:00
Jakob Rath
309473edad remove overcomplicated search_iterator 2022-08-17 09:37:43 +02:00
Jakob Rath
201d841a90 lit_pp with extra information 2022-08-17 09:29:00 +02:00
Nikolaj Bjorner
b169292743 add parameter descriptions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-16 08:26:53 -07:00
Nikolaj Bjorner
1d87592b13 fixes to mod/div elimination
elimination of mod/div should be applied to all occurrences of x under mod/div at the same time. It affects performance and termination to perform elimination on each occurrence since substituting in two new variables for eliminated x doubles the number of variables under other occurrences.

Also generalize inequality resolution to use div.

The new features are still disabled.
2022-08-14 11:34:03 -07:00
Nikolaj Bjorner
f014e30d46 disable case1
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-13 08:53:19 -07:00
Nikolaj Bjorner
d80e2fb61d fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-13 08:49:07 -07:00
Nikolaj Bjorner
5669cf65bc bug fixes to mod/div quantifier elimination features 2022-08-13 06:18:13 -07: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
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
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
Jakob Rath
618b3945c1 log 2022-08-05 11:23:02 +02:00
Bruce Mitchener
1d9345c3de Fix typos. 2022-08-05 07:40:50 +03:00
Jakob Rath
bab8d817ef Remove decisions on lemmas 2022-08-04 14:24:20 +02:00
Jakob Rath
d5f20dcf0e No more boolean decisions 2022-08-04 14:12:12 +02:00
Jakob Rath
c67024d88b unused for now 2022-08-04 13:52:29 +02:00
Jakob Rath
a3e8124245 comments; move a section 2022-08-04 11:52:34 +02:00
Jakob Rath
4282cfa148 Remove unused variable 2022-08-04 08:55:04 +02:00
Jakob Rath
014fe4e3fd fallback stats 2022-08-04 08:51:24 +02:00
Jakob Rath
b9588af07a fix output 2022-08-03 10:01:54 +02:00
Jakob Rath
a76f977f85 Change univariate fallback solver to one-shot mode for now 2022-08-02 12:42:34 +02:00
Jakob Rath
e105a91d4a Merge branch 'master' into polysat 2022-08-02 11:31:01 +02:00
Jakob Rath
de6a0ab1a7 PDD operations 2022-08-01 18:37:11 +03:00
Jakob Rath
42233ab5c8 Additional BDD operations; BDD vectors and finite domain abstraction 2022-08-01 18:37:11 +03:00
Jakob Rath
9275d1e57a sparse_matrix iterators 2022-08-01 18:37:11 +03:00
Bruce Mitchener
a89be68050 Use false instead of 0. 2022-08-01 18:28:07 +03:00
Jakob Rath
220a63e8bd Merge branch 'master' into polysat 2022-08-01 11:27:49 +02:00
Bruce Mitchener
5d0dea05aa
Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00