-
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
Odd behavior difference Windows and MacOS #6149
Comments
This example might also be relevant as it fails with a timeout (or "smt tactic failed to show goal to be sat/unsat (incomplete quantifiers)") when the lambdas on lines 958 and 1643 are replaced by the empty list values. These clauses are not meaningful to the result as they are always successful given the structure of the formula. (Behavior appears on both Windows and MacOS). |
For the first one, some bisection debugging would be useful.
Perhaps it is easier than that and pre-processing is where the platform dependency comes in. C:\z3\build>..\release\z3 build.smt2 /v:1 smt.random_seed=6 /v:10 Note that build.smt2.txt behaves differently depending on the random seed. |
After some investigation I am noticing 2 interesting things.
I am wondering if these quantifiers are also causing the instability in (1) and am not sure why/how they are getting created as I thought map/lambda were processed as rewrites. |
the "unknown" result turns out to be subtle: there is an internal model check call that is invoked. It determines somehow that the model built doesn't satisfy the assignment to a ground literal so it bails out. Needs investigation. |
There were several bugs related to incomplete handling of map/fold operations and even creation of ill-formed terms. 809838f I also added initial unit tests for map/mapi/fold/foldi. |
Just built this and ran tests. It looks like all the issues I had found have been cleared up. I'll plan to workup some tests for these features too. |
Running the attached file on Windows and MacOS has very different behavior. On Windows it immediately returns SAT (as expected) while on MacOS (M1 ARM64) it runs until a timeout hits. Additionally, if line 700 is changed to replace the constant
@BLENMAX
with the literal value32
the solver can immediately find the SAT solution. Further this function is never referenced anywhere else in the file (so could be deleted entirely and is clearly semantically irrelevant).Given these behaviors I am suspicious there is more going on here (like an ARM64 bug) than just bad luck with heuristics or solver ordering.
Build configuration for M1 is:
CXX=clang++ CC=clang FPMATH_ENABLED=False python scripts/mk_make.py --arm64=true --staticlib
build.smt2.txt
The text was updated successfully, but these errors were encountered: