Skip to content
SPECIFICTION
Get listed

CBMC vs PVS

CBMC

diffblue.github.io

PVS

pvs.csl.sri.com

Side by side

FigureCBMCPVS
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WindowsYesYes
macOSYesYes
LinuxYesYes
Self-hostedYes—
Plans published12
Spec score · Formal Verification Tools8.1 (#8)8.3 (#4)
PlatformsThe installation guide points to installation instructions for macOS, Ubuntu, Windows, and Docker.Current listed releases target 64-bit Linux and macOS; the site says Windows can run PVS 7.1 or later through Vagrant and VirtualBox.
PurposeCBMC is a bounded model checker for C and C++ programs that explores possible execution paths and checks assertions.PVS is a verification system combining a specification language, support tools, and a theorem prover.
SupportThe repository asks users encountering problems to file a bug report as a GitHub issue.Support is offered through developer and bug-report email addresses, GitHub issues, Google Groups, and moderated mailing lists.

Plans

CBMC

  • CBMCFree

CBMC pricing →

PVS

  • PVS (noncommercial)Free
  • PVS (commercial)Priced on request

PVS 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

PVS

PVS is a mechanized environment for formal specification and verification, intended for work such as mathematical formalization and hardware or algorithm verification. Its language is based on typed higher-order logic and supports predicate subtypes, dependent types, and parameterized theories. The system combines predefined theories, a type checker, interactive theorem prover, symbolic model checker, utilities, libraries, documentation, and examples. Proof support includes induction, rewriting, simplification with decision procedures, abstraction, and symbolic model checking; command-line tools can re-prove theories and libraries in batch mode. PVS also integrates the Yices SMT solver, supports random testing during proofs, and includes PVSio for evaluation and animation. GNU or X Emacs provides the integrated interface, with Tcl/Tk displays for proof trees and theory hierarchies. It runs on Linux, macOS, and Windows and is self-hosted. Noncommercial use is listed at free. Sources are under GPL, but the Allegro runtime has a separate click-through license, and commercial users need a current PVS license or must contact SRI about licensing.

Visit pvs.csl.sri.com