macOS
brew install z3local Homebrew formula metadata
sudo port install z3MacPorts ports tree · math/z3/Portfile · source: api.github.com
brew
High-performance theorem prover. Version 4.16.0 via Homebrew; verified 2026-06-26.
install
brew install z3local Homebrew formula metadata
sudo port install z3MacPorts ports tree · math/z3/Portfile · source: api.github.com
sudo apk add py3-z3Alpine Linux edge package indexes · py3-z3 · source: dl-cdn.alpinelinux.org
sudo apt install libz3-4Debian stable package indexes · libz3-4 · source: deb.debian.org
sudo dnf install java-z3Fedora Rawhide package metadata · java-z3 · source: dl.fedoraproject.org
nix profile install nixpkgs#z3nixpkgs package indexes · pkgs/by-name/z3/z3/package.nix · source: api.github.com
sudo pacman -S z3Arch Linux sync databases · z3 · source: geo.mirror.pkgbuild.com
sudo zypper install libz3-4_15openSUSE Tumbleweed package metadata · libz3-4_15 · source: download.opensuse.org
scoop install main/z3Scoop official bucket manifest trees · bucket/z3.json · source: api.github.com
overview
High-performance theorem prover
history
Z3 is Microsoft Research's SMT solver and theorem prover, used to check satisfiability of logical formulas over theories such as arithmetic, bit-vectors, arrays, datatypes, uninterpreted functions, and quantifiers. It is both a command-line solver and a library with bindings across multiple programming languages.
Among package-manager projects, Z3 is unusually important: it is a research artifact, a production verification engine, a dependency for program-analysis tools, and a local CLI that users install when they need real automated reasoning rather than a web service.
Microsoft Research says work on Z3 began in 2006, motivated by program verification and dynamic symbolic execution. The 2008 TACAS paper introduced it as a freely available SMT solver from Microsoft Research for software verification and analysis applications.
Z3's early design emphasized a general interface so that other software analysis tools could embed it. The official Z3 Guide still presents it as a low-level component: best used inside other tools that map their verification or modeling problems into logical formulas.
The public GitHub repository was created in March 2015, matching the period when Z3 moved from a Microsoft Research download into a modern open-source package workflow. The repository README now documents stable and nightly binaries, CMake, Makefile, Visual Studio, Bazel, and vcpkg builds, plus language bindings for C, C++, .NET, Java, Go, OCaml, Python, Julia, WebAssembly/TypeScript/JavaScript, and other interfaces.
Z3 continued to evolve well after its initial verification focus. Microsoft Research's 2019 retrospective highlights model-based SMT techniques, SPACER and Horn-clause solving, quantifier instantiation, and applications that ranged beyond the original program-verification and symbolic-execution use cases.
The 2008 Microsoft Research publication states that Z3 was used in software verification and analysis applications. Later Microsoft Research material names the original design pressures as program verification and dynamic symbolic execution, and points to use cases such as Dafny, automatic test generation, fuzz testing, biological computation analysis, quantum-computing-related problems, Azure firewall reasoning, network verification, and smart-contract analysis.
Z3's academic adoption is unusually visible: Microsoft Research reported more than 5,000 citations since 2008 in its 2019 blog post, and its awards include the 2015 ACM SIGPLAN Programming Languages Software Award, the 2018 ETAPS Test of Time Award, the 2019 Herbrand Award for de Moura and Bjørner's theorem-proving work, and related automated-reasoning honors listed on Nikolaj Bjørner's Microsoft Research page.
Its package adoption is broad because Z3 is useful from both shells and libraries. The input facts for this enrichment run list packages across Homebrew, Debian, Ubuntu, Fedora, Arch, Nix, MacPorts, Scoop, apk, and zypper ecosystems, while the upstream README points to PyPI, npm/WebAssembly, NuGet, vcpkg, and source builds.
At the command line, users typically feed Z3 SMT-LIB2 formulas and ask for satisfiability, models, proofs, or solver diagnostics. The Z3 Guide describes SMT-LIB as a community standard with Lisp-like syntax for tool serialization, and notes that Z3 supports the main SMT-LIB2 theories.
As a library, Z3 is embedded in analyzers, compilers, configuration systems, testing tools, verification systems, model checkers, synthesis tools, and research prototypes. Bindings let programs construct formulas directly instead of writing SMT-LIB strings by hand.
For package users, installing z3 locally gives reproducible solver behavior for build/test pipelines, formal-methods coursework, theorem-proving experiments, smart-contract analyzers, symbolic execution engines, and other tools that shell out to z3 or link libz3.
Z3 is one of the canonical examples of a serious research solver that became ordinary package-manager infrastructure. It is not merely installed by specialists; it sits under higher-level tools that users may not think of as theorem provers at all.
It matters to package nerds because packaging a solver means packaging trust boundaries: binary compatibility for libz3, language bindings, SMT-LIB behavior, release cadence, and reproducible answers across platforms. A small formula can depend on solver version and build flags, so having well-maintained distro and language packages is part of the tool's scientific and engineering value.
Z3 also marks a bridge between academic automated reasoning and everyday developer automation. The same executable can appear in a research paper artifact, a CI verification job, a Python notebook, an Azure/network-analysis pipeline, or a Homebrew install on a laptop.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
qprofdiff | cli | global executable | |
z3 | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/Z3Prover/z3
install metadata
| Package key | brew:z3 |
|---|---|
| Version | 4.16.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/z3 |
| Homepage | https://github.com/Z3Prover/z3 |
| Repository | https://github.com/Z3Prover/z3 |
| Upstream docs | https://github.com/Z3Prover/z3#readme |
| License | MIT |
| Source archive | https://github.com/Z3Prover/z3/archive/refs/tags/z3-4.16.0.tar.gz |
| Last updated | 2026-06-26T20:17:02-04:00 |
| Pulse | updated |
| Build dependencies | cmake, python@3.14 |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | z3 |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
libz3-4 4.13.3-1
theorem prover from Microsoft Research - runtime libraries
https://github.com/Z3Prover/z3
sudo apt install libz3-4libz3-dev 4.13.3-1
theorem prover from Microsoft Research - development files
https://github.com/Z3Prover/z3
sudo apt install libz3-devlibz3-java 4.13.3-1
theorem prover from Microsoft Research - java bindings
https://github.com/Z3Prover/z3
sudo apt install libz3-javalibz3-jni 4.13.3-1
theorem prover from Microsoft Research - JNI library
https://github.com/Z3Prover/z3
sudo apt install libz3-jnipython3-z3 4.13.3-1
theorem prover from Microsoft Research - Python 3 bindings
https://github.com/Z3Prover/z3
sudo apt install python3-z3z3 4.13.3-1
theorem prover from Microsoft Research
https://github.com/Z3Prover/z3
sudo apt install z3z3
nix profile install nixpkgs#z3libz3-4 4.8.12-3.1build1
theorem prover from Microsoft Research - runtime libraries
https://github.com/Z3Prover/z3
sudo apt install libz3-4libz3-dev 4.8.12-3.1build1
theorem prover from Microsoft Research - development files
https://github.com/Z3Prover/z3
sudo apt install libz3-devlibz3-java 4.8.12-3.1build1
theorem prover from Microsoft Research - java bindings
https://github.com/Z3Prover/z3
sudo apt install libz3-javalibz3-jni 4.8.12-3.1build1
theorem prover from Microsoft Research - JNI library
https://github.com/Z3Prover/z3
sudo apt install libz3-jnipython3-z3 4.8.12-3.1build1
theorem prover from Microsoft Research - Python 3 bindings
https://github.com/Z3Prover/z3
sudo apt install python3-z3z3 4.8.12-3.1build1
theorem prover from Microsoft Research
https://github.com/Z3Prover/z3
sudo apt install z3py3-z3 4.16.0-r1
Python bindings for z3
https://github.com/Z3Prover/z3
sudo apk add py3-z3z3 4.16.0-r1
Theorem prover from Microsoft Research
https://github.com/Z3Prover/z3
sudo apk add z3z3-dev 4.16.0-r1
Theorem prover from Microsoft Research (development files)
https://github.com/Z3Prover/z3
sudo apk add z3-devsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.