Skip to content
SPECIFICTION
Get listed

CBMC vs HOL4

CBMC

diffblue.github.io

HOL4

hol-theorem-prover.org

Side by side

FigureCBMCHOL4
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WindowsYesYes
macOSYesYes
LinuxYesYes
Self-hostedYesYes
Plans published11
Spec score · Formal Verification Tools8.1 (#8)8.1 (#9)
LicenseThe repository identifies CBMC as licensed under the 4-clause BSD license.HOL is free software released under the Modified (3-clause) BSD licence.
PurposeCBMC is a bounded model checker for C and C++ programs that explores possible execution paths and checks assertions.HOL4 is a proof assistant for higher-order logic and a programming environment for proving theorems and implementing proof tools.
SupportThe repository asks users encountering problems to file a bug report as a GitHub issue.The community offers help through a mailing list and Zulip chat, while bug reports and feature suggestions go to GitHub issues.

Plans

CBMC

  • CBMCFree

CBMC pricing →

HOL4

  • HOL4Free

HOL4 pricing →

In their own words

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

HOL4

HOL4 is a free, interactive proof assistant for higher-order logic, with a programming environment for proving theorems and building proof tools. It supports work that combines deduction, execution, and property checking. Built-in decision procedures and theorem provers can establish many simple theorems, and an oracle mechanism can connect to external programs such as SMT and BDD engines. HOL4 supports higher-order logic and Standard ML, and can produce proof artifacts and counterexamples. It is self-hosted and listed for Linux, macOS, and Windows. A Standard ML compiler is required, with Poly/ML recommended; Moscow ML and MLTon are also supported for building tool executables. Windows installation can use Cygwin or the Windows Linux subsystem with Poly/ML. Moscow ML is another option, but the Windows guide notes that it is slower, lacks some Poly/ML libraries, and cannot run concurrent Holmake builds. HOL includes Emacs modes for syntax display and session interaction, and the installation guide links to Vim plugin documentation. Online materials include a tutorial, quick reference, FAQ, manuals, and generated indexes.

Visit hol-theorem-prover.org