×

Shape analysis through predicate abstraction and model checking. (English) Zbl 1022.68578

Zuck, Leonore D. (ed.) et al., Verification, model checking, and abstract interpretation. 4th international conference, VMCAI 2003, New York, NY, USA, January 9-11, 2003. Proceedings. Berlin: Springer. Lect. Notes Comput. Sci. 2575, 310-323 (2003).
Summary: We propose a new framework, based on predicate abstraction and model checking, for shape analysis of programs. Shape analysis is used to statically collect information – such as possible reachability and sharing – about program stores. Rather than use a specialized abstract interpretation based on shape graphs, we instantiate a generic and automated abstraction procedure with shape predicates from a correctness property. This results in a predicate-discovery procedure that identifies predicates relevant for correctness, using an analysis based on weakest preconditions, and creates a finite state abstract program. The correctness property is then checked on the abstraction with a model checking tool. To enable this process, we calculate weakest preconditions for common shape properties, and present heuristics for accelerating convergence. Exploring abstract state spaces with model checkers enables one to tap into a wealth of techniques and highly optimized implementations for state space exploration, and to analyze properties that go beyond invariances. We illustrate this simple and flexible framework with the analysis of some “classical” list manipulation programs, using our implementation of the abstraction algorithm, and the SPIN and COSPAN model checkers for state space exploration.
For the entire collection see [Zbl 1014.00022].

MSC:

68Q60 Specification and verification (program logics, model checking, etc.)
68N30 Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.)

Software:

SPIN; TVLA; SLAM