CBMC: The C Bounded Model Checker
Not on the map. Why?
Abstract (arXiv)
The C Bounded Model Checker (CBMC) demonstrates the violation of assertions in C programs, or proves safety of the assertions under a given bound. CBMC implements a bit-precise translation of an input C program, annotated with assertions and with loops unrolled to a given depth, into a formula. If the formula is satisfiable, then an execution leading to a violated assertion exists. CBMC is one of the most successful software verification tools. Its main advantages are its precision, robustness and simplicity. CBMC is shipped as part of several Linux distributions. It has been used by thousands of software developers to verify real-world software, such as the Linux kernel, and powers commercial software analysis and test generation tools. Table 1 gives an overview of CBMC's features. CBMC is also a versatile tool that can be applied to solve many practical program analysis problems such as bug finding, property checking, test input generation, detection of security vulnerabilities, equivalence checking and program synthesis. This chapter will give an introduction into CBMC, including practical examples and pointers to further reading. Moreover, we give insights about the development of CBMC itself, showing how its performance evolved over the last decade.
Key facts. Cited by 12 papers in the map (data through 7 Oct 2026). First posted on arXiv 5 Feb 2023.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2023: 1; 2024: 1; 2025: 6; 2026: 4.
12 papers.
- 2025Neural Network Verification is a Programming Language Challengecited by 12
- 2025A Contemporary Survey of Large Language Model Assisted Program Analysiscited by 10
- 2025Towards Reliable Code-as-Policies: A Neuro-Symbolic Framework for Embodied Task Planningcited by 10
- 2024Enhancing Automated Loop Invariant Generation for Complex Programs with Large Language Modelscited by 7
- 2023NeuroCodeBench: a plain C neural network benchmark for software verificationcited by 3
- 2025Quality Evaluation of COBOL to Java Code Transformationcited by 2
- 2025Floating-Point Neural Network Verification at the Software Levelcited by 2
- 2025MFH: A Multi-faceted Heuristic Algorithm Selection Approach for Software Verificationcited by 0
- 2026Cycle-Consistent Neural Explanation of Formal Verification Certificatescited by 0
- 2026T-LLM Compiler: Trusted LLM-based Code Optimization and Verification Frameworkcited by 0
- 2026Schwarz: Solver-Aware Agentic Program Verificationcited by 0
- 2026Fewer Assumptions by Design: A Reusable Skill for LLM-Assisted Verus Verificationcited by 0
- 2026Fewer Assumptions by Design: A Reusable Skill for LLM-Assisted Verus Verification28 Sep 2026
- 2026Schwarz: Solver-Aware Agentic Program Verification31 Aug 2026
- 2026T-LLM Compiler: Trusted LLM-based Code Optimization and Verification Framework15 Aug 2026
- 2026Cycle-Consistent Neural Explanation of Formal Verification Certificates23 Jun 2026
- 2025Floating-Point Neural Network Verification at the Software Level27 Oct 2025
- 2025Towards Reliable Code-as-Policies: A Neuro-Symbolic Framework for Embodied Task Planning24 Oct 2025
- 2025Quality Evaluation of COBOL to Java Code Transformation31 Jul 2025
- 2025MFH: A Multi-faceted Heuristic Algorithm Selection Approach for Software Verification28 Mar 2025
- 2025A Contemporary Survey of Large Language Model Assisted Program Analysis5 Feb 2025
- 2025Neural Network Verification is a Programming Language Challenge10 Jan 2025
- 2024Enhancing Automated Loop Invariant Generation for Complex Programs with Large Language Models13 Dec 2024
- 2023NeuroCodeBench: a plain C neural network benchmark for software verification7 Sep 2023