Diversifying to Verify: When Task-Equivalent Programs Differ in Verifiability
2026-07-10 • Software Engineering
Software EngineeringArtificial IntelligenceLogic in Computer Science
AI summaryⓘ
The authors looked at how different ways of writing programs affect how easily automated tools can verify their correctness. They built a system called Diversify2Verify that creates many different versions of the same task, checks them, and tries to fix verification issues automatically. Testing on 73 tasks with nearly 300 versions showed that some program styles are much easier to verify than others. Their work suggests that making diverse program implementations helps find versions that automated tools can verify more successfully.
program verificationautomated verificationWhy3LLM-based pipelinerecursive implementationsimperative programmingbounded verifiercontract inferencearray and list data structuresbenchmarking
Authors
Shirley Yu, Ruben Martins
Abstract
Program verification is crucial for software correctness, but producing fully verified programs remains difficult in practice. This paper studies whether implementation structure affects automated verifiability when multiple generated programs are intended to satisfy the same task-level semantics. We present Diversify2Verify, a staged LLM-based pipeline for Why3 that infers representation-specific contracts, generates and tests diverse recursive and imperative array/list implementations, and attempts verification with bounded verifier-guided annotation repair. We also construct a verification-oriented benchmark of 73 tasks over integers, arrays, and lists, yielding 292 implementation variants. Diversify2Verify verifies 96 artifacts initially and 154 after two repair passes, improving artifact-level verification from 32.9% to 52.7%. At the task level, at least one variant verifies for 49 of 73 tasks, a 67.1% success rate. These results show that task-equivalent implementations can differ substantially in verifiability and that implementation diversity helps find verification-friendly artifacts.