Nikolaj Bjorner
a143ed3bff
taking a look at mbp_qel for arrays
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-02-18 16:28:49 -08:00
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