# Install z3 with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, scoop, zypper

High-performance theorem prover. Version 4.16.0 via Homebrew; verified 2026-06-26.

## Install

```sh
sudo av install brew:z3
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install z3
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install z3
```

  Evidence: MacPorts ports tree: math/z3/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add py3-z3
```

  Evidence: Alpine Linux edge package indexes: py3-z3 from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install libz3-4
```

  Evidence: Debian stable package indexes: libz3-4 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install java-z3
```

  Evidence: Fedora Rawhide package metadata: java-z3 from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#z3
```

  Evidence: nixpkgs package indexes: pkgs/by-name/z3/z3/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S z3
```

  Evidence: Arch Linux sync databases: z3 from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install libz3-4_15
```

  Evidence: openSUSE Tumbleweed package metadata: libz3-4_15 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install main/z3
```

  Evidence: Scoop official bucket manifest trees: bucket/z3.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:z3
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/z3>
- **Version:** 4.16.0
- **Source summary:** High-performance theorem prover
- **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
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- qprofdiff (cli)
- z3 (cli)
- qprofdiff (alias)
- z3 (alias)

## Build dependencies

- cmake
- python@3.14

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 4.16.0
- Package-manager updated: 2026-06-26
- Local data: ok
- Upstream repository: https://github.com/Z3Prover/z3
- Upstream latest detected: z3-4.16.0 (current)
## Project history and usage

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.

### Project history

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.

### Adoption history

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.

### How it is used

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.

### Why package nerds care

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.

### Timeline

- 2006: Microsoft Research begins work on Z3, motivated by program verification and dynamic symbolic execution.
- 2008-03: The TACAS paper 'Z3: an efficient SMT solver' is published.
- 2015-03-26: The public Z3Prover/z3 GitHub repository is created.
- 2015-06-15: Microsoft Research reports Z3 receiving the ACM SIGPLAN Programming Languages Software Award.
- 2018: Microsoft Research material records Z3 receiving an ETAPS Test of Time Award.
- 2019-10-16: Microsoft Research publishes a retrospective on Z3's model-based SMT techniques and broad adoption.
- 2026-02-19: GitHub releases list z3-4.16.0 as a stable release.
- 2026-07-02: GitHub metadata shows active development on the day of this enrichment run.

### Related projects

- SMT-LIB is the standard input language and benchmark ecosystem used by Z3 and other SMT solvers.
- Dafny is a verification-oriented programming language named by Microsoft Research as one of the program-verification contexts around Z3.
- SPACER is Z3's constrained-Horn-clause/model-checking engine lineage discussed in Microsoft Research material.
- Boogie, Pex, fuzzing systems, network-verification tools, and smart-contract analyzers are adjacent users or tool families in Z3's adoption story.

### Sources

- <https://api.github.com/repos/Z3Prover/z3>
- <https://api.github.com/repos/Z3Prover/z3/releases>
- <https://github.com/Z3Prover/z3>
- <https://microsoft.github.io/z3guide/docs/logic/intro/>
- <https://raw.githubusercontent.com/Z3Prover/z3/master/README.md>
- <https://www.microsoft.com/en-us/research/blog/the-inner-magic-behind-the-z3-theorem-prover/>
- <https://www.microsoft.com/en-us/research/people/nbjorner/>
- <https://www.microsoft.com/en-us/research/project/z3-3/news-and-awards/>
- <https://www.microsoft.com/en-us/research/publication/z3-an-efficient-smt-solver/>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **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:** head, stable

## Other Package-Manager Records

- Debian apt - libz3-4 - 4.13.3-1: normalized package name match | Debian stable package indexes: libz3-4 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | theorem prover from Microsoft Research - runtime libraries | https://github.com/Z3Prover/z3
- Debian apt - libz3-dev - 4.13.3-1: normalized package name match | Debian stable package indexes: libz3-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | theorem prover from Microsoft Research - development files | https://github.com/Z3Prover/z3
- Debian apt - libz3-java - 4.13.3-1: normalized package name match | Debian stable package indexes: libz3-java from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | theorem prover from Microsoft Research - java bindings | https://github.com/Z3Prover/z3
- Debian apt - libz3-jni - 4.13.3-1: normalized package name match | Debian stable package indexes: libz3-jni from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | theorem prover from Microsoft Research - JNI library | https://github.com/Z3Prover/z3
- Debian apt - python3-z3 - 4.13.3-1: normalized package name match | Debian stable package indexes: python3-z3 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | theorem prover from Microsoft Research - Python 3 bindings | https://github.com/Z3Prover/z3
- Debian apt - z3 - 4.13.3-1: normalized package name match | Debian stable package indexes: z3 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | theorem prover from Microsoft Research | https://github.com/Z3Prover/z3
- Nix - z3: normalized package name match | nixpkgs package indexes: pkgs/by-name/z3/z3/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libz3-4 - 4.8.12-3.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: libz3-4 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | theorem prover from Microsoft Research - runtime libraries | https://github.com/Z3Prover/z3
- Ubuntu apt - libz3-dev - 4.8.12-3.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: libz3-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | theorem prover from Microsoft Research - development files | https://github.com/Z3Prover/z3
- Ubuntu apt - libz3-java - 4.8.12-3.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: libz3-java from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | theorem prover from Microsoft Research - java bindings | https://github.com/Z3Prover/z3
- Ubuntu apt - libz3-jni - 4.8.12-3.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: libz3-jni from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | theorem prover from Microsoft Research - JNI library | https://github.com/Z3Prover/z3
- Ubuntu apt - python3-z3 - 4.8.12-3.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: python3-z3 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | theorem prover from Microsoft Research - Python 3 bindings | https://github.com/Z3Prover/z3
- Ubuntu apt - z3 - 4.8.12-3.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: z3 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | theorem prover from Microsoft Research | https://github.com/Z3Prover/z3
- apk - py3-z3 - 4.16.0-r1: normalized package name match | Alpine Linux edge package indexes: py3-z3 from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Python bindings for z3 | https://github.com/Z3Prover/z3
- apk - z3 - 4.16.0-r1: normalized package name match | Alpine Linux edge package indexes: z3 from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Theorem prover from Microsoft Research | https://github.com/Z3Prover/z3
- apk - z3-dev - 4.16.0-r1: normalized package name match | Alpine Linux edge package indexes: z3-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Theorem prover from Microsoft Research (development files) | https://github.com/Z3Prover/z3


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Scientific computing packages](https://www.automicvault.com/pkg/scientific-computing-tools/) - Matched scientific computing metadata.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Build dependency declared by Homebrew.
- [alive2](https://www.automicvault.com/pkg/brew/alive2/) - Popular package that depends on this formula.
- [civl](https://www.automicvault.com/pkg/brew/civl/) - Popular package that depends on this formula.
- [cryptol](https://www.automicvault.com/pkg/brew/cryptol/) - Popular package that depends on this formula.
- [dafny](https://www.automicvault.com/pkg/brew/dafny/) - Popular package that depends on this formula.
- [klee](https://www.automicvault.com/pkg/brew/klee/) - Popular package that depends on this formula.
- [llvm](https://www.automicvault.com/pkg/brew/llvm/) - Popular package that depends on this formula.
- [solidity](https://www.automicvault.com/pkg/brew/solidity/) - Popular package that depends on this formula.
- [z](https://www.automicvault.com/pkg/brew/z/) - Package name indicates the same formula family.
- [acl2](https://www.automicvault.com/pkg/brew/acl2/) - Shares av.db curated category or tags: cli, formal-methods, science, theorem-prover.
- [depqbf](https://www.automicvault.com/pkg/brew/depqbf/) - Shares av.db curated category or tags: cli, formal-methods, science, solver.
- [yices2](https://www.automicvault.com/pkg/brew/yices2/) - Shares av.db curated category or tags: cli, formal-methods, science, smt-solver.
- [ltl2ba](https://www.automicvault.com/pkg/brew/ltl2ba/) - Shares av.db curated category or tags: cli, formal-methods, science.
- [ott](https://www.automicvault.com/pkg/brew/ott/) - Shares av.db curated category or tags: cli, formal-methods, science.
- [rocq](https://www.automicvault.com/pkg/brew/rocq/) - Shares av.db curated category or tags: cli, formal-methods, science, theorem-prover.
- [cadical](https://www.automicvault.com/pkg/brew/cadical/) - Shares av.db curated category or tags: cli, formal-methods, science, solver.
- [eprover](https://www.automicvault.com/pkg/brew/eprover/) - Shares av.db curated category or tags: cli, formal-methods, science, theorem-prover.
- [kissat](https://www.automicvault.com/pkg/brew/kissat/) - Local package facts share a topical domain. Shared terms: cli, formal, formal-methods, methods, science.

## Combined YAML source

View the package source record on GitHub. [combined/z3.yml](https://github.com/automic-vault/db/blob/main/combined/z3.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
