CBMC vs TLA+
CBMC
diffblue.github.ioTLA+
lamport.azurewebsites.netSide by side
| Figure | CBMC | TLA+ |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · Formal Verification Tools | 8.1 (#8) | 7.5 (#24) |
| License | The repository identifies CBMC as licensed under the 4-clause BSD license. | The TLA+ tools and Toolbox repository is licensed under the MIT License. |
| Platforms | The installation guide points to installation instructions for macOS, Ubuntu, Windows, and Docker. | The Toolbox download instructions cover Windows, Mac OS, and Linux. |
| Purpose | CBMC is a bounded model checker for C and C++ programs that explores possible execution paths and checks assertions. | TLA+ is a high-level language for modeling software and hardware systems, especially concurrent and distributed systems. |
| Support | The repository asks users encountering problems to file a bug report as a GitHub issue. | The TLA+ Foundation directs technical questions and issues to the appropriate GitHub issue tracker. |
Plans
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.
TLA+
TLA+ has no write-up on Specifiction yet; its figures are above.