-
Notifications
You must be signed in to change notification settings - Fork 263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SMT2 back-end: detect when solver returns unexpected model #8379
SMT2 back-end: detect when solver returns unexpected model #8379
Conversation
2ec4974
to
26ee36e
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #8379 +/- ##
===========================================
- Coverage 78.35% 78.32% -0.03%
===========================================
Files 1726 1726
Lines 188424 188506 +82
Branches 18248 18249 +1
===========================================
+ Hits 147631 147646 +15
- Misses 40793 40860 +67 ☔ View full report in Codecov by Sentry. |
OK... trying it on the issues/8365 test case in my cbmc-examples repo. It terminates OK, and I see
in the on-screen output, so better than before. BUT... which actual proof is failing? It now reports 36 lines with ERROR at the end, so I've no idea which proof it is that's causing the problem. |
I'm afraid the answer given by Z3 is not useful enough for us to determine that. Replace
|
Ah yes... that's more like it. |
Nudge: note that the value is Boolean. The problem is that it's not a constant. |
We have seen examples of Z3 responding with ``` ((B1502 (forall ((|main::tmp_cc$0!0@1#0| (_ BitVec 64))) (let ((a!1 (or (and (not (bvule #x000000000000000c |main::tmp_cc$0!0@1#0|)) (bvule #x000000000000000b |main::tmp_cc$0!0@1#0|) [...] ``` when we expected just `true` or `false` as model (which Bitwuzla seemed to get right on the very same input program). Report these as errors rather than using the incomplete assignment. Such an incomplete assignment would make us re-try forever without making progress. Fixes: diffblue#8365
26ee36e
to
b0eedde
Compare
Err, yes, fixed. |
We have seen examples of Z3 responding with
when we expected just
true
orfalse
as model (which Bitwuzla seemed to get right on the very same input program). Report these as errors rather than using the incomplete assignment. Such an incomplete assignment would make us re-try forever without making progress.Fixes: #8365