Litcius/Paper detail

CPV: A Circuit-Based Program Verifier

Po-Chun Chien, Nian-Ze Lee

2024Lecture notes in computer science12 citationsDOIOpen Access PDF

Abstract

Abstract We submit to SV-COMP 2024 CPV , a circuit-based software verifier for C programs. CPV utilizes sequential circuits as its intermediate representation and invokes hardware model checkers to analyze the reachability safety of C programs. As the frontend, it uses Kratos2 , a recently proposed verification tool, to translate a C program to a sequential circuit. As the backend, state-of-the-art hardware model checkers ABC and AVR are employed to verify the translated circuits. We configure the hardware model checkers to run various analyses, including IC3/PDR, interpolation-based model checking, and $$k$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mi>k</mml:mi></mml:math> -induction. Information discovered by hardware model checkers is represented as verification witnesses. In the competition, CPV achieved comparable performance against participants whose intermediate representations are based on control-flow graphs. In the category ReachSafety , it outperformed several mature software verifiers as a first-year participant. CPV manifests the feasibility of sequential circuits as an alternative intermediate representation for program analysis and enables head-to-head algorithmic comparison between hardware and software verification.

Topics & Concepts

Computer scienceProgramming languageParallel computingEmbedded systemOperating systemComputer hardwareEmbedded Systems Design TechniquesFormal Methods in VerificationRadiation Effects in Electronics
CPV: A Circuit-Based Program Verifier | Litcius