Nikolaj Bjorner
64e0e785e7
#5953
2022-08-21 18:28:07 -07:00
Nikolaj Bjorner
c3d635cf77
handle build warning
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-18 12:50:30 -07:00
Nikolaj Bjorner
1a5503c87b
enable new code path for mod handling
2022-08-17 07:31:26 -07: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
583dae2e27
enable nested division
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-15 16:11:00 -07:00
Nikolaj Bjorner
138f0d269c
fix regression found by fuzzers fix #6271
2022-08-14 12:26:33 -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
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
Bruce Mitchener
5014b1a34d
Use = default
for virtual constructors.
2022-08-05 18:11:46 +03:00
Nikolaj Bjorner
51ed13f96a
update topological sort to use arrays instead of hash tables, expose Context over Z3Object for programmability
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-08 06:28:24 -07:00
Nikolaj Bjorner
d0fb3cba15
#5641 - projection that skips interpreted functions can violate model evaluation.
2022-01-02 17:45:43 -08:00
Nikolaj Bjorner
fea14245a0
#5454
2021-08-11 19:43:42 -07:00
Nikolaj Bjorner
a4cc9e7895
#5429 #5445
2021-08-01 12:49:36 -07:00
Nikolaj Bjorner
2f49094d49
change debug output
2021-07-26 19:36:16 -07:00
Nikolaj Bjorner
e5e7c510d5
#5422
2021-07-21 07:14:54 -07:00
Nikolaj Bjorner
2ccfb1937d
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-07-11 23:20:19 +02:00
Nikolaj Bjorner
cab1076514
#5336
2021-07-11 21:00:58 +02:00
Nikolaj Bjorner
45228bf8fb
#5323 heap use after free
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-06-20 09:25:19 -07:00
Nikolaj Bjorner
c6f0afa008
#5324
2021-06-08 12:29:16 -07:00
Nikolaj Bjorner
d450fd4227
#5215
2021-05-19 10:03:49 -07:00
Nikolaj Bjorner
55f8ad068f
fix #5262
2021-05-17 15:51:03 -07:00
Nikolaj Bjorner
4a6083836a
call it data instead of c_ptr for approaching C++11 std::vector convention.
2021-04-13 18:17:35 -07:00
Nikolaj Bjorner
8f577d3943
remove ast_manager get_sort method entirely
2021-02-02 13:57:01 -08:00
Nikolaj Bjorner
937b61fc88
fix build, refactor
2021-02-02 05:26:57 -08:00
Nikolaj Bjorner
3ae4c6e9de
refactor get_sort
2021-02-02 04:45:54 -08:00
Nikolaj Bjorner
4455f6caf8
move to get_sort as method, add opt_lns pass, disable xor simplification unless configured, fix perf bug in model converter update trail
2021-02-02 03:58:19 -08:00
Nikolaj Bjorner
4ca6d6951f
use updated C++ features
2021-01-07 17:32:05 -08:00
Nikolaj Bjorner
2e684d58d2
redo purification
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-29 11:06:31 -07:00
Nikolaj Bjorner
e2fbd05fe7
adding argument restriction to mbqi, fix tracking of m_src/m_dst for expr_safe_replace and avoid resetting the cache.
2020-10-27 11:41:52 -07:00
Nikolaj Bjorner
1ee2ba2a9b
mbqi
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-26 11:06:40 -07:00
Nikolaj Bjorner
c9900720f8
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-22 11:31:47 -07:00
Nikolaj Bjorner
72d407a49f
mbp ( #4741 )
...
* adding dt-solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* dt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move mbp to self-contained module
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* files
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Create CMakeLists.txt
* dt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* rename to bool_var2expr to indicate type class
* mbp
* na
* add projection
* na
* na
* na
* na
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* deps
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* testing arith/q
* na
* newline for model printing
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-21 15:48:40 -07:00
Nikolaj Bjorner
2f756da294
adding dt-solver ( #4739 )
...
* adding dt-solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* dt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move mbp to self-contained module
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* files
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Create CMakeLists.txt
* dt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* rename to bool_var2expr to indicate type class
* mbp
* na
2020-10-18 15:28:21 -07:00