Nikolaj Bjorner
ac068888e7
add trichotomy for sequence comparison. #6586
2023-02-16 08:59:55 -08:00
Nikolaj Bjorner
c2fe76569f
remove dependency on bool-rewriter in hoist rewriter
...
deal with regression reported in
cac5052685 (commitcomment-100606067)
and unit tests doc.cpp
2023-02-14 17:48:02 -08:00
Nikolaj Bjorner
102eee77dc
patch regressions
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-12 20:12:01 -08:00
Nikolaj Bjorner
cac5052685
fixes related to #6577
...
- enforce elim-and in bool-rewriter when invoking hoisting.
- make cnf tactic more resilient to non-normalized input.
- enable eliminate predicates on ground formulas
2023-02-12 13:43:44 -08:00
Nikolaj Bjorner
91d6082f2f
Move modular interval to interval directory
2023-01-27 17:55:36 -08:00
Nikolaj Bjorner
0f3c56213e
move dominator simplifier functionality to rewriter and simplifier, move bv_bounds simplifier functionality to simplifier
2023-01-27 17:11:48 -08:00
Nikolaj Bjorner
4601d1d664
fix #6550
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-24 03:37:09 -08:00
Nikolaj Bjorner
eb751bec4c
fix riscv/aarch/powerpc build warnings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-22 23:57:59 -08:00
Nikolaj Bjorner
25b0b1430c
move bound_manager to simplifiers, add bound manager to extract_eqs for solve-eqs #6532
2023-01-12 12:42:28 -08:00
Nikolaj Bjorner
d415f07386
memory leak on proof justifications
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-10 18:58:25 -08:00
Nikolaj Bjorner
30e0f78c16
remove exit
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-09 10:00:36 -08:00
Nikolaj Bjorner
49ee570b09
split into separate function
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-08 19:16:46 -08:00
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
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
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
Nikolaj Bjorner
527fb18366
add doc for card2bv
2022-12-11 09:51:49 -08:00
Nikolaj Bjorner
87095950cb
fix #6477
2022-12-04 13:02:45 -08:00
Nikolaj Bjorner
ead2a46a88
build
2022-12-04 10:38:24 -08:00
Nikolaj Bjorner
9b58135876
try to fix linux builds
2022-12-04 09:55:31 -08:00
Nikolaj Bjorner
0f7bebcbed
try big M for linux build
2022-12-04 09:49:32 -08:00
Nikolaj Bjorner
1974c224ab
add demodulator simplifier
...
refactor demodulator-rewriter a bit to separate reusable features.
2022-12-04 09:39:28 -08:00
Nikolaj Bjorner
9acbfa3923
move it into substitution to handle dependencies
2022-12-04 06:23:32 -08:00
Nikolaj Bjorner
3d7bd40a87
a round of cleanup
2022-12-04 06:07:45 -08:00
Nikolaj Bjorner
d218083145
The demodulator doesn't produce proofs so remove code path that depends it does.
2022-12-04 04:48:48 -08:00
Nikolaj Bjorner
7fe6787748
ufbv-rewriter is really a demodulator rewriter and does not reference ufbv
...
so moving first the rewriter into place of other rewriters
2022-12-04 04:44:02 -08:00
Nikolaj Bjorner
79e6d4e32d
tune and debug elim-unconstrained (v2 - for simplifiers infrastructure)
2022-12-04 03:53:31 -08:00
Nikolaj Bjorner
cf7bba6288
use ast_manager as an attribute
2022-12-04 03:53:30 -08:00
Nikolaj Bjorner
b084821a0c
wip - dependent expr simpliifer
...
- simplify iterator over current indices
- add more simplifiers used by asserted_formulas
- improve diagnostics printing
2022-11-30 13:41:40 +07:00
Nikolaj Bjorner
caf204ab95
hoist macro-replacer as shared utility, update eliminate-predicates and model reconstruction
2022-11-24 19:45:51 +07:00
Nikolaj Bjorner
eceeb295fc
fix #6457
2022-11-24 14:41:50 +07:00
Nikolaj Bjorner
9a2693bb72
tune euf-completion
2022-11-23 16:39:20 +07:00
Nikolaj Bjorner
22353c2d6c
new core perf - add merge_tf and enable_cgc distinction
...
perf fix for propagation behavior for equalities in the new core.
The old behavior was not to allow congruence closure on equalities.
The new behavior is to just not allow merging tf with equalities unless they appear somewhere in a foreign context (not under a Boolean operator)
The change re-surfaces merge_tf and enable_cgc distinction from the old core.
They can both be turned on or off.
merge_enabled renamed to cgc_enabled
The change is highly likely to introduce regressions in the new core.
Change propagation of literals from congruence:
- track antecedent enode. There are four ways to propagate
literals from the egraph.
- the literal is an equality and the two arguments are congruent
- the antecedent is merged with node n and the antecedent has a Boolean variable assignment.
- the antecedent is true or false, they are merged.
- the merge_tf flag is toggled to true but the node n has not been merged with true/false
2022-11-23 11:37:24 +07:00
Nikolaj Bjorner
ba68652c72
add destructive equality resolution to existentials
2022-11-19 18:43:46 +07:00
Nikolaj Bjorner
98fc8c99db
add shortcut to equality mk utility
2022-11-16 03:47:01 -08:00
Nikolaj Bjorner
255414f4a9
fix regression crash
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-15 11:20:12 -08:00
Nikolaj Bjorner
9845c33236
add shortcuts in rewriter, eliminate redundancies in dependent_expr tactic
2022-11-15 09:13:13 -08:00
Nikolaj Bjorner
3a37cfca30
switch to solve_eqs2 tactic
2022-11-08 12:23:36 -08:00
Nikolaj Bjorner
f769e2f1f6
have bool rewriter use flat_and_or, and integrate hoist rewriter
2022-11-08 12:21:50 -08:00
Nikolaj Bjorner
3a4b8e2334
add rewrite rules to bv-rewriter
2022-11-08 12:20:51 -08:00
Nikolaj Bjorner
a34701471f
clean up hoist rewriter
2022-11-08 12:20:25 -08:00
Nikolaj Bjorner
6c12aaad74
wip - testing solve-eqs2, added as tactic
2022-11-05 22:42:59 -07:00
Nikolaj Bjorner
154b09309b
fixing build, wip on model reconstruction integration into dependent-expr-state
2022-11-04 14:04:44 -07:00
Nikolaj Bjorner
de9368bab0
Update expr_replacer.h
2022-11-04 11:25:39 -07:00
Nikolaj Bjorner
28668c6efc
set up model reconstruction trail
2022-11-04 11:25:39 -07:00
Nikolaj Bjorner
1646a41b2f
minor fixes
...
- ensure mk_extract performs simplification to distribute over extract and removing extract if the range is the entire bit-vector
- ensure bool_rewriter simplifeis disjunctions when applicable.
2022-11-02 08:44:55 -07:00
Nikolaj Bjorner
a409a4a677
enforce flat within QF_BV tactic, cap in-processing var-elim loops
2022-10-27 20:10:55 -07:00
Nikolaj Bjorner
1fae3aa152
rename set-flat to set-flat-and-or to allow to differentiate parameters
2022-10-27 11:22:57 -07:00
Nikolaj Bjorner
fe1b4bf5ce
disable ternary, fixes to propagation, make bv_rewrites for multiplier n-ary
2022-10-26 23:44:38 -07:00