Work

LLM-Assisted Synthesis of High-Assurance C Programs

Year: 2025
Type: conference-paper
Abstract: SynVer is a novel, general purpose synthesizer for C programs with machine-checked proofs of their correctness using the Verified Software Toolchain framework. To do so, SynVer employs two Large Language Models: the first is used to generate candidate programs from a user-provided specification, and the second helps to automatically generate proofs of correctness in the Rocq proof assistant. SynVer ensures that generated programs adhere to a set of syntactic criteria that make candidate programs amenable to automated verification. To verify programs, SynVer uses a novel proof generation strategy which combines symbolic reasoning and a language model to handle obligations that the symbolic engine cannot handle solely. This artifact is distributed as a zip file which includes source code. To use the Docker image, you will need to install the Docker Engine as described in the official Docker installation instructions. The image was created and this guide was written using Docker 27.3.1, but any contemporary Docker version is expected to work. On *nix systems, running sudo docker run hello-world is a quick way to check that Docker is installed and behaving correctly. Once the artifact is unzipped, you can load the image directly from the included tar file: docker load -i synver.tar You should be in the /synver directory. Run make to compile the Rocq files. To run the benchmarks (listed under the directory specText/), run python3 synthesize.py , where is your personal openAPI key. The public repository is located here
Language: English
Open Access status: green
OpenAlex ID: W7083630922
FWCI:
Cites:
Cited by:
Related to: