LLM-Generated Invariants for Bounded Model Checking Without Loop Unrolling
We investigate a modification of the classical Bounded Model Checking (BMC) procedure that does not handle loops through unrolling but via modifications to the control flow graph (CFG). A portion of the CFG representing a loop is replaced by a node asserting invariants of the loop. We generate these invariants using Large Language Models (LLMs) and use a first-order theorem prover to ensure the correctness of the generated statements. We thus transform programs to loop-free variants in a sound manner. Our experimental results show that the resulting tool, ESBMC ibmc, is competitive with state-of-the-art formal verifiers for programs with unbounded loops, significantly improving the number of programs verified by the industrial-strength software verifier ESBMC and verifying programs that state-of-the-art software verifiers such as SeaHorn and VeriAbs could not.
Authors
- Ahmed Bhayat (ORCID: https://orcid.org/0000-0002-1343-5084)
- Giles Reger (ORCID: https://orcid.org/0000-0001-6353-952X)
- Lucas C. Cordeiro (ORCID: https://orcid.org/0000-0002-6235-4272)
- Muhammad A. A. Pirzada
Institutions
- University of Manchester (GB)
Publication Details
- Published
- 2024-10-18
- DOI
- https://doi.org/10.1145/3691620.3695512
- Citations
- 5
- Primary Topic
- Formal Methods in Verification
- Type
- article
- Field-Weighted Citation Impact
- 1.81
Funders
- Engineering and Physical Sciences Research Council