Cargando…

Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field Bounds

Software model checkers are able to exhaustively explore different bounded program executions arising from various sources of non-determinism. These tools provide statements to produce non-deterministic values for certain variables, thus forcing the corresponding model checker to consider all possib...

Descripción completa

Detalles Bibliográficos
Autores principales: Ponzio, Pablo, Godio, Ariel, Rosner, Nicolás, Arroyo, Marcelo, Aguirre, Nazareno, Frias, Marcelo F.
Formato: Online Artículo Texto
Lenguaje:English
Publicado: 2021
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7978807/
http://dx.doi.org/10.1007/978-3-030-71500-7_11
_version_ 1783667227353939968
author Ponzio, Pablo
Godio, Ariel
Rosner, Nicolás
Arroyo, Marcelo
Aguirre, Nazareno
Frias, Marcelo F.
author_facet Ponzio, Pablo
Godio, Ariel
Rosner, Nicolás
Arroyo, Marcelo
Aguirre, Nazareno
Frias, Marcelo F.
author_sort Ponzio, Pablo
collection PubMed
description Software model checkers are able to exhaustively explore different bounded program executions arising from various sources of non-determinism. These tools provide statements to produce non-deterministic values for certain variables, thus forcing the corresponding model checker to consider all possible values for these during verification. While these statements offer an effective way of verifying programs handling basic data types and simple structured types, they are inappropriate as a mechanism for nondeterministic generation of pointers, favoring the use of insertion routines to produce dynamic data structures when verifying, via model checking, programs handling such data types. We present a technique to improve model checking of programs handling heap-allocated data types, by taming the explosion of candidate structures that can be built when non-deterministically initializing heap object fields. The technique exploits precomputed relational bounds, that disregard values deemed invalid by the structure’s type invariant, thus reducing the state space to be explored by the model checker. Precomputing the relational bounds is a challenging costly task too, for which we also present an efficient algorithm, based on incremental SAT solving. We implement our approach on top of the CBMC bounded model checker, and show that, for a number of data structures implementations, we can handle significantly larger input structures and detect faults that CBMC is unable to detect.
format Online
Article
Text
id pubmed-7978807
institution National Center for Biotechnology Information
language English
publishDate 2021
record_format MEDLINE/PubMed
spelling pubmed-79788072021-03-23 Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field Bounds Ponzio, Pablo Godio, Ariel Rosner, Nicolás Arroyo, Marcelo Aguirre, Nazareno Frias, Marcelo F. Fundamental Approaches to Software Engineering Article Software model checkers are able to exhaustively explore different bounded program executions arising from various sources of non-determinism. These tools provide statements to produce non-deterministic values for certain variables, thus forcing the corresponding model checker to consider all possible values for these during verification. While these statements offer an effective way of verifying programs handling basic data types and simple structured types, they are inappropriate as a mechanism for nondeterministic generation of pointers, favoring the use of insertion routines to produce dynamic data structures when verifying, via model checking, programs handling such data types. We present a technique to improve model checking of programs handling heap-allocated data types, by taming the explosion of candidate structures that can be built when non-deterministically initializing heap object fields. The technique exploits precomputed relational bounds, that disregard values deemed invalid by the structure’s type invariant, thus reducing the state space to be explored by the model checker. Precomputing the relational bounds is a challenging costly task too, for which we also present an efficient algorithm, based on incremental SAT solving. We implement our approach on top of the CBMC bounded model checker, and show that, for a number of data structures implementations, we can handle significantly larger input structures and detect faults that CBMC is unable to detect. 2021-02-24 /pmc/articles/PMC7978807/ http://dx.doi.org/10.1007/978-3-030-71500-7_11 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
Ponzio, Pablo
Godio, Ariel
Rosner, Nicolás
Arroyo, Marcelo
Aguirre, Nazareno
Frias, Marcelo F.
Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field Bounds
title Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field Bounds
title_full Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field Bounds
title_fullStr Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field Bounds
title_full_unstemmed Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field Bounds
title_short Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field Bounds
title_sort efficient bounded model checking of heap-manipulating programs using tight field bounds
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7978807/
http://dx.doi.org/10.1007/978-3-030-71500-7_11
work_keys_str_mv AT ponziopablo efficientboundedmodelcheckingofheapmanipulatingprogramsusingtightfieldbounds
AT godioariel efficientboundedmodelcheckingofheapmanipulatingprogramsusingtightfieldbounds
AT rosnernicolas efficientboundedmodelcheckingofheapmanipulatingprogramsusingtightfieldbounds
AT arroyomarcelo efficientboundedmodelcheckingofheapmanipulatingprogramsusingtightfieldbounds
AT aguirrenazareno efficientboundedmodelcheckingofheapmanipulatingprogramsusingtightfieldbounds
AT friasmarcelof efficientboundedmodelcheckingofheapmanipulatingprogramsusingtightfieldbounds