Logo Logo
Hilfe
Hilfe
Switch Language to English

Beyer, Dirk ORCID logoORCID: https://orcid.org/0000-0003-4832-7662; Spiessl, Martin ORCID logoORCID: https://orcid.org/0000-0002-9169-9130 und Umbricht, Sven ORCID logoORCID: https://orcid.org/0000-0002-5704-0404 (2022): Cooperation Between Automatic and Interactive Software Verifiers. 20th International Conference on Software Engineering and Formal Methods, SEFM 2022, Berlin, Germany, September 26–30, 2022. Schlingloff, Bernd-Holger und Chai, Ming (Hrsg.): In: Software Engineering and Formal Methods. 20th International Conference, SEFM 2022, Berlin, Germany, September 26–30, 2022, Proceedings, Lecture Notes in Computer Science Bd. 13550 Cham, Switzerland: Springer. S. 111-128

Volltext auf 'Open Access LMU' nicht verfügbar.

Abstract

The verification community develops two kinds of verification tools: automatic verifiers and interactive verifiers. There are many such verifiers available, and there is steady progress in research. However, cooperation between the two kinds of verifiers was not yet addressed in a modular way. Yet, it is imperative for the community to leverage all possibilities, because our society heavily depends on software systems that work correctly. This paper contributes tools and a modular design to address the open problem of insufficient support for cooperation between verification tools. We identify invariants as information that needs to be exchanged in cooperation, and we support translation between two ‘containers’ for invariants: program annotations and correctness witnesses. Using our new building blocks, invariants computed by automatic verifiers can be given to interactive verifiers as annotations in the program, and annotations from the user or interactive verifier can be given to automatic verifiers, in order to help the approaches mutually to solve the verification problem. The modular framework, and the design choice to work with readily-available components in off-the-shelf manner, opens up many opportunities to combine new tools from existing components. Our experiments on a large set of programs show that our constructions work, that is, we constructed tool combinations that can solve verification tasks that the verifiers could not solve before.

Dokument bearbeiten Dokument bearbeiten