3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 09:05:31 +00:00
Commit graph

18692 commits

Author SHA1 Message Date
Nikolaj Bjorner
2d7a38e95e fix #6488
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-13 16:07:41 -08:00
Jakob Rath
1bc4313333 Fix unsoundness in previous commit 2022-12-13 15:27:07 +01:00
Jakob Rath
7e7cea54f4 Intervals from equality constraints: remove superfluous side constraints 2022-12-13 15:02:45 +01:00
Jakob Rath
434e794790 test 2022-12-13 12:00:38 +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
6f1e4283bb Merge forbidden intervals for positive and negative equations 2022-12-13 11:42:52 +01:00
Nikolaj Bjorner
6c7f556496 activate non-overflow bounds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-12 20:11:01 -08: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
Nikolaj Bjorner
7afcaa5364 update doc
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-12 18:56:21 -08:00
Nikolaj Bjorner
e648e68d36 add doc
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-12 17:29:58 -08:00
Duncan Ogilvie
e82c8e78ae
Fix a compilation error with clang-cl (VS2022) (#6489) 2022-12-12 22:12:31 +00:00
Nikolaj Bjorner
aded8e5bf4 fix #6488
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-12 11:40:59 -08:00
Nikolaj Bjorner
4598af70c8 fix #6488
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-12 11:04:46 -08:00
Nikolaj Bjorner
a3e6885680 fix #6488 2022-12-12 09:50:44 -08:00
Jakob Rath
479e0e58ea Better intervals for equations 2022-12-12 18:18:24 +01:00
Jakob Rath
4a2379c23d Add unit test for refinement loop in bench6 2022-12-12 17:48:23 +01:00
Jakob Rath
eda6534453 more readable intervals 2022-12-12 16:41:18 +01:00
Jakob Rath
9f1f949d9d tests 2022-12-12 14:51:18 +01: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
Jakob Rath
587e77648a Keep value_propagate for now 2022-12-12 13:57:30 +01:00
Jakob Rath
759d8f2a94 Fix watching of boolean literals 2022-12-12 13:50:15 +01:00
Jakob Rath
1eb8eb560b test_ineq2 2022-12-12 13:37:28 +01:00
Jakob Rath
b1271ac7fb Check for missed boolean propagations 2022-12-12 11:52:45 +01:00
Jakob Rath
9feefa4c0a Remove clause methods that should not be used 2022-12-12 11:47:27 +01:00
Nikolaj Bjorner
039de6a2c8 build issues
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-11 15:05:13 -08:00
Nuno Lopes
cb8603177e fix build 2022-12-11 22:17:11 +00:00
Nuno Lopes
d308b8f555 simplify code + remove unused file 2022-12-11 22:11:19 +00:00
Nikolaj Bjorner
6b60a3dbed fix syntax
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-11 14:06:08 -08:00
Nikolaj Bjorner
2520dcb04b merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-11 14:03:22 -08:00
Nuno Lopes
2d43ccc4c6 Revert "fix crashes in elim-uncnstr2"
This reverts commit a302c2f15e.
2022-12-11 21:37:25 +00:00
Nikolaj Bjorner
5a27ae6b53 disable tangent lemma, which appears to be counter-productive
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-11 12:56:21 -08:00
Nikolaj Bjorner
6a1b3f7344 move debug output to before state update 2022-12-11 12:51:46 -08:00
Nikolaj Bjorner
f7269bb60a update doc
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-11 10:16:17 -08:00
Nikolaj Bjorner
a9f52b0069 doc fixes 2022-12-11 10:04:01 -08:00
Nikolaj Bjorner
527fb18366 add doc for card2bv 2022-12-11 09:51:49 -08:00
Nuno Lopes
a302c2f15e fix crashes in elim-uncnstr2
This would crash before:
(declare-fun x () (_ BitVec 4))
(assert (not (bvule x #x1)))
(apply elim-uncnstr2)

That's because the index_set iterator was querying qtail to compute the end of the iteration
But the problem is that elim-uncnstr2 may add new fmls to the goal, as in this case.
The bvule is replaced with an 'or', but since it's negated, it turns into 2 goals
Solve the issue by freezing the qtail for the iteration loop.
This is the right behavior for elim-uncnstr2, as it can't rewrite exprs that haven't been analyzed before

@NikolajBjorner please check if this the right behavior for the other simplifiers. Thank you
2022-12-11 15:21:23 +00:00
Nikolaj Bjorner
d092523733 bugfixes to try_factor_equality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-10 10:51:21 -08:00
Nikolaj Bjorner
c27bd0d650 added try_factor
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-09 14:58:37 -08:00
Nikolaj Bjorner
6e886114f9 add parity4
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-09 09:56:47 -08:00
Nikolaj Bjorner
707577644f assignment -> assignment_t for build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-09 09:33:24 -08:00
Nikolaj Bjorner
57f2d72fe2 merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-09 09:26:40 -08:00
Nikolaj Bjorner
ee307dd84f Merge branch 'master' of https://github.com/z3prover/z3 2022-12-09 08:50:46 -08:00
Nikolaj Bjorner
1434c7d394 #6059
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-09 08:50:32 -08:00
Jakob Rath
8d13446537 Solve boolean skeleton first 2022-12-09 17:22:51 +01:00
Nuno Lopes
9ebacd87e2 fix buggy mask (typo in my last commit..) 2022-12-09 16:16:52 +00:00
Nikolaj Bjorner
e716e507d9 investigate bench4
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-09 08:14:42 -08:00
Nikolaj Bjorner
96a2c04026 fix bug reported by Nuno
qhead should not be changed after tactic execution. It should remain 0 so the same tactic can be applied repeatedly on the entire state
2022-12-09 07:57:06 -08:00
Nuno Lopes
a96f5a9b42 fix overflow in mpz::bitwise_not 2022-12-09 11:59:39 +00:00
Nuno Lopes
c6f9c09d70 cleanup more in dependent_expr_state_tactic to reduce mem consumption 2022-12-09 11:34:53 +00:00