Supporting Formal Software Verification with Large Language Models: An Experimental Study

Weiqi Wang*, Marie Farrell, Lucas Cordeiro, Liping Zhao

*Corresponding author for this work

Research output: Chapter in Book/Conference proceedingConference contributionpeer-review

Abstract

Formal methods have been employed for requirements verification for a long time. However, it is difficult to automatically derive properties from natural language requirements. SpecVerify addresses this challenge by integrating large language models (LLMs) with formal verification tools, providing a more flexible mechanism for expressing requirements. This framework combines Claude 3.5 Sonnet with the ESBMC verifier to form an automated workflow. Evaluated on nine cyber-physical systems from Lockheed Martin, SpecVerify achieves 46.5% verification accuracy, comparable to NASA’s CoCoSim, but with lower false positives. Our framework formulates assertions that extend beyond the expressive power of LTL and identifies falsifiable cases that are missed by more traditional methods. Counterexample analysis reveals CoCoSim’s limitations stemming from model connection errors and numerical approximation issues. While SpecVerify advances verification automation, our comparative study of Claude, ChatGPT, and Llama shows that high-quality requirements documentation and human monitoring remain critical, as models occasionally misinterpret specifications. Our results demonstrate that LLMs can significantly reduce the barriers to formal verification, while highlighting the continued importance of human-machine collaboration in achieving optimal results.
Original languageEnglish
Title of host publication33rd IEEE International Requirements Engineering Conference (RE 2025)
PublisherIEEE
Publication statusAccepted/In press - 2 Jun 2025

Keywords

  • Large Language Models
  • Formal Verification
  • requirements engineering
  • Bounded Model Checking
  • Software Verification
  • Safety-Critical Systems

Fingerprint

Dive into the research topics of 'Supporting Formal Software Verification with Large Language Models: An Experimental Study'. Together they form a unique fingerprint.

Cite this