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