macOS
brew install esbmclocal Homebrew formula metadata
brew
Efficient SMT-based context-bounded model checker for C, C++, and Python. Version 8.4 via Homebrew; verified 2026-07-11.
install
brew install esbmclocal Homebrew formula metadata
overview
Efficient SMT-based context-bounded model checker for C, C++, and Python
history
ESBMC is the Efficient SMT-Based Context-Bounded Model Checker, a command-line formal-verification tool for detecting runtime errors and checking assertions in C, C++, CUDA, CHERI, Kotlin, Python, Rust, Solidity, and related programs.
The project shares ancestry with CBMC and the official repository describes ESBMC as a fork of CBMC v2.9 from 2008. It evolved into an SMT-centered bounded model checker with Clang/LLVM frontends, multiple SMT solver backends, k-induction, concurrency support, and operational models for real-world libraries.
The official project material tracks later expansion into Python, Solidity, Kotlin/Jimple, CHERI, and Rust-oriented verification work, with selected publications covering ESBMC 5.0 in 2018, CHERI and Kotlin work in 2022, and ESBMC 7.4 in 2024.
ESBMC is used in research, education, software security, embedded and firmware verification, smart-contract auditing, and competition settings such as SV-COMP and Test-COMP. The official site notes recent industrial and research deployments involving Arm Realm Management Monitor verification, Ethereum-related checking, Arduino firmware, and ESBMC-AI workflows.
For package-manager users, ESBMC appears as the Homebrew formula `esbmc`, with bottles for macOS and Linux and build dependencies wired to LLVM, Bitwuzla, Z3, Boost, Python, and related solver/compiler libraries.
Typical use is a direct CLI invocation such as `esbmc file.c --floatbv --k-induction`, `esbmc file.c --memory-leak-check`, `esbmc file.c --context-bound 2`, or `esbmc main.py`, producing verification success, verification failure, or counterexample output.
ESBMC supports TOML configuration through `ESBMC_CONFIG_FILE`; if that environment variable is not set, official docs state that it checks `%userprofile%\esbmc.toml` on Windows and `~/.config/esbmc.toml` on UNIX.
ESBMC is interesting to package maintainers because it is not a small single-language CLI: Homebrew builds it against compiler infrastructure and solver stacks, including LLVM/Clang, Bitwuzla, Z3, Boost, GMP, Python, and yaml-cpp. That makes it a useful example of packaging a research-grade formal-methods tool with heavy native dependencies.
It also matters in CLI/package culture because it turns formal verification into a local executable workflow: users install `esbmc`, point it at source files, and choose solver and checking options without running a separate service.
security posture
No matching local secret-handling manifest was found for esbmc. Nucleus package metadata is still published here so future coverage has a stable package URL.
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
local files
These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.
Config paths the tool may read or write during local use.
~/.config/esbmc.toml%userprofile%\esbmc.tomlexecutables
| Command | Kind | Exposure | Note |
|---|---|---|---|
esbmc | 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/esbmc/esbmc
install metadata
| Package key | brew:esbmc |
|---|---|
| Version | 8.4 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/esbmc |
| Homepage | https://esbmc.github.io/ |
| Repository | https://github.com/esbmc/esbmc |
| Upstream docs | https://esbmc.github.io/docs |
| License | Apache-2.0 |
| Source archive | https://github.com/esbmc/esbmc/archive/refs/tags/v8.4.tar.gz |
| Last updated | 2026-07-11T23:23:10+02:00 |
| Pulse | updated |
| Dependencies | bitwuzla, boost, fmt, gmp, llvm, python@3.14, yaml-cpp, z3 |
| Build dependencies | bison, cmake, immer, nlohmann-json, pkgconf |
| 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 | esbmc |
| 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 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.