-
Notifications
You must be signed in to change notification settings - Fork 143
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
Updated Docker CI workflow with SMT solvers (HolSmt) #1179
Conversation
Awesome, thanks! |
It would be very useful to find out which version of each solver has been used for the tests, just by looking at the CI logs. This would be especially useful for debugging / troubleshooting purposes and for keeping the HolSmt documentation updated regarding which SMT solver versions have been tested. I've downloaded the CI log archive for this PR but couldn't find any string in the logs that shows which version of Z3 or CVC5 is actually being used for the self-tests (presumably because it's downloading a Docker image/snapshot with the solvers already installed?). So to that end, I was wondering if we could add a few commands like the following: RUN echo "Using Z3 solver: `${HOL4_Z3_EXECUTABLE} --version`"
RUN echo "Using CVC solver: `${HOL4_CVC_EXECUTABLE} --version`"
RUN echo "Using Yices solver: `${HOL4_YICES_EXECUTABLE} --version`" Perhaps this could be added just before Disclaimer: I only have superficial knowledge of Docker so I'm not entirely sure if my suggestion would work as-is... |
… solver versions into build logs
Correctly set Yices's default to '' (empty)
Now
Now you can see the solvers' version information from the CI build log:
|
Perfect, thank you! |
Thanks for all this work! |
The Docker CI update in HOL-Theorem-Prover#1179 is using newer solver versions, so update HolSmt documentation to match those. The Docker CI is actually using the old Z3 2.19 version by default, but I've tested Z3 4.12.4 locally and confirmed the self-tests pass.
The Docker CI update in #1179 is using newer solver versions, so update HolSmt documentation to match those. The Docker CI is actually using the old Z3 2.19 version by default, but I've tested Z3 4.12.4 locally and confirmed the self-tests pass.
Hi,
I have now updated the Docker image
binghelisp/hol-dev:latest
with the following SMT solvers installed:This present PR contains the original Docker definitions, and I have already pushed the new Docker images to my
binghelisp/hol-dev
repository. Then 3 GitHub workflows are updated to actually use the new features provided by the updated Docker images.The previous Docker image without these extra software, is now preserved as Docker image
binghelisp/hol-dev:base
. For the CI tests of PRs and new commits ondevelop
, I put Z3 2.19 (with proof logging) and CVC5 by default. And for the manual tests described by theself-runner.yml
workflow, various solvers and versions can be chosen (But notice that inarm64
Linux there's only Z3 4.12.4 available.)Furthermore, I have updated HolSmt's code to allow environment variables
HOL4_Z3_EXECUTABLE
, etc. to be set to "" (empty string) to disable the related solvers. Previously HolSmt only detects the existence of these environment variables and call them as executions even the file name is empty. The changes here will make the Docker image design easier for switchable SMT solvers.Chun