3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00
Commit graph

18873 commits

Author SHA1 Message Date
Nuno Lopes
5899fe3cea
Add rewrite for array selects of chain of stores of a same value (#6526)
* Add rewrite for array selects of chain of stores of a same value

Example:
```smt
(declare-fun mem () (Array (_ BitVec 4) (_ BitVec 4)))
(declare-const x (_ BitVec 4))
(declare-const y (_ BitVec 4))
; simplifies to #x1
(simplify (select (store (store (store mem #x1 #x1) y #x1) x #x1) #x1))
```

* Update array_rewriter.cpp

* Update array_rewriter.cpp
2023-01-08 19:09:01 -08:00
Nikolaj Bjorner
1ddef117a2 several fixes to proof logging in legacy solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-08 16:11:31 -08:00
Nikolaj Bjorner
61b90e64b2 disable new simplifcation for multiplier until really understood
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-08 14:17:49 -08:00
Nikolaj Bjorner
fcea32344e add missing tactic descriptions, add rewrite for tamagochi
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-08 13:32:26 -08:00
Nikolaj Bjorner
95cb06d8cf add quasi macro detection 2023-01-06 19:53:55 -08:00
Nikolaj Bjorner
991acb0d72 add diagnostics for assertion violations
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-06 13:29:24 -08:00
Nikolaj Bjorner
25112e47b4 bugfix to flatten-clases simplifier
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-05 20:59:28 -08:00
Nikolaj Bjorner
c07b6ab38f more tactic descriptions 2023-01-05 20:23:01 -08:00
Clemens Eisenhofer
b1239d5276 Missing file 2023-01-05 18:05:08 +01:00
Clemens Eisenhofer
0c1c9c64eb Merge branch 'polysat' of https://github.com/Z3Prover/z3 into polysat 2023-01-05 18:03:43 +01:00
Clemens Eisenhofer
4a6053b289 Missing univariate for pseudo-inverse 2023-01-05 18:02:21 +01:00
Jakob Rath
1002538565 insert_eval? 2023-01-05 17:41:08 +01:00
Jakob Rath
aeb6138c25 No result if there is no other interval 2023-01-05 17:21:25 +01:00
Jakob Rath
a406e01fb8 e0 instead of first? 2023-01-05 16:44:45 +01:00
Jakob Rath
6f18335604 need y0 value 2023-01-05 16:43:23 +01:00
Jakob Rath
ffa12eb37c flip args to match description 2023-01-05 16:43:01 +01:00
Jakob Rath
55a50ea461 ule rewrites 2023-01-05 14:41:21 +01:00
Nikolaj Bjorner
0d8a472aac pass sign into literal definition for pbge 2023-01-04 16:55:44 -08:00
Nikolaj Bjorner
81ce57b5a8 #6429 2023-01-04 15:38:13 -08:00
Nikolaj Bjorner
e0099150ca #6429 2023-01-04 15:28:57 -08:00
Nikolaj Bjorner
380c701cbe restore debug clang/gcc build 2023-01-04 15:01:40 -08:00
Nikolaj Bjorner
21362c0b98 make case-def and recfun-num-rounds re-parsable for logging 2023-01-04 15:00:25 -08:00
Nikolaj Bjorner
ef10119005 #6429 fixes 2023-01-04 13:05:45 -08:00
Nikolaj Bjorner
aa080a6b19 update ignore-int handling #6429
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-04 12:22:38 -08:00
Nikolaj Bjorner
8d0d6d8f04 Merge branch 'master' of https://github.com/z3prover/z3 2023-01-04 11:56:38 -08:00
Nikolaj Bjorner
6f95c77023 fix bugs in flatten_clauses simplifier, switch proof/fml
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-04 11:56:28 -08:00
Jakob Rath
0daf444cec Actually revert boolean decisions 2023-01-04 17:20:34 +01:00
Nikolaj Bjorner
db1be0f247 unit test for bench 13 scenario
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-03 12:23:14 -08:00
Clemens Eisenhofer
075b548089 Merge branch 'polysat' of https://github.com/Z3Prover/z3 into polysat 2023-01-03 17:48:21 +01:00
Clemens Eisenhofer
79e7380ffc Pseudo-inverse op_constraint 2023-01-03 17:47:54 +01:00
Jakob Rath
283e60a5cb compile 2023-01-03 14:55:50 +01:00
Nuno Lopes
e448191212 array rewriter: expand select of store with const array into an ite
This:
(simplify (select (store ((as const (Array (_ BitVec 4) (_ BitVec 4))) #x0) x #x1) y))
=>
(ite (= x y) #x1 #x0)
2023-01-03 11:08:57 +00:00
Nuno Lopes
e508ef17f6 fix Alive bug #875: bit blaster not respecting soft memory limit 2023-01-03 10:39:28 +00:00
Nuno Lopes
a2cc504d4a remove a couple more std::endl 2023-01-03 09:49:58 +00:00
Nuno Lopes
d30cb55bae don't flush stream when printing param vals 2023-01-03 09:35:17 +00:00
Nikolaj Bjorner
84a5ec221f diagnostics
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-02 18:11:00 -08:00
Nikolaj Bjorner
824c10711c testing inference based on complementary bounds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-02 17:30:08 -08:00
Nikolaj Bjorner
d4490738bc Merge branch 'master' of https://github.com/z3prover/z3 2023-01-02 16:49:43 -08:00
Nikolaj Bjorner
ea0d09b6c8 add pointer to build parameters to README #6518
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-02 16:49:31 -08:00
Nikolaj Bjorner
56bda59de9 bugfix in parity code, add try_infer_parity_equality per status notes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-02 15:01:05 -08:00
Clemens Eisenhofer
0301686856 Variant of variable elimination 2023-01-02 20:05:13 +01:00
Walden Yan
dbf93c5fbd
Fixing array select for lambda expressions in Python API (#6516)
* fix: making array select work for lambda expressions

* more elegant solution
2023-01-01 15:27:54 -08:00
Nikolaj Bjorner
f6d411d54b experimental feature to access congruence closure of SimpleSolver
This update includes an experimental feature to access a congruence closure data-structure after search.
It comes with several caveats as pre-processing is free to eliminate terms. It is therefore necessary to use a solver that does not eliminate the terms you want to track for congruence of. This is partially addressed by using SimpleSolver or incremental mode solving.

```python
from z3 import *
s = SimpleSolver()
x, y, z = Ints('x y z')
s.add(x == y)
s.add(y == z)
s.check()
print(s.root(x), s.root(y), s.root(z))
print(s.next(x), s.next(y), s.next(z))
```
2022-12-30 21:41:27 -08:00
Nikolaj Bjorner
c0f1f33898 dampen second setup of theory_bv 2022-12-30 18:47:32 -08:00
Nikolaj Bjorner
5f6f2fc758 rename bit_blaster class to bit_blaster_simplifier to avoid name clash 2022-12-30 18:39:02 -08:00
Nikolaj Bjorner
0d05e0649b initialization order
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-30 18:16:24 -08:00
Nikolaj Bjorner
2c3ecceb03 fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-30 15:47:24 -08:00
nikswamy
8002a51b82
tiny fix to qprofdiff (#6497) 2022-12-30 15:25:01 -08:00
Nikolaj Bjorner
293627c889 fix #6513
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-30 09:55:33 -08:00
Nikolaj Bjorner
07ab4d38b6 fix #6513
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-30 09:55:10 -08:00