SpecSyn: LLM-based Synthesis and Refinement of Formal Specifications for Real-world Program Verification
Lezhi Ma, Shangqing Liu, Yi Li, Qiong Wu, Han Wang + 1 more
TLDR
SpecSyn uses LLMs to synthesize and refine formal specifications for real-world program verification, outperforming existing methods.
Key contributions
- LLM-based method for synthesizing formal specifications for program verification.
- Decomposes large programs into segments for iterative specification generation.
- Novel refinement mechanism uses semantic-non-equivalent mutations to enhance spec strength.
- Achieves >90% precision and >75% recall, applicable to real-world open-source programs.
Why it matters
Existing LLM-based specification generation struggles with large programs and lacks strength guarantees. SpecSyn addresses these by decomposing inputs and introducing a unique refinement mechanism. This enables robust and precise verification for complex, real-world software.
Original Abstract
Program verification is a formal technique to rigorously ensure the correctness and fault-freeness of software systems. However, constructing comprehensive interprocedural specifications for full verification obligations is time-consuming and labor-intensive, giving rise to automated specification generation approaches. Despite the significant advancements in these approaches brought by Large Language Models (LLMs), existing LLM-empowered approaches still suffer from significant limitations: they lack effective strategies for handling sizable input programs, and are typically equipped with no mechanisms to evaluate and guarantee the strength of the generated specifications. The limitations impair their ability to extract precise specifications from real-world complicated programs to support the verification of target properties, thereby hindering the applicability of existing approaches in verification tasks on real-world programs. To remedy this gap, we propose SpecSyn, a novel LLM-based specification generation method. SpecSyn first decomposes the input program into individual segments, which are handled respectively by the subsequent iterative specification generation process. Innovatively, we incorporate into the process a specification refinement mechanism based on semantic-non-equivalent program mutations and variant discrimination, assessing and enhancing the semantic strength of the generated specifications. Extensive experiments show that SpecSyn maintains high precision over 90% and outstanding recall over 75%, significantly outperforming existing LLM-based approaches. In further evaluations, SpecSyn successfully handles 1071 out of 1365 target properties for open-source programs, proving its applicability on real-world program verification tasks.
📬 Weekly AI Paper Digest
Get the top 10 AI/ML arXiv papers from the week — summarized, scored, and delivered to your inbox every Monday.