Published September 30, 2025 | Version v2
Conference paper Open

LLM-Assisted Synthesis of High-Assurance C Programs

  • 1. EDMO icon Purdue University
  • 2. ROR icon Purdue University West Lafayette

Description

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.gz 


and then run: docker run --rm -it --ulimit nofile=262144:262144 --entrypoint bash synver:2.0

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 <API-KEY>
where <API-KEY> is your personal openAPI key. The public repository is located here, which also contains the DockerFile.

Files

Files (1.9 GB)

Name Size Download all
md5:bdf2bbfcfb83dfed5e3decc63eb05390
1.9 GB Download

Additional details

Additional titles

Alternative title
SynVer

Software

Repository URL
https://github.com/prasitaGit/SynVer.git
Programming language
Python , Coq
Development Status
Active