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
Clemens Eisenhofer
783bd60598
Merge branch 'polysat' of https://github.com/Z3Prover/z3 into polysat
2023-02-01 11:28:15 +01:00
Clemens Eisenhofer
8db575ea3b
Division monotonicity
2023-02-01 11:27:46 +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
3c822117d1
assert before deref
2023-02-01 10:41:02 +01:00
Jakob Rath
9314ad3808
minor changes to bounds propagation
2023-02-01 10:36:49 +01:00
Clemens Eisenhofer
63f7001117
Justify shift-premis in variable_elimination
2023-01-31 15:50:42 +01:00
Jakob Rath
9916a76543
try_eval constraints when adding clause
...
(fix assertion in bench15)
2023-01-31 15:15:51 +01:00
Clemens Eisenhofer
e8163b1769
Removed wrong assertion
2023-01-27 08:32:44 +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
Jakob Rath
b460150f98
tried logic ALL for univariate solver
...
Allows us to solve bench25 but some others turn into unknown
2023-01-25 11:42:02 +01:00
Jakob Rath
7fbf27309b
rename
2023-01-25 11:42:02 +01:00
Nikolaj Bjorner
cf1ce4cea2
promote assertion to verify so it triggers in release mode, triggers for bench15
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-24 20:15:40 -08:00
Jakob Rath
a2ff185187
Put (arbitrary) bound on number of refinements
2023-01-23 16:33:07 +01:00
Jakob Rath
3dc8ef6337
parity edge case
2023-01-23 15:07:35 +01:00
Jakob Rath
07de75cd12
fix and-propagation
2023-01-23 15:04:13 +01:00
Jakob Rath
58ab342029
Add missing and-lemma; fix condition on existing one
2023-01-23 14:56:46 +01:00
Jakob Rath
46147c2fc3
Fix unsoundness in ule_constraint lemma
2023-01-23 13:59:00 +01:00
Jakob Rath
c6cd35508b
fix
2023-01-19 19:09:46 +01:00
Jakob Rath
2056d392ba
Detect gap in has_max_forbidden
2023-01-19 13:48:06 +01:00
Jakob Rath
d1ef8029a9
simpler condition
2023-01-19 13:43:50 +01:00
Jakob Rath
f9f61249e1
debug output
2023-01-19 13:42:33 +01:00
Jakob Rath
a7ad1f0bfb
fix build
2023-01-18 19:29:22 +01:00
Jakob Rath
85a8d8b005
debug output
2023-01-18 18:46:40 +01:00
Jakob Rath
905144cdbb
assert
2023-01-18 18:43:41 +01:00
Jakob Rath
8385452d91
simplify interval
2023-01-18 18:40:48 +01:00
Jakob Rath
c62ba26cf4
simplify
2023-01-18 18:38:44 +01:00
Jakob Rath
3e42dbe591
Fix assertions
2023-01-18 18:30:25 +01:00
Jakob Rath
b23c1b4016
Update viable tests
2023-01-18 18:23:47 +01:00
Jakob Rath
c954e82503
assertion should hold now after recent fix
2023-01-16 16:51:16 +01:00
Jakob Rath
015fcb457c
avoid warnings
2023-01-16 16:50:36 +01:00
Jakob Rath
b6f8538d20
Update parity lemmas
...
p != 0 ==> odd(r)
... added premise p != 0
parity(p) < k ==> r <= 2^(N - k) - 1
... do this also in the other branch
(otherwise we hit the UNREACHABLE in bench3)
2023-01-16 16:46:12 +01:00
Jakob Rath
26e7d0d35a
We need to use expr_ref
when storing expressions across add
calls
...
Without this, bench3 created a constraint 2^parity == x * parity which
should have been 2^parity == x * x_inv.
2023-01-16 15:41:04 +01:00
Clemens Eisenhofer
b33911de13
Added missing minimality lemma for pseudo_inverse
2023-01-15 12:11:15 +01:00
Jakob Rath
caf624589e
Accelerate interval widening in refine_equal_lin
2023-01-13 15:41:28 +01:00
Jakob Rath
057e115bbc
Update op_constraint simplifications
2023-01-12 13:31:16 +01:00
Jakob Rath
0a2c69332d
disable try_add_overflow_bound, add note on possible rewrite
2023-01-11 13:39:41 +01:00
Jakob Rath
fa036ae486
track clause name for debugging
2023-01-11 10:50:14 +01:00
Jakob Rath
1d349fb0e6
compile
2023-01-11 10:50:14 +01:00
Clemens Eisenhofer
7aeabe39a3
Removed remaining debug output
2023-01-11 10:32:38 +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
1d0ad1ccc0
fix build (add conversion operator)
2023-01-10 17:18:56 +01:00
Jakob Rath
0c799524e8
try splitting x-intervals
2023-01-10 16:25:28 +01:00
Jakob Rath
49848a4298
extract function update_bounds_for_xs
2023-01-10 15:16:24 +01:00