3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-29 23:43:15 +00:00
Commit graph

160 commits

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