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

Autores
Ponzio, Pablo Daniel; Godio, Ariel; Rosner, Nicolás; Arroyo, Marcelo; Aguirre, Nazareno Matías; Frias, Marcelo F.
Año de publicación
2021
Idioma
español castellano
Tipo de recurso
documento de conferencia
Estado
versión publicada
Descripción
Software model checkers are able to exhaustively explore different bounded program executions arising from various sources of nondeterminism. These tools provide statements to produce non-determinis- tic 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.
Sociedad Argentina de Informática e Investigación Operativa
Materia
Ciencias Informáticas
Model checking of programs
Relational bounds
Nivel de accesibilidad
acceso abierto
Condiciones de uso
http://creativecommons.org/licenses/by-nc-sa/4.0/
Repositorio
SEDICI (UNLP)
Institución
Universidad Nacional de La Plata
OAI Identificador
oai:sedici.unlp.edu.ar:10915/140433

id SEDICI_800fe385af895524a552ae1823163af5
oai_identifier_str oai:sedici.unlp.edu.ar:10915/140433
network_acronym_str SEDICI
repository_id_str 1329
network_name_str SEDICI (UNLP)
spelling Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field BoundsPonzio, Pablo DanielGodio, ArielRosner, NicolásArroyo, MarceloAguirre, Nazareno MatíasFrias, Marcelo F.Ciencias InformáticasModel checking of programsRelational boundsSoftware model checkers are able to exhaustively explore different bounded program executions arising from various sources of nondeterminism. These tools provide statements to produce non-determinis- tic 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.Sociedad Argentina de Informática e Investigación Operativa2021-10info:eu-repo/semantics/conferenceObjectinfo:eu-repo/semantics/publishedVersionObjeto de conferenciahttp://purl.org/coar/resource_type/c_5794info:ar-repo/semantics/documentoDeConferenciaapplication/pdf110-131http://sedici.unlp.edu.ar/handle/10915/140433spainfo:eu-repo/semantics/altIdentifier/url/http://50jaiio.sadio.org.ar/pdfs/asse/ASSE-12.pdfinfo:eu-repo/semantics/altIdentifier/issn/2451-7593info:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by-nc-sa/4.0/Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)reponame:SEDICI (UNLP)instname:Universidad Nacional de La Platainstacron:UNLP2025-09-03T11:07:43Zoai:sedici.unlp.edu.ar:10915/140433Institucionalhttp://sedici.unlp.edu.ar/Universidad públicaNo correspondehttp://sedici.unlp.edu.ar/oai/snrdalira@sedici.unlp.edu.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:13292025-09-03 11:07:43.519SEDICI (UNLP) - Universidad Nacional de La Platafalse
dc.title.none.fl_str_mv 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
spellingShingle Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field Bounds
Ponzio, Pablo Daniel
Ciencias Informáticas
Model checking of programs
Relational bounds
title_short 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_sort Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field Bounds
dc.creator.none.fl_str_mv Ponzio, Pablo Daniel
Godio, Ariel
Rosner, Nicolás
Arroyo, Marcelo
Aguirre, Nazareno Matías
Frias, Marcelo F.
author Ponzio, Pablo Daniel
author_facet Ponzio, Pablo Daniel
Godio, Ariel
Rosner, Nicolás
Arroyo, Marcelo
Aguirre, Nazareno Matías
Frias, Marcelo F.
author_role author
author2 Godio, Ariel
Rosner, Nicolás
Arroyo, Marcelo
Aguirre, Nazareno Matías
Frias, Marcelo F.
author2_role author
author
author
author
author
dc.subject.none.fl_str_mv Ciencias Informáticas
Model checking of programs
Relational bounds
topic Ciencias Informáticas
Model checking of programs
Relational bounds
dc.description.none.fl_txt_mv Software model checkers are able to exhaustively explore different bounded program executions arising from various sources of nondeterminism. These tools provide statements to produce non-determinis- tic 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.
Sociedad Argentina de Informática e Investigación Operativa
description Software model checkers are able to exhaustively explore different bounded program executions arising from various sources of nondeterminism. These tools provide statements to produce non-determinis- tic 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.
publishDate 2021
dc.date.none.fl_str_mv 2021-10
dc.type.none.fl_str_mv info:eu-repo/semantics/conferenceObject
info:eu-repo/semantics/publishedVersion
Objeto de conferencia
http://purl.org/coar/resource_type/c_5794
info:ar-repo/semantics/documentoDeConferencia
format conferenceObject
status_str publishedVersion
dc.identifier.none.fl_str_mv http://sedici.unlp.edu.ar/handle/10915/140433
url http://sedici.unlp.edu.ar/handle/10915/140433
dc.language.none.fl_str_mv spa
language spa
dc.relation.none.fl_str_mv info:eu-repo/semantics/altIdentifier/url/http://50jaiio.sadio.org.ar/pdfs/asse/ASSE-12.pdf
info:eu-repo/semantics/altIdentifier/issn/2451-7593
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
http://creativecommons.org/licenses/by-nc-sa/4.0/
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
eu_rights_str_mv openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-sa/4.0/
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
dc.format.none.fl_str_mv application/pdf
110-131
dc.source.none.fl_str_mv reponame:SEDICI (UNLP)
instname:Universidad Nacional de La Plata
instacron:UNLP
reponame_str SEDICI (UNLP)
collection SEDICI (UNLP)
instname_str Universidad Nacional de La Plata
instacron_str UNLP
institution UNLP
repository.name.fl_str_mv SEDICI (UNLP) - Universidad Nacional de La Plata
repository.mail.fl_str_mv alira@sedici.unlp.edu.ar
_version_ 1842260580922032128
score 13.13397