Report Number: CS-TR-94-1518
Institution: Stanford University, Department of Computer Science
Title: STeP: The Stanford Temporal Prover
Author: Manna, Z ohar
Author: Anuchitanukul, Anuchit
Author: Bjorner, Nikolaj
Author: Browne, Anca
Author: Chang, Edward
Author: Colon, Michael
Author: de Alfaro, Luca
Author: Devarajan, Harish
Author: Sipma, Henny
Author: Uribe, Tomas
Date: June 1994
Abstract: We describe the Stanford Temporal Prover (STeP), a system being developed to support the computer-aided formal verification of concurrent and reactive systems based on temporal specifications. Unlike systems based on model-checking, STeP is not restricted to finite-state systems. It combines model checking and deductive methods to allow the verification of a broad class of systems, including programs with infinite data domains, N-process programs, and N-component circuit designs, for arbitrary N. In short, STeP has been designed with the objective of combining the expressiveness of deductive methods with the simplicity of model checking. The verification process is for the most part automatic. User interaction occurs mostly at the highest, most intuitive level, primarily through a graphical proof language of verification diagrams. Efficient simplification methods, decision procedures, and invariant generation techniques are then invoked automatically to prove resulting first-order verification conditions with minimal assistance. We describe the performance of the system when applied to several examples, including the N-process dining philosopher's program, Szymanski's N-process mutual exclusion algorithm, and a distributed N-way arbiter circuit.