3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 08:35:31 +00:00
Commit graph

18181 commits

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