Nikolaj Bjorner
64e0e785e7
#5953
2022-08-21 18:28:07 -07:00
Nikolaj Bjorner
09ab575d29
parens
2022-08-21 18:27:14 -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
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
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
Bruce Mitchener
5d0dea05aa
Remove empty leaf destructors. ( #6211 )
2022-07-30 10:07:03 +01:00
Nikolaj Bjorner
32614722ef
fix #6176
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-20 21:19:20 -07:00
Nuno Lopes
d9fcfdab34
fix debug build
2022-06-17 14:35:33 +01: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
5154295202
#5932
2022-03-31 23:18:03 -07:00
Nikolaj Bjorner
4b6679e8e0
#5753
2022-01-13 12:19:54 -08:00
Nikolaj Bjorner
56d3718cde
add simplification with qe-lite as an option #5767
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-12 03:41:21 -08:00
Nikolaj Bjorner
08294d62e5
separate dependencies for qe_lite
2022-01-12 03:26:22 -08:00
Nadav Rotem
9f9543ef69
Fix unused variable warnings. ( #5760 )
...
This commit fixes a few cases of unused variables in release builds.
The commit uses the (void)xxx; syntax which is used in other parts of
the code.
2022-01-08 18:18:30 -08:00
Nikolaj Bjorner
d0fb3cba15
#5641 - projection that skips interpreted functions can violate model evaluation.
2022-01-02 17:45:43 -08:00
Nikolaj Bjorner
fc77345bec
breaking change. Enforce append semantics everywhere for parameter updates #5744
...
Replace semantics doesn't work with assumptions made elsewhere in code.
The remedy is to apply append (override) semantics for parameter changes.
2021-12-30 19:11:14 -08:00
Nikolaj Bjorner
9f2b18cac5
add tactic name
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-07 13:37:57 -08:00
Henrich Lauko
96671cfc73
Add and fix a few general compiler warnings. ( #5628 )
...
* rewriter: fix unused variable warnings
* cmake: make missing non-virtual dtors error
* treewide: add missing virtual destructors
* cmake: add a few more checks
* api: add missing virtual destructor to user_propagator_base
* examples: compile cpp example with compiler warnings
* model: fix unused variable warnings
* rewriter: fix logical-op-parentheses warnings
* sat: fix unused variable warnings
* smt: fix unused variable warnings
2021-10-29 15:42:32 +02:00
Alexander Traud
1d45a33163
fix one typo and two misunderstandings for doxygen ( #5633 )
2021-10-29 15:35:05 +02:00
Nikolaj Bjorner
6f31d83633
fix #5541
2021-09-20 10:10:28 -07: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
cd82205b06
nit
2021-05-10 19:14:18 -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
1d12b72bbc
log classificaiton
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-02-11 14:43:05 -08:00
Nikolaj Bjorner
25f53c0467
deal with warnings reported in https://launchpadlibrarian.net/522361319/buildlog_ubuntu-groovy-s390x.z3_4.8.10-1ubuntu4ppa1_BUILDING.txt.gz
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-02-11 13:49:47 -08:00
Nikolaj Bjorner
a152bb1e80
remove template Context dependency in every trail object
2021-02-08 15:41:57 -08: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
fa4869e400
fix #4949 - and/or get rewritten depending on parameters for rewriter
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-20 01:08:54 -08:00
Nikolaj Bjorner
4ca6d6951f
use updated C++ features
2021-01-07 17:32:05 -08:00
Nikolaj Bjorner
0643e7c0fc
fix #4886
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-12-12 12:40:14 -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