Cargando…

CoVEGI: Cooperative Verification via Externally Generated Invariants

Software verification has recently made enormous progress due to the development of novel verification methods and the speed-up of supporting technologies like SMT solving. To keep software verification tools up to date with these advances, tool developers keep on integrating newly designed methods...

Descripción completa

Detalles Bibliográficos
Autores principales: Haltermann, Jan, Wehrheim, Heike
Formato: Online Artículo Texto
Lenguaje:English
Publicado: 2021
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7978801/
http://dx.doi.org/10.1007/978-3-030-71500-7_6
_version_ 1783667226897809408
author Haltermann, Jan
Wehrheim, Heike
author_facet Haltermann, Jan
Wehrheim, Heike
author_sort Haltermann, Jan
collection PubMed
description Software verification has recently made enormous progress due to the development of novel verification methods and the speed-up of supporting technologies like SMT solving. To keep software verification tools up to date with these advances, tool developers keep on integrating newly designed methods into their tools, almost exclusively by re-implementing the method within their own framework. While this allows for a conceptual re-use of methods, it nevertheless requires novel implementations for every new technique. In this paper, we employ cooperative verification in order to avoid re-implementation and enable usage of novel tools as black-box components in verification. Specifically, cooperation is employed for the core ingredient of software verification which is invariant generation. Finding an adequate loop invariant is key to the success of a verification run. Our framework named CoVEGI allows a master verification tool to delegate the task of invariant generation to one or several specialized helper invariant generators. Their results are then utilized within the verification run of the master verifier, allowing in particular for crosschecking the validity of the invariant. We experimentally evaluate our framework on an instance with two masters and three different invariant generators using a number of benchmarks from SV-COMP 2020. The experiments show that the use of CoVEGI can increase the number of correctly verified tasks without increasing the used resources.
format Online
Article
Text
id pubmed-7978801
institution National Center for Biotechnology Information
language English
publishDate 2021
record_format MEDLINE/PubMed
spelling pubmed-79788012021-03-23 CoVEGI: Cooperative Verification via Externally Generated Invariants Haltermann, Jan Wehrheim, Heike Fundamental Approaches to Software Engineering Article Software verification has recently made enormous progress due to the development of novel verification methods and the speed-up of supporting technologies like SMT solving. To keep software verification tools up to date with these advances, tool developers keep on integrating newly designed methods into their tools, almost exclusively by re-implementing the method within their own framework. While this allows for a conceptual re-use of methods, it nevertheless requires novel implementations for every new technique. In this paper, we employ cooperative verification in order to avoid re-implementation and enable usage of novel tools as black-box components in verification. Specifically, cooperation is employed for the core ingredient of software verification which is invariant generation. Finding an adequate loop invariant is key to the success of a verification run. Our framework named CoVEGI allows a master verification tool to delegate the task of invariant generation to one or several specialized helper invariant generators. Their results are then utilized within the verification run of the master verifier, allowing in particular for crosschecking the validity of the invariant. We experimentally evaluate our framework on an instance with two masters and three different invariant generators using a number of benchmarks from SV-COMP 2020. The experiments show that the use of CoVEGI can increase the number of correctly verified tasks without increasing the used resources. 2021-02-24 /pmc/articles/PMC7978801/ http://dx.doi.org/10.1007/978-3-030-71500-7_6 Text en © The Author(s) 2021 Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made. The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
spellingShingle Article
Haltermann, Jan
Wehrheim, Heike
CoVEGI: Cooperative Verification via Externally Generated Invariants
title CoVEGI: Cooperative Verification via Externally Generated Invariants
title_full CoVEGI: Cooperative Verification via Externally Generated Invariants
title_fullStr CoVEGI: Cooperative Verification via Externally Generated Invariants
title_full_unstemmed CoVEGI: Cooperative Verification via Externally Generated Invariants
title_short CoVEGI: Cooperative Verification via Externally Generated Invariants
title_sort covegi: cooperative verification via externally generated invariants
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7978801/
http://dx.doi.org/10.1007/978-3-030-71500-7_6
work_keys_str_mv AT haltermannjan covegicooperativeverificationviaexternallygeneratedinvariants
AT wehrheimheike covegicooperativeverificationviaexternallygeneratedinvariants