Abstraction-Based Generation of Finite State Models from C Programs.

No Thumbnail Available

Date

2002-03-29

Journal Title

Series/Report No.

Journal ISSN

Volume Title

Publisher

Abstract

Model checking is a major advancement in the quest forpractical automatic verification methods for computer systems, and has been effectively used to discoverflaws in real-world hardware systems. Unfortunately, applying model-checking techniques to software systems has proved to be more difficult, due to the large number of states and irregular transitions of such systems. One promising method for generating reasonably-sized models from programs is the use of data abstraction, in which the program data is mapped from a large set of possible values to a much smaller set of abstract values. This thesis develops a method which, given a program in the C language and an abstraction mapping, allows the automatic construction of an abstract labeled transition system (LTS), which is much smaller than the concrete LTS (the LTS which would be generated without the benefit of abstraction). The method is shown to be sound in the sense that if a program is well-behaved in its use of pointers, then any linear temporal logic formula which holds true for the corresponding abstract LTS will also hold true for the concrete LTS. Furthermore, if a design exists in the form of a transition system, then the abstract LTS can be checked against the design for bisimilarity. Bisimilarity ensures that the program is a faithful implementation ofthe design. A suite of software tools has been implemented based upon the theory. These tools interface with the Concurrency Workbench, a model checking system. A case study is presented which shows the practicality of this technique for verifying real-world C programs.

Description

Keywords

Citation

Degree

PhD

Discipline

Computer Science

Collections