-
Notifications
You must be signed in to change notification settings - Fork 6
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
Fix solver logic to QF_LIA #648
Conversation
I get a long list of errors for DHCP after this change:
The specification can be found here. |
This was due to using the wrong logic. I changed this in 73431da. I also added slightly more useful error messages in those cases in e2ef93c. See the updated PR description - the performance improvement is not at all as impressive as I thought. |
8e7c88e
to
6c49048
Compare
dc85d72
to
ea507e4
Compare
@treiher I had to refactor the PR a bit to achieve test coverage. The logic became a parameter to the constructor of the |
@treiher Rebased to current |
Description
This just fixes the solver logic toQF_LIA
without changing types bit vectors as planned originally. For checking all example specifications we observe a 50-fold speedup. I have an initial conversion to bitvectors, but there were still thirty failing tests. I don't think this big change is justified given the speedup we get by just fixing the logic.EDIT: I forgot to clean the cache. We also need
QF_NIA
, asQF_LIA
does not support*
,/
,mod
etc. The actual speedup is between 3% and 11%. Consequently, the BV changes in #612 and #625 may still be useful.@treiher Please try with your DHCP example.