🤖 AI Summary
Existing tools for reliability verification of complex C programs suffer from poor usability, low automation, and opaque verification results. Method: This paper proposes QCP, a practical separation logic–based verification tool. Its core innovation is a lightweight, automation-friendly custom assertion language that simplifies frontend syntax while retaining sufficient expressiveness—thereby significantly reducing user modeling effort. QCP integrates static analysis of C programs with SMT-solver–driven automated theorem proving to enhance both proof efficiency and interpretability. Contribution/Results: Evaluated on real-world system code, QCP substantially improves interactive usability and end-to-end proof success rates over state-of-the-art tools, enabling verifiable development of industrial-scale C modules.
📝 Abstract
As software systems increase in size and complexity dramatically, ensuring their correctness, security, and reliability becomes an increasingly formidable challenge. Despite significant advancements in verification techniques and tools, there still remain %these tools still continue to encounter substantial difficulties when applying these tools to complex, real-world scenarios. To address these difficulties, this paper introduces a novel verification tool, called extbf{Qualified C Programming Verifier (QCP)}. QCP incorporates a refined front-end %syntax of assertion language to enhance user interaction. The proposed assertion language aims to %syntax is designed to lower the entry barrier for verification tools, improve proof efficiency by improving automation, and facilitate a deeper understanding of both the program and its verification results.