×

Verifying programs with dynamic 1-selector-linked structures in regular model checking. (English) Zbl 1087.68585

Halbwachs, Nicolas (ed.) et al., Tools and algorithms for the construction and analysis of systems. 11th international conference, TACAS 2005, held as part of the joint European conference on theory and practice of software, ETAPS 2005, Edinburgh, UK, April 4–8, 2005. Proceedings. Berlin: Springer (ISBN 3-540-25333-5/pbk). Lecture Notes in Computer Science 3440, 13-29 (2005).
Summary: We address the problem of automatic verification of programs with dynamic data structures. We consider the case of sequential, non-recursive programs manipulating 1-selector-linked structures such as traditional linked lists (possibly sharing their tails) and circular lists. We propose an automata-based approach for a symbolic verification of such programs using the regular model checking framework. Given a program, the configurations of the memory are systematically encoded as words over a suitable finite alphabet, potentially infinite sets of configurations are represented by finite-state automata, and statements of the program are automatically translated into finite-state transducers defining regular relations between configurations. Then, abstract regular model checking techniques are applied in order to automatically check safety properties concerning the shape of the computed configurations or relating the input and output configurations. For this particular purpose, we introduce new techniques for the computation of abstractions of the set of reachable configurations and to refine these abstractions if spurious counterexamples are detected. Finally, we present experimental results showing the applicability of the approach and its efficiency.
For the entire collection see [Zbl 1068.68006].

MSC:

68Q60 Specification and verification (program logics, model checking, etc.)
68Q45 Formal languages and automata

Software:

MONA
Full Text: DOI