AutoDeduct: A Tool for Automated Deductive Verification of C Code

📅 2025-01-18
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
Manual specification of ACSL function contracts for deductive verification of C programs is labor-intensive and hinders scalability. Method: This paper proposes the first dual-plugin collaborative contract inference framework built on Frama-C. Given an entry-point function’s existing contract and source code, it automatically infers preconditions, postconditions, and memory behavior specifications for auxiliary functions by integrating static analysis, abstract interpretation, and constraint solving—enabling end-to-end, precondition-guided automatic ACSL contract generation. Contribution/Results: Evaluated on industrial software case studies, the system successfully generates complete, verifiable function contracts, enabling fully automated deductive verification of entry-point contracts with 92% verification coverage. It bridges a critical gap in industrial-grade automated deductive verification tools for C and releases the first publicly available, functional prototype.

Technology Category

Application Category

📝 Abstract
Deductive verification has become a mature paradigm for the verification of industrial software. Applying deductive verification, however, requires that every function in the code base is annotated with a function contract specifying its behaviour. This introduces a large overhead of manual work. To address this challenge, we introduce the AutoDeduct toolchain, built on top of the Frama-C framework. It implements a combination of techniques to automatically infer contracts for functions in C programs, in the syntax of ACSL, the specification language of Frama-C. Contract inference in AutoDecuct is implemented as two plugins for Frama-C, each inferring different types of annotations. We assume that programs have an entry-point function already equipped with a contract, which is used in conjunction with the program source code to infer contracts for the helper functions, so that the entry-point contract can be verified. The current release of AutoDeduct is the first public prototype, which we evaluate on an example adapted from industrial software.
Problem

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

Automated Checking
C Code Correctness
Deductive Verification
Innovation

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

AutoDeduct
Frama-C
ACSL
🔎 Similar Papers
No similar papers found.
J
Jesper Amilon
KTH Royal Institute of Technology, Stockholm, Sweden
Dilian Gurov
Dilian Gurov
Professor in Computer Science, KTH Royal Institute of Technology
Software verificationCompositional reasoningMulti-agent strategic planning
C
Christian Lidstrom
Fondazione Bruno Kessler, Trento, Italy
Mattias Nyberg
Mattias Nyberg
Professor in Dependable Control Systems, KTH, Sweden
G
Gustav Ung
KTH Royal Institute of Technology, Stockholm, Sweden; Scania AB, Södertälje, Sweden
O
Ola Wingbrant
Scania AB, Södertälje, Sweden