LAUKO, Henrich, Martina OLLIARO, Agostino CORTESI and Petr ROČKAI. Abstracting Strings for Model Checking of C Programs. Applied Sciences. Multidisciplinary Digital Publishing Institute, 2020, vol. 10, No 21, p. 1-33. ISSN 2076-3417. doi:10.3390/app10217853.
Other formats:   BibTeX LaTeX RIS
Basic information
Original name Abstracting Strings for Model Checking of C Programs
Authors LAUKO, Henrich (703 Slovakia, belonging to the institution), Martina OLLIARO (380 Italy, belonging to the institution), Agostino CORTESI (380 Italy) and Petr ROČKAI (203 Czech Republic, belonging to the institution).
Edition Applied Sciences, Multidisciplinary Digital Publishing Institute, 2020, 2076-3417.
Other information
Original language English
Type of outcome Article in a journal
Field of Study 10200 1.2 Computer and information sciences
Country of publisher Switzerland
Confidentiality degree is not subject to a state or trade secret
WWW URL
Impact factor Impact factor: 2.679
RIV identification code RIV/00216224:14330/20:00114537
Organization unit Faculty of Informatics
Doi http://dx.doi.org/10.3390/app10217853
UT WoS 000588870800001
Keywords in English string analysis; model checking; abstract interpretation; abstract domain
Tags International impact, Reviewed
Changed by Changed by: RNDr. Pavel Šmerk, Ph.D., učo 3880. Changed: 29. 4. 2021 08:11.
Abstract
Data type abstraction plays a crucial role in software verification. In this paper, we introduce a domain for abstracting strings in the C programming language, where strings are managed as null-terminated arrays of characters. The new domain M-String is parametrized on an index (bound) domain and a character domain. By means of these different constituent domains, M-Strings captures shape information on the array structure as well as value information on the characters occurring in the string. By tuning these two parameters, M-String can be easily tailored for specific verification tasks, balancing precision against complexity. The concrete and the abstract semantics of basic operations on strings are carefully formalized, and soundness proofs are fully detailed. Moreover, for a selection of functions contained in the standard C library, we provide the semantics for character access and update, enabling an automatic lifting of arbitrary string-manipulating code into our new domain. An implementation of abstract operations is provided within a tool that automatically lifts existing programs into the M-String domain along with an explicit-state model checker. The accuracy of the proposed domain is experimentally evaluated on real-case test programs, showing that M-String can efficiently detect real-world bugs as well as to prove that program does not contain them after they are fixed.
Links
GA18-02177S, research and development projectName: Abstrakce a jiné techniky v semi-symbolické verifikaci programů
Investor: Czech Science Foundation
PrintDisplayed: 27. 5. 2022 19:08