Skip to content
SPECIFICTION
Get listed

Apalache vs CBMC

Apalache

apalache-mc.org

CBMC

diffblue.github.io

Side by side

FigureApalacheCBMC
Price from—Free
Free plan—Yes
Free trial——
Open source——
Windows—Yes
macOS—Yes
LinuxYesYes
APIYes—
Self-hostedYesYes
Plans published01
Spec score · Formal Verification Tools7.7 (#17)8.1 (#8)
LicenseThe repository identifies Apalache as Apache-2.0 licensed.The repository identifies CBMC as licensed under the 4-clause BSD license.
PurposeApalache is a symbolic model checker for TLA+ specifications.CBMC is a bounded model checker for C and C++ programs that explores possible execution paths and checks assertions.
Related toolsSolarkraft and Atomkraft use Apalache as a backend model checker.The user guide names CBMC Viewer and CBMC Starter Kit as third-party tools for summarizing findings and adding verification to a project.
Solver supportThe documentation lists Z3 as the default SMT solver and CVC5 as experimental.CBMC supports an incremental SMT2 backend that can use an SMT-LIB 2.6 compliant solver, with examples for Z3 and CVC5.
SupportThe site names Igor Konnov as the contact person.The repository asks users encountering problems to file a bug report as a GitHub issue.

Plans

Apalache

No plans published.

Apalache pricing →

CBMC

  • CBMCFree

CBMC pricing →

In their own words

Apalache

Apalache has no write-up on Specifiction yet; its figures are above.

Visit apalache-mc.org

CBMC

CBMC is a bounded model checker for C and C++ programs. It explores execution paths to check assertions, including array bounds, pointer safety, exceptions, and some undefined behavior such as signed integer overflow. Its analysis unwinds loops before sending the resulting equation to a decision procedure, and inputs may need a bounded size. The repository lists C89, C99, most of C11, C17, C23, GCC and Visual Studio extensions, and SystemC through Scoot; the listed input languages also include Java bytecode. CBMC supports contracts and can produce counterexamples. Its incremental SMT2 backend works with SMT-LIB 2.6-compliant solvers, with Z3 and CVC5 as examples. Distribution options include Homebrew instructions for macOS, Ubuntu DEB packages, Windows MSI installers, and Docker images. goto-cc can replace gcc or cl.exe in Makefiles to collect project models. The guide discusses routine development and continuous integration use. CBMC is free under the 4-clause BSD license.

Visit diffblue.github.io