Javascript must be enabled to continue!
Abstracting Strings for Model Checking of C Programs
View through CrossRef
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.
Title: Abstracting Strings for Model Checking of C Programs
Description:
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.
Related Results
Model-checking ecological state-transition graphs
Model-checking ecological state-transition graphs
AbstractModel-checking is a methodology developed in computer science to automatically assess the dynamics of discrete systems, by checking if a system modelled as a state-transiti...
Design of Casing Strings
Design of Casing Strings
Abstract
Considerable economy can be effected by designing each casing string individually for the particular set of conditions involved. The paper discusses meth...
Evolution of a course on model checking for practical applications
Evolution of a course on model checking for practical applications
Although model checking is expected as a practical formal verification approach for its automatic nature, it still suffers from difficulties in writing the formal descriptions to b...
Parameterized Strings: Algorithms and Applications
Parameterized Strings: Algorithms and Applications
The parameterized string (p-string), a generalization of the traditional string, is composed of constant and parameter symbols. A parameterized match (p-match) exists between two p...
The Women Who Don’t Get Counted
The Women Who Don’t Get Counted
Photo by Hédi Benyounes on Unsplash
ABSTRACT
The current incarceration facilities for the growing number of women are depriving expecting mothers of adequate care cruci...
Clock monitoring is associated with age-related decline in time-based prospective memory
Clock monitoring is associated with age-related decline in time-based prospective memory
AbstractIn laboratory time-based prospective memory tasks, older adults typically perform worse than younger adults do. It has been suggested that less frequent clock checking due ...
Poster 155: The Prevalence of “Pipelining” at the Top Orthopaedic Sports Medicine Fellowship Programs
Poster 155: The Prevalence of “Pipelining” at the Top Orthopaedic Sports Medicine Fellowship Programs
Objectives: The term “pipelining” refers to the phenomenon that applicants from certain residency programs frequently match at the same fellowship programs. However, it is unclear ...
Systematic Review of Abstinence-Plus HIV Prevention Programs in High-Income Countries Dr. Sergio Grunbaum Ph.D
Systematic Review of Abstinence-Plus HIV Prevention Programs in High-Income Countries Dr. Sergio Grunbaum Ph.D
Background.
Human immunodeficiency virus (HIV), which causes AIDS, is most often spread through unprotected sex (vaginal, oral, or anal) with an infected partner. Individuals can r...

