@@ -61,20 +61,20 @@ Only a few SMT solvers provide support for theories like Arrays, Floating Point,
6161
6262JavaSMT supports several SMT solvers (see [ Getting Started] ( doc/Getting-started.md ) for installation):
6363
64- | SMT Solver | Linux x64 | Linux arm64 | Windows x64 | Windows arm64 | MacOS x64 | MacOS arm64 | Description |
65- | --- | :---:| :---:| :---:| :---:| :---:| :---:| :--- |
66- | [ Bitwuzla] ( https://bitwuzla.github.io/ ) | :heavy_check_mark : ² | :heavy_check_mark : ² | :heavy_check_mark : | | | | a fast solver for bitvector logic |
67- | [ Boolector] ( https://boolector.github.io/ ) | :heavy_check_mark : | | | | | | a fast solver for bitvector logic, misses formula introspection, deprecated |
68- | [ CVC4] ( https://cvc4.github.io/ ) | :heavy_check_mark : | | | | | | |
69- | [ CVC5] ( https://cvc5.github.io/ ) | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | |
70- | [ MathSAT5] ( http://mathsat.fbk.eu/ ) | :heavy_check_mark : ³ | :heavy_check_mark : ³ | :heavy_check_mark : | | [ maybe] ( https://github.com/sosy-lab/java-smt/pull/430 ) ⁴ | | |
71- | [ OpenSMT] ( https://verify.inf.usi.ch/opensmt ) | :heavy_check_mark : ² | :heavy_check_mark : ² | | | | | |
72- | [ OptiMathSAT] ( http://optimathsat.disi.unitn.it/ ) | :heavy_check_mark : | | | | | | based on MathSAT5, with support for optimization queries |
73- | [ Princess] ( http://www.philipp.ruemmer.org/princess.shtml ) | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | Java-based SMT solver |
74- | [ SMTInterpol] ( https://ultimate.informatik.uni-freiburg.de/smtinterpol/ ) | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | Java-based SMT solver |
75- | [ Yices2] ( https://yices.csl.sri.com/ ) | :heavy_check_mark : | | [ maybe ] ( https://github.com/sosy-lab/java-smt/pull/215 ) | | [ maybe] ( https://github.com/sosy-lab/java-smt/pull/400 ) ⁴ | | |
76- | [ Z3] ( https://github.com/Z3Prover/z3 ) | :heavy_check_mark : ³ | :heavy_check_mark : ³ | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | mature and well-known solver |
77- | [ Z3_WITH_INTERPOLATION] ( https://github.com/Z3Prover/z3 ) | :heavy_check_mark : | :heavy_check_mark : | | | | | an older version of Z3 that still provides interpolation support |
64+ | SMT Solver | Linux x64 | Linux arm64 | Windows x64 | Windows arm64 | MacOS x64 | MacOS arm64 | Description |
65+ | ------------------------------------------------------------------------- | :------------------- :| :------------------- :| :------------------ :| :------------------ :| :------------------------------------------------------- :| :------------------ :| :---------------------------------------------------------------------------- |
66+ | [ Bitwuzla] ( https://bitwuzla.github.io/ ) | :heavy_check_mark : ² | :heavy_check_mark : ² | :heavy_check_mark : | | | | a fast solver for bitvector logic |
67+ | [ Boolector] ( https://boolector.github.io/ ) | :heavy_check_mark : | | | | | | a fast solver for bitvector logic, misses formula introspection, deprecated |
68+ | [ CVC4] ( https://cvc4.github.io/ ) | :heavy_check_mark : | | | | | | |
69+ | [ CVC5] ( https://cvc5.github.io/ ) | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | |
70+ | [ MathSAT5] ( http://mathsat.fbk.eu/ ) | :heavy_check_mark : ³ | :heavy_check_mark : ³ | :heavy_check_mark : | | [ maybe] ( https://github.com/sosy-lab/java-smt/pull/430 ) ⁴ | | |
71+ | [ OpenSMT] ( https://verify.inf.usi.ch/opensmt ) | :heavy_check_mark : ² | :heavy_check_mark : ² | | | | | |
72+ | [ OptiMathSAT] ( http://optimathsat.disi.unitn.it/ ) | :heavy_check_mark : | | | | | | based on MathSAT5, with support for optimization queries |
73+ | [ Princess] ( http://www.philipp.ruemmer.org/princess.shtml ) | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | Java-based SMT solver |
74+ | [ SMTInterpol] ( https://ultimate.informatik.uni-freiburg.de/smtinterpol/ ) | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | Java-based SMT solver |
75+ | [ Yices2] ( https://yices.csl.sri.com/ ) | :heavy_check_mark : | | : heavy_check_mark : | | [ maybe] ( https://github.com/sosy-lab/java-smt/pull/400 ) ⁴ | | |
76+ | [ Z3] ( https://github.com/Z3Prover/z3 ) | :heavy_check_mark : ³ | :heavy_check_mark : ³ | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | :heavy_check_mark : | mature and well-known solver |
77+ | [ Z3_WITH_INTERPOLATION] ( https://github.com/Z3Prover/z3 ) | :heavy_check_mark : | :heavy_check_mark : | | | | | an older version of Z3 that still provides interpolation support |
7878
7979We support a reasonable list of operating systems and versions.
8080- Our main target is Linux (mainly Ubuntu or comparable Linux distributions).
@@ -114,19 +114,19 @@ If something specific is missing, please [look for or file an issue](https://git
114114
115115#### Multithreading Support
116116
117- | SMT Solver | Concurrent context usage⁵ | Concurrent prover usage⁶ |
118- | --- | :---:| :---:|
119- | [ Bitwuzla] ( https://bitwuzla.github.io/ ) | :heavy_check_mark : | |
120- | [ Boolector] ( https://boolector.github.io/ ) | :heavy_check_mark : | |
121- | [ CVC4] ( https://cvc4.github.io/ ) | :heavy_check_mark : | :heavy_check_mark : |
122- | [ CVC5] ( https://cvc4.github.io/ ) | : question : | |
123- | [ MathSAT5] ( http://mathsat.fbk.eu/ ) | :heavy_check_mark : | |
124- | [ OpenSMT] ( https://verify.inf.usi.ch/opensmt ) | : question : | |
125- | [ OptiMathSAT] ( http://optimathsat.disi.unitn.it/ ) | :heavy_check_mark : | |
126- | [ Princess] ( http://www.philipp.ruemmer.org/princess.shtml ) | :heavy_check_mark : | |
127- | [ SMTInterpol] ( https://ultimate.informatik.uni-freiburg.de/smtinterpol/ ) | :heavy_check_mark : | |
128- | [ Yices2] ( https://yices.csl.sri.com/ ) | | |
129- | [ Z3] ( https://github.com/Z3Prover/z3 ) | :heavy_check_mark : | |
117+ | SMT Solver | Concurrent context usage⁵ | Concurrent prover usage⁶ |
118+ | ------------------------------------------------------------------------- | :------------------------- :| :--------------------- ---:|
119+ | [ Bitwuzla] ( https://bitwuzla.github.io/ ) | :heavy_check_mark : | |
120+ | [ Boolector] ( https://boolector.github.io/ ) | :heavy_check_mark : | |
121+ | [ CVC4] ( https://cvc4.github.io/ ) | :heavy_check_mark : | :heavy_check_mark : |
122+ | [ CVC5] ( https://cvc4.github.io/ ) | : heavy_check_mark : | |
123+ | [ MathSAT5] ( http://mathsat.fbk.eu/ ) | :heavy_check_mark : | |
124+ | [ OpenSMT] ( https://verify.inf.usi.ch/opensmt ) | : heavy_check_mark : | |
125+ | [ OptiMathSAT] ( http://optimathsat.disi.unitn.it/ ) | :heavy_check_mark : | |
126+ | [ Princess] ( http://www.philipp.ruemmer.org/princess.shtml ) | :heavy_check_mark : | |
127+ | [ SMTInterpol] ( https://ultimate.informatik.uni-freiburg.de/smtinterpol/ ) | :heavy_check_mark : | |
128+ | [ Yices2] ( https://yices.csl.sri.com/ ) | : heavy_check_mark : | |
129+ | [ Z3] ( https://github.com/Z3Prover/z3 ) | :heavy_check_mark : | |
130130
131131Interruption using a [ ShutdownNotifier] [ ] may be used to interrupt a solver from any thread.
132132Formulas are translatable in between contexts/provers/threads using _ FormulaManager.translateFrom()_ .
0 commit comments