π€ AI Summary
This work addresses the challenge that existing C program verification tools struggle to leverage mature hardware model checking backends, limiting both algorithmic generality and efficiency. To bridge this gap, the authors propose a systematic encoding of C programs with assertions into transition systems in the standard BTOR2 format: control flow is modeled via a program counter, data and memory are represented using bit-vectors and arrays, and assumptions and assertions are translated into BTOR2 constraints and bad-state properties. This approach constitutes the first effective integration of software verification with hardware model checking, enabling backend reuse across domains. Evaluated on the SV-COMP ReachSafety benchmark, the method correctly solves 263 tasksβ101 more than CBMCβwith a 75.5% success rate on bit-vector tasks and zero false alarms.
π Abstract
Program verification tools often rely on specific intermediate representations and analysis backends, limiting the reuse of verification algorithms and model checkers across frameworks. In contrast, hardware model checking has developed a mature backend ecosystem, where standard formats such as BTOR2 support reusable algorithms for counterexample search and inductive safety proving. Applying these capabilities to C requires translating assertion-based programs into transition systems that hardware model checkers can directly process.
We present C2Btor, a method for encoding such verification tasks into BTOR2 models. C2Btor uses a program counter to capture control transfers, represents data states and memory objects with bit-vectors and arrays, and maps assumptions and assertion checks into BTOR2 constraints and bad-state properties.
We evaluate C2Btor on SV-COMP C ReachSafety benchmarks and a curated assertion-category benchmark suite, comparing it with representative program verification tools. C2Btor correctly solves 263 tasks, 101 more than CBMC configured with bounded model checking, and is especially effective on bit-vector benchmarks, where it solves 75.5% of the tasks with no wrong verdicts. These results show that the BTOR2 route allows C program verification to benefit from advances in hardware model-checking backends, expanding the available capability for counterexample search, inductive safety proving, and word-level transition-system reasoning.