3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-23 03:27:52 +00:00
Commit graph

359 commits

Author SHA1 Message Date
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
4b1ec583ec Remove outdated assertion 2023-02-03 16:07:58 +01:00
Jakob Rath
6365e322f3 Try to propagate boolean decisions after backjumping 2023-02-03 15:56:19 +01:00
Jakob Rath
5678c1c592 We need more clause names 2023-02-03 15:54:56 +01:00
Jakob Rath
bdf20f513b debug 2023-02-03 11:18:11 +01:00
Jakob Rath
2dc93116e5 cleanup pdecide 2023-02-02 13:28:28 +01:00
Jakob Rath
5589d3389d Drop assign_verify 2023-02-02 13:22:10 +01:00
Jakob Rath
fe164c843d Fix/simplify constraint_manager::watch 2023-02-01 15:02:56 +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
975fb25221 Fix to bench15 bug was unsound 2023-02-01 11:17:29 +01:00
Jakob Rath
f0625b604a Promote assertions to release mode 2023-02-01 11:12:13 +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
9916a76543 try_eval constraints when adding clause
(fix assertion in bench15)
2023-01-31 15:15:51 +01:00
Jakob Rath
88d11c9381 skip always-true constraints 2023-01-25 12:34:01 +01:00
Jakob Rath
223f9fffed avoid unused variable warning 2023-01-25 12:32:04 +01:00
Jakob Rath
f91bb12f0e Add warning to not trust the unsat cores yet 2023-01-25 12:30:27 +01:00
Jakob Rath
4dc05447ad verify model also in release mode 2023-01-25 11:42:34 +01:00
Clemens Eisenhofer
2581754c3e Forward propagation for op_constraints + optimization for left/right shift 2023-01-11 10:29:26 +01:00
Jakob Rath
b6ea9e31e5 output 2023-01-09 17:20:40 +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
3f5e6a4bfa bugfix: don't intersect forbidden intervals if variable is already assigned 2023-01-09 17:10:18 +01:00
Nikolaj Bjorner
991acb0d72 add diagnostics for assertion violations
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-06 13:29:24 -08:00
Jakob Rath
1002538565 insert_eval? 2023-01-05 17:41:08 +01:00
Jakob Rath
0daf444cec Actually revert boolean decisions 2023-01-04 17:20:34 +01:00
Clemens Eisenhofer
6f78c33558 Generalized variable elimination 2022-12-29 22:36:04 +01:00
Clemens Eisenhofer
658877365c Moved "easy part" of variable elimination to saturation.cpp 2022-12-28 15:07:03 +01:00
Clemens Eisenhofer
74ec28201e Merge remote-tracking branch 'Z3Prover/polysat' into polysat 2022-12-25 12:41:39 +01:00
Clemens Eisenhofer
674e309fa3 ... and backtracking for bits 2022-12-25 12:23:49 +01:00
Nikolaj Bjorner
e978b81c7a add review comment to bug location
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-24 12:40:47 -08:00
Nikolaj Bjorner
48cd05c725 introduce try_factor_equality2, disabled as it exposes new bugs. Old bug on bench15.smt2 exposed in debug mode
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-24 12:05:54 -08:00
Jakob Rath
993996c8a5 Negate premise in lemma; fixes (or at least hides) the segfault 2022-12-23 17:18:10 +01:00
Jakob Rath
68b74ca6a7 parity debugging 2022-12-23 11:42:45 +01:00
Jakob Rath
5f2fd039ba Perform clause simplification earlier 2022-12-22 13:07:38 +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
ac0e9ebe5f Don't lose variables when aborting decisions 2022-12-19 14:02:47 +01:00
Jakob Rath
69b41a7e70 Check invariant on pvars 2022-12-19 13:55:50 +01:00
Jakob Rath
bf92fa4882 clause_iterator 2022-12-16 15:21:32 +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
Jakob Rath
5de0007157 very basic refinement loop breaking 2022-12-15 13:39:48 +01:00
Jakob Rath
519ebd8a8b log and note 2022-12-13 11:49:54 +01:00
Jakob Rath
a3c7a869cd bool_watch_invariant 2022-12-13 11:47:21 +01:00
Jakob Rath
eda6534453 more readable intervals 2022-12-12 16:41:18 +01:00
Jakob Rath
b1271ac7fb Check for missed boolean propagations 2022-12-12 11:52:45 +01:00
Jakob Rath
8d13446537 Solve boolean skeleton first 2022-12-09 17:22:51 +01:00
Jakob Rath
5ad961029d Rename revert_decision -> revert_pvar, and enable it.
Also rename resolve_with_assignment to resolve_evaluated
2022-12-08 16:19:11 +01:00