Automatic Program Instrumentation for Automatic Verification (Extended Technical Report)
Jesper Amilon, Zafer Esen, Dilian Gurov, Christian Lidstr\"om, Philipp, R\"ummer

TL;DR
This paper introduces an automated program instrumentation approach for verification, enabling reasoning about complex constructs like array aggregations by transforming programs and transferring correctness witnesses.
Contribution
It proposes a unifying verification paradigm using instrumentation, formalizes array aggregation as monoid homomorphisms, and implements this in the MonoCera tool for improved automatic verification.
Findings
Successfully verified array aggregation programs
Transferred witnesses and counterexamples effectively
Demonstrated approach 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 its correctness instead. In this paper, we propose 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 are known to be…
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
TopicsFormal Methods in Verification · Software Engineering Research · Software Reliability and Analysis Research
