A Program Instrumentation Framework for Automatic Verification
Jesper Amilon, Zafer Esen, Dilian Gurov, Christian Lidstr\"om, Philipp, R\"ummer, Marten Voorberg

TL;DR
This paper introduces a program instrumentation framework that simplifies verification by transforming programs to avoid problematic constructs, enabling automatic reasoning and transfer of verification artifacts, demonstrated on array aggregation problems.
Contribution
It proposes a unifying verification paradigm using program instrumentation, with formal correctness, automatic application, and support for transferring witnesses and counterexamples.
Findings
Effective verification of array aggregation operations.
Implementation in MonoCera tool shows practical applicability.
Successful evaluation on SV-COMP benchmark programs.
Abstract
In deductive verification and software model checking, dealing with certain specification language constructs can be problematic when the back-end solver is not sufficiently powerful or lacks the required theories. One way to deal with this is to transform, for verification purposes, the program to an equivalent one not using the problematic constructs, and to reason about this equivalent program instead. In this article, we propose program instrumentation as a unifying verification paradigm that subsumes various existing ad-hoc approaches, has a clear formal correctness criterion, can be applied automatically, and can transfer back witnesses and counterexamples. We illustrate our approach on the automated verification of programs that involve quantification and aggregation operations over arrays, such as the maximum value or sum of the elements in a given segment of the array, which…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsReal-time simulation and control systems · Embedded Systems Design Techniques · Software Testing and Debugging Techniques
