Automic VaultAutomic Vault

brew

Install esbmc with Homebrew

Efficient SMT-based context-bounded model checker for C, C++, and Python. Version 8.4 via Homebrew; verified 2026-07-11.

install

Additional install commands

macOS

Homebrewverified ยท 100%
brew install esbmc

local Homebrew formula metadata

overview

Package summary

Efficient SMT-based context-bounded model checker for C, C++, and Python

Commands and aliases

  • esbmc

history

Project history and usage

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.

Project history

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.

Adoption history

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.

How it is used

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.

Why package nerds care

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.

Timeline

  • 2008: ESBMC forked from CBMC v2.9, according to the official repository README.
  • 2018: ESBMC 5.0 was published as an industrial-strength C model checker in the official selected-publications list.
  • 2022: Official publications and application notes highlight CHERI, Kotlin/Jimple, Solidity, and modern C++ verification work.
  • 2024: ESBMC 7.4 was cited by the project as the recommended TACAS competition paper for ESBMC 7.4 and later.
  • 2025-2026: Official site reports ESBMC-kind SV-COMP ReachSafety placements and FuSeBMC/ESBMC Test-COMP overall wins across 2023-2026.

Related projects

  • CBMC is the direct ancestor identified by the official repository; ESBMC differs by emphasizing SMT-based encodings, Clang/LLVM frontends, solver flexibility, k-induction, and broader language frontends.
  • Related ESBMC ecosystem projects include ESBMC-Web, the VS Code extension, ESBMC-AI, FuSeBMC for test generation, and official integrations around GitHub Actions and solver backends.

security posture

No protected-tool coverage found yet

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.

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Installs with 8 runtime dependencies.
  • Build metadata lists 5 build dependencies.

Recommended review

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

local files

Configuration and credential file locations

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.

Configuration files

Config paths the tool may read or write during local use.

Unix
~/.config/esbmc.toml
Windows
%userprofile%\esbmc.toml

executables

Installed executables

CommandKindExposureNote
esbmccliglobal executable

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-07-25
manager version8.4
manager updated2026-07-11
local dataok
upstreamcurrent
latest detectedv8.4

https://github.com/esbmc/esbmc

  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:esbmc
Version8.4
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/esbmc
Homepagehttps://esbmc.github.io/
Repositoryhttps://github.com/esbmc/esbmc
Upstream docshttps://esbmc.github.io/docs
LicenseApache-2.0
Source archivehttps://github.com/esbmc/esbmc/archive/refs/tags/v8.4.tar.gz
Last updated2026-07-11T23:23:10+02:00
Pulseupdated
Dependenciesbitwuzla, boost, fmt, gmp, llvm, python@3.14, yaml-cpp, z3
Build dependenciesbison, cmake, immer, nlohmann-json, pkgconf
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameesbmc
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

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.

Used sources

  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated configuration and credential file locations
  • curated package history
  • package relationship graph
  • package version freshness
  • package-page enrichment