Replace CVC4 by bitwuzla and CVC5 - #792
Conversation
|
I overlooked your comment about not including cvc5 in deployment, but I disagree. You should include it, because otherwise, we cannot easily test it. Or is there any other reason for not deploying it? |
I guess, the questions simply is: what is the purpose of the ZIP? If it's meant mainly to run with our default settings, we don't really need to include it, but I can of course also include it. As for the tests, we can still run the nightly tests with CVC5 even without including it in the ZIP, since it's only required within releaseScripts for that purpose. |
|
I think you should be able to run everything with it. Think of it this way: if you write a paper where you use CVC5, future people can just pull the current .zip and use your config to re-run. |
Good point, I just included CVC5 for the deployment. |
| echo "$(adds/bitwuzla -V)" | ||
| } | ||
| update_mathsat | ||
| update_bitwuzla |
There was a problem hiding this comment.
Why was update_mathsat removed?
There was a problem hiding this comment.
I simply replaced update_mathsat with update_bitwuzla, as we usually just want to update a single solver and now I wanted to update bitwuzla instead of MathSAT 😉
cc16d3f to
260603f
Compare
|
I just made a new benchmark run with a timeout of 300s instead of 90s to evaluate the impact on our Fox strategy (see here). It turns out that simply replacing CVC4 with bitwuzla while keeping the original solver order actually causes us to succeed on 10 fewer tasks (see FOX vs. OLDFOX). If, however, we instead place bitwuzla first in the solver order (since it was also shown to be the most successful solver based on the results above) we are able to solve 64 more tasks (FOX_BW; see implementation here). Therefore, I suppose it is reasonable to also change the solver order in the Fox strategy as part of this PR, but we could make this change afterwards instead. |
We currently still on an old CVC4 build from 2020 (and there is an even older cvc4nyu variant from 2016). CVC4 is now deprecated and suceeded by CVC5, and we mainly use it as a bitvector solver for trace checks. Therefore, this PR makes the following changes:
Since this usage isn't required for deployment, I chose to not include CVC5 in the release ZIP.CVC5 is also included in the release ZIP.
These changes have the following advantages:
I also ran some evaluations on the performance impact of this change for bitvector trace checks (with a timeout of 90s):