Researchers have introduced Vero, a novel benchmark designed to assess the capabilities of artificial intelligence agents in producing formally verified software at the repository level. The Vero benchmark evaluates an AI's capacity to generate not only functional code but also machine-checked proofs of its correctness across complex, multi-module codebases. This initiative addresses a critical limitation in existing benchmarks, which typically focus on single functions or evaluate code and proof generation independently.
The need for verified software generation stems from the increasing use of AI in programming. While AI agents can accelerate software development, they currently offer no guarantees regarding the accuracy or security of the code they produce. Formal verification, which involves creating a machine-checked proof that software meets its specification, provides a stronger assurance of correctness. Vero aims to bridge the gap between AI's coding potential and the stringent requirements of verified software development.
Vero comprises 43 instances of multi-module projects. These instances are curated from real-world software repositories, offering a more realistic testbed than simplified, single-function examples. This repository-level evaluation is crucial because it requires AI agents to make coherent implementation and proof decisions across interconnected modules, reflecting the complexities of actual software development. Current benchmarks often fall short by focusing on isolated functions or by providing implementations and only asking for proofs, thus not testing the agents' ability to synthesize both components in tandem.
The Vero benchmark challenges AI agents to generate both the implementation and the formal proof for each specification within these multi-module projects. This end-to-end approach is essential for building trustworthy AI-generated software. For instance, VeriBench, another benchmark for formal verification, also requires the generation of complete Lean 4 programs, including implementations, unit tests, theorems, and proofs, from Python references. Similarly, VeriContest evaluates verifiable code generation in Rust, pairing natural language descriptions with expert-validated formal specifications and code. These efforts highlight a growing trend toward more comprehensive evaluation of AI in software verification.
However, evaluating AI agents in this domain remains challenging. Existing benchmarks reveal that even advanced models struggle with generating verifiable code. For example, some frontier models demonstrate significant limitations in compilation success rates and proof generation when tested on benchmarks like VeriBench. While some models can generate code that compiles and passes unit tests, producing formal proofs that are accepted by verification tools is a more difficult task. This suggests that current AI agents have a considerable gap between their general coding ability and their capacity for verifiable code generation.
The Vero benchmark, by focusing on repository-level verification, pushes the boundaries of current evaluation methodologies. It requires AI agents to manage dependencies, ensure consistency across modules, and produce proofs that hold true for the entire codebase. This level of evaluation is more aligned with the demands of building production-ready, secure software. The benchmark's design acknowledges that real-world software development involves more than just writing individual functions; it involves managing an entire project's structure and ensuring its integrity.
The findings from Vero are expected to provide crucial insights into the current state of AI agents in formal software verification. By offering a more demanding and realistic assessment, Vero can guide the development of AI systems that can reliably produce not just functional code, but also provably correct and secure software. This is a significant step toward enabling AI to contribute to the creation of more dependable and trustworthy software infrastructure.
