3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-07 07:45:46 +00:00
Commit graph

41 commits

Author SHA1 Message Date
Nikolaj Bjorner
b9455c3692 #6999 deal with implicit assumptions, more robust pattern matching
The code is making some assumptions that arrays are 1-dimensional. This is not generally true.
Introducing pattern matching to ensure the assumption is met.
Avoid get_arg(..) especially when there is an approach based on pattern matching recognizers.
2023-11-17 10:06:20 -08:00
Nikolaj Bjorner
d0d434e4f1 fix #6807 2023-07-13 10:23:28 -07:00
Nikolaj Bjorner
efbe0a6554 wip - updated version of elim_uncstr_tactic
- remove reduce_invertible. It is subsumed by reduce_uncstr(2)
- introduce a simplifier for reduce_unconstrained. It uses reference counting to deal with inefficiency bug of legacy reduce_uncstr. It decomposes theory plugins into expr_inverter.

reduce_invertible is a tactic used in most built-in scenarios. It is useful for removing subterms that can be eliminated using "cheap" quantifier elimination. Specifically variables that occur only once can be removed in many cases by computing an expression that represents the effect computing a value for the eliminated occurrence.

The theory plugins for variable elimination are very partial and should be augmented by extensions, esp. for the case of bit-vectors where the invertibility conditions are thoroughly documented by Niemetz and Preiner.
2022-11-12 17:56:45 -08:00
Nikolaj Bjorner
e1a00f4917 remove unused experimental feature - diff 2022-10-24 16:13:24 -07:00
Nikolaj Bjorner
9eb4237dfe fix #6292
this patches a case where macro-finder is used with arrays. It doesn't work so macro quantifiers have to be re-instated to ensure correctness
2022-08-21 16:32:01 -07:00
Bruce Mitchener
5d0dea05aa
Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
Nikolaj Bjorner
f77037e9a5 expand select/store when I/J are values #6053
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-25 20:23:43 -04:00
Nikolaj Bjorner
c29cfa81ae prep for max/min diff 2022-05-04 02:08:11 -07:00
Nikolaj Bjorner
87d2a3b4e5 map/mapi/foldl/foldli
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-04 01:10:18 -07:00
Nikolaj Bjorner
0dd5a5e576 #5777 2022-01-16 17:46:08 -08:00
Nikolaj Bjorner
8245935d41 #5641 add handlers for basic set operations to euf=true 2022-01-01 20:33:17 -08: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
9a975a4523 array solver fixes 2021-03-13 06:19:32 -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
cfa7c733db
fixing #4670 (#4682)
* fixing #4670

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* init

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* arrays

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* arrays

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* arrays

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* na

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-10 04:35:11 -07:00
Nikolaj Bjorner
d0e20e44ff booyah
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-04 15:56:30 -07:00
Nikolaj Bjorner
c22a17f430 smtfd
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-09-08 18:14:28 +02:00
Nikolaj Bjorner
000e485794 add array selects to basic ackerman reduction improves performance significantly for #2525 as it now uses the SAT solver core instead of SMT core
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-09-01 12:17:19 -07:00
Nikolaj Bjorner
9fa9aa09ff fix #2468, adding assignment phase heuristic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-08-10 15:25:05 -07:00
Nikolaj Bjorner
48fc3d752e add clause proof module, small improvements to bapa
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-05-30 15:49:19 -07:00
Nikolaj Bjorner
fa88bdb075 fix #2251 thanks to Clark
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-04-27 09:44:18 -07:00
Nikolaj Bjorner
7e2afca2c6 add card operator to bapa
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-04-20 13:24:07 -07:00
Nikolaj Bjorner
1123b47fb7 bapa
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-04-13 16:15:38 -07:00
Nikolaj Bjorner
7b4c919fcf stubs for stronger array equality rewriting
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-03 14:11:05 -08:00
Nikolaj Bjorner
6c331279ae fix array regressions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-03 13:22:12 -08:00
Nikolaj Bjorner
3ee5c0e7d9 fix #2164 address some of simplification shortcommings from #2151 #2152 #2153
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-03 11:33:44 -08:00
Nikolaj Bjorner
d2d42f9810 fix #2127 fix #2128
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-02-09 08:23:22 -08:00
Bruce Mitchener
76eb7b9ede Use nullptr. 2018-02-12 14:05:55 +07:00
Bruce Mitchener
b7d1753843 Use override rather than virtual. 2018-02-09 21:19:27 +07:00
Nikolaj Bjorner
d2e27f6f1f remove redundant and wrong range type, in extension to changes made for #1223
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-10-19 11:25:44 -07:00
Nikolaj Bjorner
c9f540b066 additional array functions exposed over API, ping #1223
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-10-19 11:08:48 -07:00
Nikolaj Bjorner
10f734357e build fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-09-03 15:32:57 -07:00
Nikolaj Bjorner
359ee818a5 purge iterators
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-08-20 15:35:16 -07:00
Nikolaj Bjorner
b19f94ae5b make include paths uniformly use path relative to src. #534
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-07-31 13:24:11 -07:00
Nikolaj Bjorner
7c6540e18f recursive function definitions; combine model-building functionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-03-03 07:59:03 -08:00
Christoph M. Wintersteiger
643dbb874b Added tactic that translates BV arrays into BV UFs. 2015-11-12 15:27:33 +00:00
Nikolaj Bjorner
4685a5f8ba add array-ext to externally exposed functions to enable interpolants with arrays to be usable in feedback loops with Z3. Addresses one issue raised in #292
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-11-07 16:42:13 -08:00
Nikolaj Bjorner
4bc044c982 update header guards to be C++ style. Fixes issue #9
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-07-08 23:18:40 -07:00
Leonardo de Moura
3ddb1a85f1 Add basic_recognizers and array_recognizers
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2012-12-18 15:00:16 -08:00
Nikolaj Bjorner
93ad91d2f9 preparing handling of arrays/quantifiers, fix cover-related bugs reported by Arie
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2012-11-25 12:08:49 -08:00
Leonardo de Moura
8a6997960a Reorganizing code. Added script for generating VS project files
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2012-10-20 15:16:37 -07:00
Renamed from lib/array_decl_plugin.h (Browse further)