pkg.sopackage field notes

brew / rank 124

Install z3 with Homebrew

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

install

Additional install commands

macOS

Homebrewverified · 100%
brew install z3

provider-native install command

overview

Package summary

High-performance theorem prover

Commands and aliases

  • qprofdiff
  • z3

history

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

security posture

Risk level: green

narrow executable package without higher-risk signals.

Risk classifier

green risk · low confidence · appliance

Why

  • narrow executable package without higher-risk signals

Signals

  • metadata:no-higher-risk-signals

Install behavior

  • No Homebrew bottle metadata was recorded.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
qprofdiffexecutableindexed executableDiscovered from the local executable index.
z3executableindexed executableDiscovered from the local executable index.

freshness

Version and 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.

page generated2026-08-03
manager version4.16.0
manager updated2026-06-26
local dataunknown
upstreamnot available
latest detectednot detected
  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:z3
Version4.16.0
Package managerHomebrew
Homepagehttps://github.com/Z3Prover/z3
Repositoryhttps://github.com/Z3Prover/z3
Last updated2026-06-26T20:17:02-04:00
Pulseupdated
Bottlenot recorded
Servicenone declared

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Combined YAML source

View the package source record on GitHub.

combined/z3.yml

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • curated package history
  • pkgdb category and tag curation