Side by side
CBMC vs F*
Both stand on formal verification tools. Which one you can start free with, which one lets you read the code, and what each costs once you pay.
Free plan LinuxMacSelf-hosted+1
CBMC provides a free route to bounded verification of C and C++ programs, with multiple distribution options and solver support. Its bounded analysis may require input limits, and the repository distinguishes production-intended releases from develop versions.
Visit CBMC Free plan LinuxMacSelf-hosted+1
Pick F* if your work calls for a proof-oriented language with both automated and interactive theorem proving, or for code that can be extracted to several targets. Consider whether its proof-focused approach fits your project and whether you want to install binaries, use a package-based route, or build from source.
Visit F*The facts
| CBMC | F* | |
|---|---|---|
| Free plan | Yes | Yes |
| Open source | Not published | Not published |
| Runs on | Linux, Mac, Self-hosted, Windows | Linux, Mac, Self-hosted, Windows |
| Lowest paid plan | Free or on request | Free or on request |
| Plans published | 1 | 1 |
| Maker | Not published | Not published |
| Website | diffblue.github.io | fstar-lang.org |
| On formal verification tools | #2 of 34 | #6 of 34 |
CBMC: what it does well
- Checks bounds, pointer safety, and user assertions.
- Can produce counterexamples.
- Supports several C standards and extensions.
- Available through installers and Docker images.
- Licensed under the 4-clause BSD license.
What to know first
- Analysis may require bounded inputs.
- Develop versions are not recommended for production.
- Uses loop unwinding before decision procedures.
F*: what it does well
- Free and open source under Apache 2.0.
- Combines dependent types with SMT and tactic-based proof.
- Compiles to OCaml by default.
- Supports extraction to F#, C, WebAssembly, or assembly.
- Offers binaries and several installation routes.
What to know first
- The language is focused on proof-oriented programming.
- Some output targets require KaRaMeL or Vale.
- Installation from source is an available route.
