Z3

B
B tier on Formal Verification ToolsScore 7.3 · #3 of 33
Android app
Yes
Free plan
Yes
Runs on
Android, api, Linux, Mac, self-hosted, Web, Windows
github.com
The Z3 homepage

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 plans
Z3 (MIT licensed) Free MIT-licensed downloads and source code github.com · 2 Oct 2026

Compared 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 20

Where 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