GaloisInc / what4-solvers

Multi-platform binary creation for solvers of the versions most suitable for use with What4

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

what4-solvers

Multi-platform binary creation for solvers of the versions most suitable for use with What4, as well as tools built on top of What4, such as Cryptol, Crux, and SAW.

Binary distributions can be found at the releases page. Currently, what4-solvers offers the following solver versions:

Built for the following operating systems:

  • macOS Monterey 12 (x86-64)
  • macOS Sonoma 14 (arm64)
  • Ubuntu 20.04 (x86-64)
  • Ubuntu 22.04 (x86-64)
  • Windows Server 2019 (x86-64)

All of the binary distributions are built from CI.

FAQ

Why build for multiple Ubuntu versions?

We attempt to offer somewhat broad coverage of different Linux versions. To that end, we build each solver on the two most recent Ubuntu LTS releases. This ensures relatively complete coverage of different shared library dependencies (e.g., different glibc versions).

Why offer multiple Z3 versions?

We use Z3 as the default SMT solver in many different projects' CI, including the CI for Cryptol and SAW. Unfortunately, certain Z3 versions have been known to non-deterministically fail or time out on certain SMT queries. See, for example, this Cryptol issue regarding Z3 4.8.10 and this SAW issue regarding Z3 4.8.14. As a consequence, it is very difficult to find a single Z3 version that works reliably across all of our tools' CI.

As a compromise, we offer multiple Z3 versions so that tools can pick one that is known to work well for their particular needs. If we successfully identify a later version of Z3 that is known to work reliably across all CI configurations, we may reconsider this choice.

About

Multi-platform binary creation for solvers of the versions most suitable for use with What4


Languages

Language:SMT 61.0%Language:CMake 39.0%