Z3
- Android app
- Yes
- Free plan
- Yes
- Runs on
- Android, api, Linux, Mac, self-hosted, Web, Windows

Summary
Z3 is a theorem prover and satisfiability modulo theories (SMT) solver used in software verification and analysis. Its default input format is SMT-LIB2, and it supports SMT-LIB. The project documents language 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 it in a browser. The software is MIT licensed, with downloads and source code available at no charge. Z3 supports proof artifacts and counterexamples. Listed input languages include SMT-LIB2, C, C++, .NET, Java, Python, Rust, OCaml, Julia, JavaScript, TypeScript, Smalltalk, and Go. Python is required for builds, and 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.
Who it is for
Z3 suits developers and researchers working on theorem proving, software verification, or analysis who can use its documented formats and interfaces.
What is good
- Free MIT-licensed source code and downloads.
- Supports SMT-LIB and SMT-LIB2 input.
- Offers APIs or bindings across several languages.
- Supports proof artifacts and counterexamples.
What to know first
- Python is required to build Z3.
- Some language APIs need additional toolchains.
Verdict
Z3 provides a free theorem-proving and SMT-solving option for verification and analysis work. Building it or some language APIs requires the specified toolchains.
Z3 plans and pricing
All plansCompared on formal verification tools
- Free plan
- Yesgithub.com
- Supported formalisms
- theorem-provinggithub.com
- Counterexamples
- Yesgithub.com
- Proof artifacts
- Yesgithub.com
- Input languages
- SMT-LIB2, C, C++, .NET, Java, Python, Rust, OCaml, Julia, JavaScript, TypeScript, Smalltalk, Gogithub.com
- Deployment
- self-hostedgithub.com
Facts
- Purpose
- Z3 is a theorem prover and satisfiability modulo theories (SMT) solver.github.com · 2 Oct 2026
- SMT-LIB
- Z3 supports the SMTLIB format.github.com · 2 Oct 2026
- Applications
- Z3 is used in software verification and analysis applications.microsoft.com · 2 Oct 2026
- Input
- SMTLIB2 is Z3’s default input format.github.com · 2 Oct 2026
- Build systems
- Z3 can be built using CMake, vcpkg, or Bazel.github.com · 2 Oct 2026
- Language interfaces
- The repository documents bindings or APIs for C, C++, .NET, Java, Go, OCaml, Python, Julia, and JavaScript/TypeScript.github.com · 2 Oct 2026
- Browser use
- The project wiki links to a page for trying Z3 in a browser.github.com · 2 Oct 2026
- Platforms
- The project wiki lists Windows, OSX, Linux (Ubuntu and Debian), and FreeBSD as supported platforms.github.com · 2 Oct 2026
- Downloads
- The repository links to pre-built binaries for stable and nightly releases.github.com · 2 Oct 2026
- License
- The repository states that Z3 is licensed under the MIT license.github.com · 2 Oct 2026
- Security
- The README says MSVC builds enable Control Flow Guard and Address Space Layout Randomization by default.github.com · 2 Oct 2026
- Dependencies
- Python is required to build Z3, and additional toolchains are needed to build Java, .NET, OCaml, and Julia APIs.github.com · 2 Oct 2026
- Support
- The project wiki says to contact the creator of an external binding package for support issues.github.com · 2 Oct 2026
Best Z3 alternatives
See all 20Where it ranks on Everything Xiaomi
Is Z3 yours?
Claim it for free: prove the domain, then correct facts, plans and screenshots. An editor reviews every change.
Sources
- github.com/Z3Prover/z3· checked 2 Oct 2026
- github.com/Z3Prover/z3/wiki· checked 2 Oct 2026
- microsoft.com/en-us/research/publication/z3-an-effici· checked 2 Oct 2026

