Automatic Generation of Formal Specification and Verification Annotations Using LLMs and Test Oracles

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Faria, João Pascoal, Trigo, Emanuel, Honorato, Vinicius, Abreu, Rui
Format: Preprint
Published: 2026
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866912832079003648
author Faria, João Pascoal
Trigo, Emanuel
Honorato, Vinicius
Abreu, Rui
author_facet Faria, João Pascoal
Trigo, Emanuel
Honorato, Vinicius
Abreu, Rui
contents Recent verification tools aim to make formal verification more accessible to software engineers by automating most of the verification process. However, annotating conventional programs with the formal specification and verification constructs (preconditions, postconditions, loop invariants, auxiliary predicates and functions and proof helpers) required to prove their correctness still demands significant manual effort and expertise. This paper investigates how LLMs can automatically generate such annotations for programs written in Dafny, a verification-aware programming language, starting from conventional code accompanied by natural language specifications (in comments) and test code. In experiments on 110 Dafny programs, a multimodel approach combining Claude Opus 4.5 and GPT-5.2 generated correct annotations for 98.2% of the programs within at most 8 repair iterations, using verifier feedback. A logistic regression analysis shows that proof-helper annotations contribute disproportionately to problem difficulty for current LLMs. Assertions in the test cases served as static oracles to automatically validate the generated pre/postconditions. We also compare generated and manual solutions and present an extension for Visual Studio Code to incorporate automatic generation into the IDE, with encouraging usability feedback.
format Preprint
id arxiv_https___arxiv_org_abs_2601_12845
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle Automatic Generation of Formal Specification and Verification Annotations Using LLMs and Test Oracles
Faria, João Pascoal
Trigo, Emanuel
Honorato, Vinicius
Abreu, Rui
Software Engineering
Recent verification tools aim to make formal verification more accessible to software engineers by automating most of the verification process. However, annotating conventional programs with the formal specification and verification constructs (preconditions, postconditions, loop invariants, auxiliary predicates and functions and proof helpers) required to prove their correctness still demands significant manual effort and expertise. This paper investigates how LLMs can automatically generate such annotations for programs written in Dafny, a verification-aware programming language, starting from conventional code accompanied by natural language specifications (in comments) and test code. In experiments on 110 Dafny programs, a multimodel approach combining Claude Opus 4.5 and GPT-5.2 generated correct annotations for 98.2% of the programs within at most 8 repair iterations, using verifier feedback. A logistic regression analysis shows that proof-helper annotations contribute disproportionately to problem difficulty for current LLMs. Assertions in the test cases served as static oracles to automatically validate the generated pre/postconditions. We also compare generated and manual solutions and present an extension for Visual Studio Code to incorporate automatic generation into the IDE, with encouraging usability feedback.
title Automatic Generation of Formal Specification and Verification Annotations Using LLMs and Test Oracles
topic Software Engineering
url https://arxiv.org/abs/2601.12845