Syntax-directed model checking of sequential programs

https://doi.org/10.1016/S1567-8326(02)00035-8Get rights and content
Under an Elsevier user license
open archive

Abstract

This work presents a syntax-directed, modular approach to temporal logic model checking of sequential programs.

In contrast to hardware designs, the models of software systems might be too large to fit into memory even when they consist of a single sequential unit. Furthermore, even when the model can be held in memory, model checking might exceed the memory capacity of the computer. To avoid the high space requirements for software we therefore suggest to partition the text of a sequential program into sequentially composed sub-programs. Based on this partition, we present a model-checking algorithm for sequential programs that arrives at its conclusion by examining each sub-program in separation. The novelty of our approach is that it uses a decomposition of the program in which the interconnection between parts is sequential and not parallel. We handle each part separately, while keeping all other parts on an external memory (files). Consequently, our approach reduces space requirements and enables verification of larger systems.

We implemented the ideas described in this paper in a prototype tool called SoftVer and applied it to a few small examples. We have achieved reduction in both space and time requirements.

We consider this work as a step towards making temporal logic model checking useful for verification of sequential programs.

Cited by (0)