Jakob Rath
40f794c5b4
test stub
2023-06-15 11:53:06 +02:00
Jakob Rath
a0df8507d9
extract/concat slicing wip
2023-06-12 21:13:20 +02:00
Jakob Rath
9e1afc5916
Remove repropagate_units as well
2023-04-03 17:12:15 +02:00
Jakob Rath
c3c9883b0a
Remove repropagate
2023-04-03 15:50:47 +02:00
Nikolaj Bjorner
63ebd4fcba
another unsoundness bug
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-31 16:13:46 -07:00
Nikolaj Bjorner
9614e428a6
wip: enabling reinit approach
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-30 08:41:22 -07:00
Nikolaj Bjorner
bee3320ff6
put reinit-stack code path under ENALBE_REINIT_STACK macro
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-29 13:03:00 -07:00
Jakob Rath
64e452e086
Add some clause names
2023-03-29 15:30:05 +02:00
Nikolaj Bjorner
d0e016c35d
elaborate on clause reinitialization code path
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-28 12:57:34 -07:00
Nikolaj Bjorner
67efd6531b
add stubs for reinit_clauses
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-28 12:34:09 -07:00
Jakob Rath
2804453039
resolve_conflict should stop at base index
2023-03-22 12:43:39 +01:00
Nikolaj Bjorner
da782a9dc7
remove references to linear propagate
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-20 09:20:00 +01:00
Nikolaj Bjorner
3dbca1042c
review comments
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-20 09:12:07 +01:00
Jakob Rath
707a5b78f7
Print less output in non-verbose mode
2023-03-18 08:04:03 +01:00
Jakob Rath
526a55f116
Try to evaluate constraints whenever one of its variables is changed
2023-03-17 22:19:46 +01:00
Jakob Rath
cdd2dbcc41
combine different propagation functions
2023-03-17 13:25:22 +01:00
Jakob Rath
a6771eb567
bool watch: order by search index instead of decision level
2023-03-16 16:50:09 +01:00
Clemens Eisenhofer
135da9b824
Log also last conflict
2023-03-15 16:22:58 +01:00
Jakob Rath
50876a4dae
Add helper for printing polysat constraints
2023-03-12 16:15:25 +01:00
Jakob Rath
d075759659
mk_clause with name
2023-03-11 10:32:19 +01:00
Jakob Rath
47f3353af6
Add int/unsigned overloads in pairs to avoid implicit conversions
2023-03-11 09:56:22 +01:00
Jakob Rath
ed03b5183e
do evaluation according to pvar watchlists
2023-03-10 15:52:24 +01:00
Clemens Eisenhofer
5b35450891
Several changes:
...
- Extend fixed-bit FI to both directions
- really randomized restart
- MSB for fixed-bits
- Forward propagation (band, lshift, rshift) with good justifications (strengthen during saturation)
2023-03-07 15:21:14 +01:00
Clemens Eisenhofer
e343a3ecd3
Parity bug fix
...
Moved div_monotonicity to extra lemma
2023-03-06 10:12:32 +01:00
Jakob Rath
d8c6ab3488
split repropagate_units
2023-03-02 16:01:57 +01:00
Jakob Rath
8249a075e1
repropagate outside pop_levels
2023-03-02 15:52:58 +01:00
Jakob Rath
b6480e789f
Repropagate may need to update watchlist
2023-02-20 15:06:31 +01:00
Jakob Rath
7f41761616
xnor
2023-02-20 11:56:23 +01:00
Nikolaj Bjorner
b45f42133d
updates to try_div_monotonicity
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-04 15:55:14 -08:00
Jakob Rath
1a733a3a50
compute polysat unsat core
2023-02-03 17:37:09 +01:00
Jakob Rath
579275a17d
cleanup
2023-02-03 16:33:02 +01:00
Jakob Rath
5678c1c592
We need more clause names
2023-02-03 15:54:56 +01:00
Jakob Rath
5589d3389d
Drop assign_verify
2023-02-02 13:22:10 +01:00
Jakob Rath
0d56edb65c
Fix missing boolean propagation after boolean conflict
...
Usually in SAT solving, the conflict clause has at least two false literals at the max level (otherwise, the last literal would have been propagated at an earlier level).
But here we are adding clauses on demand; so after backtracking we may have the case that the conflict clause has exactly one undefined literal that must be propagated explicitly.
2023-02-01 15:02:56 +01:00
Jakob Rath
1bb68a4fc1
track dependency of base-level conflict
2023-02-01 10:47:26 +01:00
Jakob Rath
3dc8ef6337
parity edge case
2023-01-23 15:07:35 +01:00
Jakob Rath
181995a4fb
extend invariant check
2023-01-09 17:16:56 +01:00
Jakob Rath
c55d316c6a
Rename to get_assignment to prevent clash with class name
2023-01-09 17:15:40 +01:00
Jakob Rath
0daf444cec
Actually revert boolean decisions
2023-01-04 17:20:34 +01:00
Clemens Eisenhofer
79e7380ffc
Pseudo-inverse op_constraint
2023-01-03 17:47:54 +01:00
Clemens Eisenhofer
6f78c33558
Generalized variable elimination
2022-12-29 22:36:04 +01:00
Clemens Eisenhofer
39a4bb025b
Propagate assignment if all bits are assigned and use better justification if any found
2022-12-27 08:44:55 +01:00
Clemens Eisenhofer
74ec28201e
Merge remote-tracking branch 'Z3Prover/polysat' into polysat
2022-12-25 12:41:39 +01:00
Jakob Rath
68b74ca6a7
parity debugging
2022-12-23 11:42:45 +01:00
Clemens Eisenhofer
c8b9127028
Added justifications for intermediate values [e.g., 2 * x in the pdd (2 * x) + y]
...
This might allow propagation in both directions
2022-12-21 13:52:27 +01:00
Nikolaj Bjorner
a8d401864b
review
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-20 12:46:15 -08:00
Jakob Rath
69b41a7e70
Check invariant on pvars
2022-12-19 13:55:50 +01:00
Clemens Eisenhofer
ec06027515
First step towards explaining single bits
2022-12-19 12:27:37 +01:00
Jakob Rath
bf92fa4882
clause_iterator
2022-12-16 15:21:32 +01:00
Jakob Rath
ca373836af
Merge remote-tracking branch 'origin/polysat' into polysat
2022-12-16 14:26:38 +01:00