# Install stp with Homebrew, dnf, MacPorts, Nix, pacman, zypper

Simple Theorem Prover, an efficient SMT solver for bitvectors. Version 2.3.4 via Homebrew; verified 2026-06-14.

## Install

```sh
sudo av install brew:stp
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install stp
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install stp
```

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

### Linux

- dnf (92%):

```sh
sudo dnf install python3-stp
```

  Evidence: Fedora Rawhide package metadata: python3-stp 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#stp
```

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

- pacman (92%):

```sh
sudo pacman -S stp
```

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

- zypper (92%):

```sh
sudo zypper install libstp2_3
```

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

## Package facts

- **Package key:** brew:stp
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/stp>
- **Version:** 2.3.4
- **Source summary:** Simple Theorem Prover, an efficient SMT solver for bitvectors
- **Homepage:** <https://stp.github.io/>
- **Repository:** <https://github.com/stp/stp>
- **Upstream docs:** <https://github.com/stp/stp#readme>
- **License:** MIT
- **Source archive:** <https://github.com/stp/stp/archive/refs/tags/2.3.4.tar.gz>
- **Last updated:** 2026-06-14T15:13:51+02:00
- **Generated:** 2026-07-09T07:20:21+00:00

## Executables

- stp (cli)
- stp_simple (cli)
- stp (alias)
- stp_simple (alias)

## Dependencies

- boost
- cryptominisat
- gmp
- minisat
- python@3.14

## Build dependencies

- bison
- cmake
- flex

## Uses from macOS

- perl

## 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-09
- Package-manager version: 2.3.4
- Package-manager updated: 2026-06-14
- Local data: ok
- Upstream repository: https://github.com/stp/stp
- Upstream latest detected: 2.3.4 (current)
## Project history and usage

STP, the Simple Theorem Prover, is an SMT solver focused on quantifier-free bitvectors and arrays. In CLI and package-manager culture it is a specialist developer tool installed by verification, symbolic-execution, and program-analysis users rather than a general-purpose command.

### Project history

The official AUTHORS file gives STP a begin date of November 2005 and names Vijay Ganesh as primary author and project leader, with early Stanford involvement from David L. Dill and later significant work by Trevor Hansen and others.

The official documentation ties STP to the CAV 2007 paper 'A Decision Procedure for Bit-Vectors and Arrays' and the CCS 2006 EXE paper, placing the project in the symbolic execution and automated bug-finding research lineage.

### Adoption history

STP's README describes constraints from program analysis tools, theorem provers, automated bug finders, cryptographic attack tools, intelligent fuzzers, model checkers, and other applications as its intended workload.

The supplied package facts list STP in Homebrew, Fedora, MacPorts, Nix, Arch, and openSUSE packaging, reflecting its role as an installable solver dependency for research tools and formal-methods stacks.

### How it is used

The README recommends SMT-LIB2 as the common input format and shows direct CLI usage as stp myproblem.smt2. The docs also show library and Python usage, but the package-manager-facing executable remains the solver CLI.

Users care about STP when they need a bitvector/array solver that fits into scripts, test generators, fuzzers, model checkers, or symbolic execution systems.

### Why package nerds care

STP is package-nerd relevant because solver availability is often the difference between a formal-methods tool working out of the box and becoming a hand-built research dependency. A packaged stp executable makes SMT workflows reproducible in CI and on developer machines.

It also illustrates a classic dependency category in developer package managers: a small command-line binary with deep academic roots, used indirectly by larger verification systems.

### Timeline

- 2005-11: STP project begin date in AUTHORS.
- 2006: EXE paper appears in CCS and is listed by STP documentation as a basis for the project.
- 2007-07: Ganesh and Dill bitvector/array decision-procedure paper appears at CAV.
- 2013: AUTHORS file lists Dan Liew and Khoo Yit Phang as current contributors beginning in 2013.

### Related projects

- STP's documentation names SMT-LIB2 as the recommended input format because it is parsed by modern bitvector solvers.
- The project builds against SAT/SMT ecosystem components such as MiniSat, and the README presents Homebrew as one supported installation path.

### Sources

- <https://github.com/stp/stp#readme>
- <https://github.com/stp/stp/blob/master/AUTHORS>
- <https://stp.readthedocs.io/>
- source_facts.package-manager


## 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:** stp
- **Version Scheme:** 0
- **Revision:** 9
- **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

- Nix - stp: normalized package name match | nixpkgs package indexes: pkgs/by-name/st/stp/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- dnf - python3-stp - 2.3.4-16.fc45: normalized package name match | Fedora Rawhide package metadata: python3-stp from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Python 3 interface to STP | https://stp.github.io/
- dnf - stp - 2.3.4-16.fc45: normalized package name match | Fedora Rawhide package metadata: stp from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Constraint solver/decision procedure | https://stp.github.io/
- dnf - stp-devel - 2.3.4-16.fc45: normalized package name match | Fedora Rawhide package metadata: stp-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development files for STP constraint solver/decision procedure | https://stp.github.io/
- pacman - stp - 2.3.4-10: normalized package name match | Arch Linux sync databases: stp from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Simple Theorem Prover | https://stp.github.io/
- zypper - libstp2_3 - 2.3.4+20240918-1.7: normalized package name match | openSUSE Tumbleweed package metadata: libstp2_3 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Constraint Solver | https://github.com/stp/stp/wiki
- zypper - python3-stp - 2.3.4+20240918-1.7: normalized package name match | openSUSE Tumbleweed package metadata: python3-stp from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Python bindings for stp | https://github.com/stp/stp/wiki
- zypper - stp - 2.3.4+20240918-1.7: normalized package name match | openSUSE Tumbleweed package metadata: stp from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Constraint Solver | https://github.com/stp/stp/wiki
- zypper - stp-devel - 2.3.4+20240918-1.7: normalized package name match | openSUSE Tumbleweed package metadata: stp-devel from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Devel files for stp | https://github.com/stp/stp/wiki
- MacPorts - stp: normalized package name match | MacPorts ports tree: math/stp/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## 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.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [cryptominisat](https://www.automicvault.com/pkg/brew/cryptominisat/) - Runtime dependency declared by Homebrew.
- [minisat](https://www.automicvault.com/pkg/brew/minisat/) - Runtime dependency declared by Homebrew.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [bison](https://www.automicvault.com/pkg/brew/bison/) - Build dependency declared by Homebrew.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [flex](https://www.automicvault.com/pkg/brew/flex/) - Build dependency declared by Homebrew.
- [klee](https://www.automicvault.com/pkg/brew/klee/) - Popular package that depends on this formula.
- [proof-general](https://www.automicvault.com/pkg/brew/proof-general/) - Shares av.db curated category or tags: cli, developer-tools, formal-methods.
- [quint](https://www.automicvault.com/pkg/brew/quint/) - Shares av.db curated category or tags: cli, developer-tools, formal-methods.
- [bitwuzla](https://www.automicvault.com/pkg/brew/bitwuzla/) - Shares av.db curated category or tags: cli, developer-tools, formal-methods, smt-solver.
- [dafny](https://www.automicvault.com/pkg/brew/dafny/) - Shares av.db curated category or tags: cli, developer-tools, formal-methods.
- [sby](https://www.automicvault.com/pkg/brew/sby/) - Shares av.db curated category or tags: cli, developer-tools, formal-methods.
- [cryptol](https://www.automicvault.com/pkg/brew/cryptol/) - Shares av.db curated category or tags: cli, developer-tools, formal-methods.
- [gecode](https://www.automicvault.com/pkg/brew/gecode/) - Shares av.db curated category or tags: cli, constraint-solver, developer-tools.

## Combined YAML source

View the package source record on GitHub. [combined/stp.yml](https://github.com/automic-vault/db/blob/main/combined/stp.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
