Jakob Rath
90e88d9a7e
New viable conflict (viable::set_conflict_by_interval)
2023-12-07 14:29:45 +01:00
Jakob Rath
e1d23642bc
Fix dependency tracking for viable_fallback
...
now takes into account explanations for overlapping variables
2023-12-01 15:45:23 +01:00
Jakob Rath
0bfebe3de1
Enable conflict logger with polysat.log_conflicts=true
2023-08-16 09:40:16 +02:00
Jakob Rath
aa81f6c9fb
Propagate value assignments discovered by the slicing e-graph
2023-08-07 15:20:04 +02:00
Nikolaj Bjorner
3302ab9dc5
fix bug introduced in is_valid()
2023-04-02 16:12:11 -07:00
Nikolaj Bjorner
ae57475483
fix bug in conflict::is_valid exposed by testing unit propagation
2023-04-02 14:54:20 -07:00
Nikolaj Bjorner
63ebd4fcba
another unsoundness bug
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-31 16:13:46 -07:00
Jakob Rath
d7930b3997
Find more undetected bool/eval conflicts in viable::resolve_interval
2023-03-29 15:47:10 +02:00
Jakob Rath
73b97f3a32
unsat core validity check works only if m_conflict.m_dep.is_null()
2023-03-23 14:15:17 +01:00
Jakob Rath
df82d9b0f9
unsat core dbg
2023-03-23 13:53:13 +01:00
Jakob Rath
51025a75b4
fix conflict reset condition
2023-03-23 09:29:59 +01:00
Jakob Rath
4e9db7c4d9
eval justifications are determined by chronological order
2023-03-23 09:25:46 +01:00
Jakob Rath
5b3f500900
Try to keep conflict alive for longer
2023-03-23 07:18:36 +01:00
Jakob Rath
7e6571309e
fix
2023-03-18 14:02:22 +01:00
Jakob Rath
707a5b78f7
Print less output in non-verbose mode
2023-03-18 08:04:03 +01:00
Jakob Rath
ee64bf27d1
correct version of reverted commit
2023-03-18 07:58:55 +01:00
Jakob Rath
a8315e8558
Revert "remove unused/broken code"
...
This reverts commit b75fcb5714
.
2023-03-18 07:57:27 +01:00
Jakob Rath
142e33d2f4
The justifications of value propagations may contain undiscovered bool/eval conflicts
2023-03-18 07:52:52 +01:00
Jakob Rath
b75fcb5714
remove unused/broken code
2023-03-18 07:51:20 +01:00
Jakob Rath
0e20198473
should eval new constraints
2023-03-17 23:58:47 +01:00
Jakob Rath
931e6d655e
disable conflicts logging by default
2023-03-17 23:37:32 +01:00
Nikolaj Bjorner
93360318b2
fixes to asserts
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-16 11:55:23 +01:00
Jakob Rath
03a6d74c58
fix eval justifications
2023-03-15 11:33:20 +01:00
Jakob Rath
07d1f86575
cleanup conflict::init and promote assertion
2023-03-12 16:28:54 +01:00
Nikolaj Bjorner
b84f9694cd
undo unnecessary change
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-06 21:39:46 -08:00
Nikolaj Bjorner
6c00d40513
polysat fixes
...
1. ensure that force_push is invoked before polysat updates state.
2. extract conflicts based on dependencies of both new literal that was conflicting with existing literal that had its value assigned based on dependencies.
2023-03-06 17:35:39 -08:00
Clemens Eisenhofer
ac5682409e
Commit missing change
2023-03-06 10:15:11 +01:00
Jakob Rath
5a901e31fd
verify
2023-03-02 16:03:55 +01:00
Clemens Eisenhofer
3f8edb9aac
Contract bit information to large unit-intervals
2023-02-17 15:32:43 +01:00
Jakob Rath
984e98c88f
Avoid duplicates
2023-02-06 17:52:52 +01:00
Jakob Rath
a37536e0ae
clarify unsat_core
2023-02-06 17:52:52 +01:00
Jakob Rath
d7797a53df
temporary fix
2023-02-06 11:34:28 +01:00
Jakob Rath
539a4e4eae
less eval
2023-02-03 17:43:07 +01: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
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
576e0b70b2
stub for conflict::find_deps
2023-02-01 10:53:49 +01:00
Jakob Rath
1bb68a4fc1
track dependency of base-level conflict
2023-02-01 10:47:26 +01:00
Jakob Rath
3c822117d1
assert before deref
2023-02-01 10:41:02 +01:00
Jakob Rath
fa036ae486
track clause name for debugging
2023-01-11 10:50:14 +01:00
Jakob Rath
5f2fd039ba
Perform clause simplification earlier
2022-12-22 13:07:38 +01:00
Nikolaj Bjorner
a8d401864b
review
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-20 12:46:15 -08:00
Jakob Rath
ca373836af
Merge remote-tracking branch 'origin/polysat' into polysat
2022-12-16 14:26:38 +01:00
Jakob Rath
3b3636b30e
Remove conflict::set
2022-12-16 14:25:41 +01:00
Jakob Rath
06e6f27614
refactor
2022-12-16 14:22:50 +01:00
Jakob Rath
afde0e993c
Add bitblasting fallback to viable::query
...
(integration between conflict/viable is still messy)
2022-12-16 13:02:54 +01:00
Clemens Eisenhofer
71211f3134
Some bugfixes and unit-tests for variable elimination
2022-12-16 10:12:34 +01:00
Nikolaj Bjorner
a5f12e9d57
add parity constraint for disequality
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-12 19:40:19 -08:00
Jakob Rath
917e1b6a4c
When adding clauses, prioritize bool-propagation over evaluation
...
See test_band1 and clause: v2 == v0 & v1 --> v2 <= 0
2022-12-12 14:48:13 +01:00
Nikolaj Bjorner
a6b49d8b4e
provide access to saturation for selected constraints
2022-12-08 19:17:35 -08:00