F* vs Z3
F*
fstar-lang.orgZ3
github.comSide by side
| Figure | F* | Z3 |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | — | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Android | — | Yes |
| API | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Formal Verification Tools | 8.0 (#11) | 7.4 (#26) |
| License | F* is distributed under the Apache 2.0 license. | The repository states that Z3 is licensed under the MIT license. |
| Purpose | F* is a general-purpose proof-oriented programming language for purely functional and effectful programming. | Z3 is a theorem prover and satisfiability modulo theories (SMT) solver. |
Plans
In their own words
Z3
Z3 is a theorem prover and satisfiability modulo theories (SMT) solver used in software verification and analysis. SMT-LIB2 is its default input format, and it supports the SMT-LIB format. The project documents bindings or APIs for C, C++, .NET, Java, Go, OCaml, Python, Julia, and JavaScript/TypeScript. Z3 can be built with CMake, vcpkg, or Bazel, and the repository links to pre-built binaries for stable and nightly releases. A project wiki also links to a page for trying Z3 in a browser. It supports proof artifacts and counterexamples, and listed input languages include SMT-LIB2, Rust, Smalltalk, and several of the languages with documented APIs. Z3 is MIT licensed, with downloads and source code available at no charge. Python is required to build it; additional toolchains are needed for Java, .NET, OCaml, and Julia APIs. The README says MSVC builds enable Control Flow Guard and Address Space Layout Randomization by default.