Skip to content
SPECIFICTION
Get listed

CBMC vs SeaHorn

CBMC

cprover.org

SeaHorn

seahorn.github.io

Side by side

FigureCBMCSeaHorn
Price fromFree—
Free planYes—
Free trial——
Open source——
WindowsYes—
macOSYesYes
LinuxYesYes
Self-hosted—Yes
Plans published10
Spec score · C and C++ Static Analysis Tools8.7 (#2)7.2 (#17)
LicenseThe maker identifies the license as BSD 4-clause; its terms permit redistribution and use in source or binary form subject to conditions.SeaHorn is distributed under a modified BSD license.
PlatformsThe maker lists Linux, Windows, and macOS availability and provides Linux packages for Debian, Ubuntu, and Fedora.The README includes build instructions for Linux and a separate section on compiling on a Mac.
PurposeCBMC is a bounded model checker for C and C++ programs.SeaHorn is a verification framework for LLVM-based programs.
SupportThe CBMC page directs questions to Daniel Kroening, and the CPROVER manual links to Google Groups support and announcements.The project says it provides support to new users and invites users to report issues when Docker tags become stale.

Plans

CBMC

  • CBMCFree

CBMC pricing →

SeaHorn

No plans published.

SeaHorn pricing →

In their own words

CBMC

CBMC is a bounded model checker for C and C++ programs, available for Linux, macOS, and Windows. It checks memory safety, including array bounds and pointer use, along with several forms of undefined behavior and user-specified assertions. Its language range includes C89, C99, most of C11 and C17, and extensions from GCC, Clang, and Visual Studio. CBMC verifies by unwinding program loops and passing the resulting equation to a decision procedure. It can check C and C++ I/O equivalence with languages such as Verilog, and generate test cases for branch, decision, path, and MC/DC coverage. Listed language features include arrays, dynamic memory, nondeterminism, assumptions, assertions, and selected C++ features such as classes, templates, and STL containers. A MiniSat-based bit-vector solver is included; Boolector, CVC5, and Z3 are supported but must be installed separately. CBMC is free at free under a BSD 4-clause license. The Windows and macOS distributions are command-line tools without a GUI.

Visit cprover.org

SeaHorn

SeaHorn is a free, open-source framework for automated analysis of C and other LLVM-based programs, developed mainly for research in automated verification. It is not an out-of-the-box static analyzer. Its frontend prepares LLVM IR bitcode, and its middle end converts optimized bitcode into verification conditions written as Constrained Horn Clauses. Backend engines use SMT-based model checking, including PDR/IC3 techniques, and CRAB can provide numerical invariants through abstract interpretation. SeaHorn supports abstract interpretation, context-sensitive pointer analysis, bounded model checking, constrained-Horn-clause software model checking, and termination or non-termination analysis. For C programs with assertions, `sea pf` translates the program, generates and solves verification conditions, displays invariants for safe results, or saves a counterexample for violations. `sea inspect` reports program structure and can produce memory or call-graph data. The framework also checks generated clauses for inconsistent code fragments using path coverage. Docker is described as the easiest starting point, with a nightly image refreshed daily. Building requires LLVM, Z3, and Boost, whose exact versions change. SeaHorn runs on Linux, macOS, or self-hosted systems under a modified BSD license.

Visit seahorn.github.io