3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-03-06 05:14:55 +00:00
Commit graph

81 commits

Author SHA1 Message Date
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