Understanding Counterexamples for Relational Properties with DIbugger

Mihai Herda
(Karlsruhe Institute of Technology (KIT))
Michael Kirsten
(Karlsruhe Institute of Technology (KIT))
Etienne Brunner
(Karlsruhe Institute of Technology (KIT))
Joana Plewnia
(Karlsruhe Institute of Technology (KIT))
Ulla Scheler
(Karlsruhe Institute of Technology (KIT))
Chiara Staudenmaier
(Karlsruhe Institute of Technology (KIT))
Benedikt Wagner
(Karlsruhe Institute of Technology (KIT))
Pascal Zwick
(Karlsruhe Institute of Technology (KIT))
Bernhard Beckert
(Karlsruhe Institute of Technology (KIT))

Software verification is a tedious process that involves the analysis of multiple failed verification attempts, and adjustments of the program or specification. This is especially the case for complex requirements, e.g., regarding security or fairness, when one needs to compare multiple related runs of the same software. Verification tools often provide counterexamples consisting of program inputs when a proof attempt fails, however it is often not clear why the reported counterexample leads to a violation of the checked property. In this paper, we enhance this aspect of the software verification process by providing DIbugger, a tool for analyzing counterexamples of relational properties, allowing the user to debug multiple related programs simultaneously.

In Emanuele De Angelis, Grigory Fedyukovich, Nikos Tzevelekos and Mattias Ulbrich: Proceedings of the Sixth Workshop on Horn Clauses for Verification and Synthesis and Third Workshop on Program Equivalence and Relational Reasoning (HCVS/PERR 2019), Prague, Czech Republic, 6-7th April 2019, Electronic Proceedings in Theoretical Computer Science 296, pp. 6–13.
Published: 9th July 2019.

ArXived at: https://dx.doi.org/10.4204/EPTCS.296.4 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org