SV-LIB 1.0: A Standard Exchange Format for Software-Verification Tasks

📅 2025-11-26
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
Existing software verification tools are typically tied to specific programming languages (e.g., C or Java), despite the language-agnostic nature of many verification methodologies—highlighting an urgent need for a standardized, cross-language exchange format. This paper introduces SV-LIB 1.0, the first intermediate language supporting unified representation of programs, specifications, and verification evidence—including both correctness proofs and counterexamples. Built upon SMT-LIB syntax, SV-LIB incorporates a core imperative semantics to balance parseability and seamless integration into existing toolchains. It is the first to formally define a self-contained, independently verifiable evidence format, accompanied by an informal semantic description and explicitly stated design objectives. SV-LIB 1.0 establishes a foundational standard enabling cross-language transfer of verification techniques, interoperability among verification tools, and reproducibility of results—while also providing a framework for future formal semantics development and extensions to concurrent programs.

Technology Category

Application Category

📝 Abstract
In the past two decades, significant research and development effort went into the development of verification tools for individual languages, such asC, C++, and Java. Many of the used verification approaches are in fact language-agnostic and it would be beneficial for the technology transfer to allow for using the implementations also for other programming and modeling languages. To address the problem, we propose SV-LIB, an exchange format and intermediate language for software-verification tasks, including programs, specifications, and verification witnesses. SV-LIBis based on well-known concepts from imperative programming languages and uses SMT-LIB to represent expressions and sorts used in the program. This makes it easy to parse and to build into existing infrastructure, since many verification tools are based on SMT solvers already. Furthermore, SV-LIBdefines a witness format for both correct and incorrect SV-LIB programs, together with means for specifying witness-validation tasks. This makes it possible both to implement independent witness validators and to reuse some verifiers also as validators for witnesses. This paper presents version 1.0 of the SV-LIBformat, including its design goals, the syntax, and informal semantics. Formal semantics and further extensions to concurrency are planned for future versions.
Problem

Research questions and friction points this paper is trying to address.

Creating a standard exchange format for software-verification tasks across languages
Enabling reuse of verification tools for different programming and modeling languages
Defining a witness format for validating correct and incorrect verification results
Innovation

Methods, ideas, or system contributions that make the work stand out.

SV-LIB is an exchange format for verification tasks
It uses SMT-LIB for expressions and program sorts
It defines witness formats for correct and incorrect programs