SEFLLGJun 21, 2024

Specify What? Enhancing Neural Specification Synthesis by Symbolic Methods

arXiv:2406.15540v29 citations
Originality Incremental advance
AI Analysis

This work addresses the challenge of automated program specification synthesis for software developers, though it is incremental as it builds on existing LLM and formal methods approaches.

The researchers tackled the problem of synthesizing specifications for C programs by combining Large Language Models with symbolic analysis tools from the Frama-C ecosystem, resulting in annotations that were more context-aware and attuned to runtime errors, with the method showing robustness against bugs in programs.

We investigate how combinations of Large Language Models (LLMs) and symbolic analyses can be used to synthesise specifications of C programs. The LLM prompts are augmented with outputs from two formal methods tools in the Frama-C ecosystem, Pathcrawler and EVA, to produce C program annotations in the specification language ACSL. We demonstrate how the addition of symbolic analysis to the workflow impacts the quality of annotations: information about input/output examples from Pathcrawler produce more context-aware annotations, while the inclusion of EVA reports yields annotations more attuned to runtime errors. In addition, we show that the method infers rather the programs intent than its behaviour, by generating specifications for buggy programs and observing robustness of the result against bugs.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes