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