-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
SAT check on an ite
returning an unexpected unknown
#7507
Comments
when I removed the first |
Understood, but that is not the use case that we have. This is part of a branching check, which we do by first checking that a ground truth (in this case, everything before the first
We have not had issues with this with Separately, if you remove the first
Is that correct? |
I am not a maintainer. I am just interested in this issue. I am a bit surprised that you said that this does not occur in prior versions. In my quick test, I am seeing that it only returns |
I'm not sure why, but we definitely do not have this issue with There is an additional bit of complexity that I cannot explain either - we run the SAT checks with several retries and doubling the timeout, but the results are inconsistent. In particular, on Linux the check always returns unknown no matter the retries and initial timeout, but on my M1 Mac the check passes correctly if there is one retry, but not if there isn't even if I increase the timeout beyond the double, which is very unusual. |
It may happen that platform divergence is due to:
The default solver isn't great at pre-processing with incremental solving. If you use sat.smt=true it is more capable. |
Correction on this statement: @PetarMax uses a Mac and was maybe able to make the script pass on a second attempt somehow. On the plus side, the |
The script below shows that In Z3
v4.13.4
, anite
stalls (thetimeout
can be increased arbitrarily) but there is enough information for satisfiability to be understood - the condition can be proven to hold and each of the branches can be proven SAT. This started happening after Z3 was upgraded fromv4.13.0
tov4.13.4
as part of the formal verification effort at Runtime Verification, Inc.The text was updated successfully, but these errors were encountered: