The model checking technique has been applied to validity verification of design against specifications and achieved substantial success. In order to apply the technique to wider range, the state explosion problem should be solved. In this tutorial the abstraction technique, which has been recognized as a solution of the problem, and tools which implement the technique are introduced.
Reactive systems are intended to maintain some interaction with their environment such as system users and provide services for the users. Temporal logic is one of the methods for formal specification descriptions of reactive systems. Reactive system formal specification is realizable if and only if there is a reactive system which satisfies the specification for any behavior of system users. The unrealizable specifications are divided into several classes. In this paper, we give the decision procedure of stepwise satisfiability which is one of the classes.
A lot of verification methodologies of Object-Oriented models based on statecharts have been proposed. This approach becomes unrealistic when it comes to prove properties involving multiple objects as it needs to construct a global state space, which often results in state explosion. We propose a verification method to prove such properties from the viewpoint of collaboration. Collaboration is an aspect of a system that cross-cuts its class structure and directly describes global interaction between objects. As a groundwork for verification, we defined an OO theory in the HOL theorem prover. In this paper, we explain the definition of the theory and implementation in HOL. We also show a verification example using the theory.
Model checking is attracting attention as a method of the efficient bug detection in systems development these days. In this paper, an application experience of model checking to embedded software development is described and the knowledge acquired there is reported. Then the effectiveness of applying model checking to the specifications in the design stage is shown. The problems identified there are also considered.
The data structures and algorithms of an existing program analysis tool written in the C language were wrapped with function calls as an application programming interface (API). The API supports extracting data dependences and control dependences for the Program Slicing techniques as well as the usual program analysis results. Program analysis tools based on static slicing can also be built easily by using the API. In this paper, we discuss a program analysis programming model, the design and implementation of the API based on the model, and use of the API for a table-based program analysis tool based on data and control dependences. The tool was used to understand existing systems during a system restructuring project for an insurance company.
This paper describes a theorem prover of propositional classical linear logic implemented on a linear logic programming language developed by the authors. In this LL2LLP system, efficient proof search is realized by transforming classical linear logic formulas into intuitionistic linear logic formulas, and by compiling them into LLP abstract machine instructions. The evaluated performance of LL2LLP was better than other existing provers for most of the benchmark problems.