Jakob Rath
f47fbdd714
Move interval projection out of viable
2024-03-20 12:11:14 +01:00
Jakob Rath
5339a2f70f
Don't access solver_interface directly
2024-03-20 10:16:40 +01:00
Jakob Rath
a34bb99db3
Use variable from violated interval as origin
2024-03-20 10:15:25 +01:00
Jakob Rath
3a11350142
Move helper functions
2024-03-20 10:10:27 +01:00
Jakob Rath
f5eb457bee
fix propagate_from_containing_slice dependency
2024-03-19 16:13:28 +01:00
Nikolaj Bjorner
3555b25317
Merge branch 'poly' of https://github.com/z3prover/z3 into poly
2024-03-15 08:55:16 -07:00
Nikolaj Bjorner
e4cc6e29ca
fix case when interval is full
2024-03-15 08:55:07 -07:00
Jakob Rath
aa1285288e
Fix integration of propagate_from_containing_slice
2024-03-15 15:08:12 +01:00
Jakob Rath
dfb200a3c9
propagation from containing slice depends on concrete values
2024-03-15 12:31:31 +01:00
Jakob Rath
2102db2df8
Fix viable entry reduction (case new_lo == new_hi)
2024-03-14 15:09:21 +01:00
Nikolaj Bjorner
1e9381c2f6
update slice/offset claim structures to allow for equal variable.
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-03-13 11:48:09 -07:00
Jakob Rath
35e3211ca8
display
2024-03-12 16:24:28 +01:00
Jakob Rath
450ed26440
implement 'is_full' case
2024-03-12 16:23:39 +01:00
Jakob Rath
df85eeb581
viable explanation depends on assignment
2024-03-12 16:20:44 +01:00
Jakob Rath
7311af699c
fix
2024-03-11 15:02:55 +01:00
Jakob Rath
b561795214
fix
2024-02-26 10:40:37 +01:00
Jakob Rath
8d45c954c5
enable new propagate_from_containing_slice
2024-02-08 15:11:36 +01:00
Jakob Rath
0ada7f8e40
bug with sizes
2024-02-08 14:20:26 +01:00
Jakob Rath
0cef6bec4e
be explicit about intended division semantics
...
fixes bug in chop_off_lower
2024-02-08 13:02:26 +01:00
Jakob Rath
85d3e266a4
Update viable::propagate_from_containing_slice to use new get_fixed_sub_slices (wip)
2024-02-07 17:16:26 +01:00
Nikolaj Bjorner
3f3ac924ab
add debugging output
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-02-06 09:48:09 -08:00
Jakob Rath
57324e953e
return propagated interval from viable::explain
2024-02-02 17:14:07 +01:00
Jakob Rath
85ef6b721e
can handle equal size now, weaken fixed_claim to avoid crash
2024-02-02 16:42:06 +01:00
Jakob Rath
52c6fd98fd
propagate from containing slice: consider e->bit_width
2024-02-02 15:00:24 +01:00
Jakob Rath
394f25a42f
viable display
2024-02-02 14:51:41 +01:00
Jakob Rath
6a1f173e03
extend propagate_from_containing_slice to subslices with offset > 0
2024-02-01 17:23:26 +01:00
Jakob Rath
75527e8e19
propagate intervals from containing slice
2024-01-29 16:45:14 +01:00
Nikolaj Bjorner
f0b056d859
add ad-hoc debug output, add rule for incremental linearization
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-21 11:29:48 -08:00
Nikolaj Bjorner
677e261bb1
constant overflow forbidden interval
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-15 09:46:45 -08:00
Nikolaj Bjorner
a68bbb53e4
update assign to check fixed bits afterwards
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-15 09:18:51 -08:00
Nikolaj Bjorner
79a2c86c05
fixup fixedbits again
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-14 14:38:44 -08:00
Nikolaj Bjorner
05d61ed090
fix incorrect fixed_bits forbidden interval calculation
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-14 12:19:04 -08:00
Nikolaj Bjorner
3f369ae962
fix unsound merge
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-13 17:47:20 -08:00
Nikolaj Bjorner
93be3d2b2c
arithmetic
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-13 10:29:50 -08:00
Nikolaj Bjorner
22103c0322
bugfix
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-12 14:00:33 -08:00
Jakob Rath
70d2057557
comment
2024-01-12 16:32:36 +01:00
Nikolaj Bjorner
1acaed69c6
fix overflow
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-11 16:42:58 -08:00
Nikolaj Bjorner
3d33d28f8c
check for viable assignment
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-11 13:02:40 -08:00
Nikolaj Bjorner
9fb86a4d4f
fixing fixed-bits viable
2024-01-11 11:09:06 -08:00
Nikolaj Bjorner
9fb9e659b0
full interval case
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-11 08:44:16 -08:00
Nikolaj Bjorner
86de8bd5b1
add case for exclude 0
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-10 17:19:10 -08:00
Nikolaj Bjorner
33c37cfdf0
bugbash bit-wise operations
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-10 16:05:55 -08:00
Nikolaj Bjorner
cc4ed602e5
inline propagation when adding new viable
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-08 20:31:14 -08:00
Nikolaj Bjorner
e26d597917
working on unit propagation explanation
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-07 15:29:18 -08:00
Nikolaj Bjorner
11c529162d
add facility to support propagation
2024-01-06 16:26:03 -08:00
Nikolaj Bjorner
30c0771d24
redo fixed bits, add simplifications to intblast solver
2024-01-06 16:12:01 -08:00
Nikolaj Bjorner
c4b7061590
bugbash
...
fix missing justification in explain_slice
tune intblast solver with some simplifications
bypass conflicts if the state is already conflicting
2024-01-04 20:14:22 -08:00
Nikolaj Bjorner
cb672c7992
overflow example works
...
- introduce weak/strong eval to temper unit propagation to use only weak evaluation.
- harness the amount of interval propagation provided on overflow constraints
- weak evaluation on overflow constraints is now trivialized
- viable insertion also does conflict detection
2024-01-04 15:55:24 -08:00
Nikolaj Bjorner
7b0c04a3e8
bugbash
2024-01-04 10:54:02 -08:00
Nikolaj Bjorner
f71219a9d0
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-03 20:28:57 -08:00