Adding liveness properties to coupled finite-state machines

Informal specifications of protocols are often imprecise and incomplete and are usually not sufficient to ensure the correctness of even very simple protocols. Consequently, formal specification methods, such as finite-state models, are increasingly being used. The selection/resolution (S/R) model is a finite-state model with a powerful communication mechanism that makes it easy to describe complex protocols as a collection of simple finite-state machines. A software environment, called SPANNER, has been developed to specify and analyze protocols specified with the S/R model. SPANNER provides the facility to compute the joint behavior of a number of finite-state machines and to check if the “product” machine has inaccessible states, states corresponding to deadlocks, and loops corresponding to livelocks. So far, however, SPANNER has had no facility to systematically deal with liveness conditions. For example, one might wish to specify that, although a communication channel is unreliable, a message will get through if it is sent infinitely often, and to check that the infinite behavior of the protocol viewed as an infinite sequence will always be in some ω-regular set (possibly specified in terms of a formula in temporal logic or as an ω-automata). In this paper we show that with very minor modifications to the implemented system it is possible to substantially extend the type of properties that can be specified and checked by SPANNER. This is done by extending the S/R model to include acceptance conditions found in automatons on infinite words, which permits the incorporation of arbitrary liveness conditions into the model. We show how these extensions can be easily incorporated into SPANNER (and into essentially any finite-state verification system) and how the resulting system is used to automatically verify the correctness of protocols.

[1]  Gary L. Miller,et al.  Isomorphism of k-Contractible Graphs. A Generalization of Bounded Valence and Bounded Genus , 1983, Inf. Control..

[2]  Robert McNaughton,et al.  Testing and Generating Infinite Sequences by a Finite Automaton , 1966, Inf. Control..

[3]  A. Prasad Sistla,et al.  Automatic verification of finite state concurrent system using temporal logic specifications: a practical approach , 1983, POPL '83.

[4]  Brent Hailpern,et al.  Modular Verification of Computer Communication Protocols , 1983, IEEE Trans. Commun..

[5]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[6]  Pierre Wolper,et al.  Expressing interesting properties of programs in propositional temporal logic , 1986, POPL '86.

[7]  Pierre Wolper,et al.  Synthesis of Communicating Processes from Temporal Logic Specifications , 1981, TOPL.

[8]  Zohar Manna,et al.  Verification of Concurrent Programs: Temporal Proof Principles , 1981, Logic of Programs.

[9]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report) , 1986, LICS.

[10]  Daniel Barbará,et al.  A Software Environment for the Specification and Analysis of Problems of Coordination and Concurrency , 1988, IEEE Trans. Software Eng..

[11]  Amir Pnueli,et al.  Checking that finite state concurrent programs satisfy their linear specification , 1985, POPL.

[12]  Pierre Wolper Temporal Logic Can Be More Expressive , 1983, Inf. Control..

[13]  Brent Hailpern Verifying Concurrent Processes Using Temporal Logic , 1982, Lecture Notes in Computer Science.

[14]  Robert P. Kurshan,et al.  A Language for the Specification and Analysis of Protocols , 1983, Protocol Specification, Testing, and Verification.

[15]  Amir Pnueli,et al.  The temporal logic of programs , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[16]  S. Sieber On a decision method in restricted second-order arithmetic , 1960 .

[17]  Carl A. Sunshine Communication protocol modeling , 1981 .

[18]  Sudhir Aggarwal,et al.  Simulation Analysis of Protocols in an Integrated Software Environment , 1989, Comput. Networks.

[19]  Pierre Wolper,et al.  Reasoning about infinite computation paths , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[20]  Daniel Barbará,et al.  Spanner: A Tool for the Specification, Analysis, and Evaluation of Protocols , 1987, IEEE Transactions on Software Engineering.

[21]  Krishan K. Sabnani An algorithmic technique for protocol verification , 1988, IEEE Trans. Commun..

[22]  Keith A. Bartlett,et al.  A note on reliable full-duplex transmission over half-duplex links , 1969, Commun. ACM.

[23]  Krishan K. Sabnani,et al.  A Calculus for Protocol Specification and Validation , 1983, Protocol Specification, Testing and Verification.

[24]  Zohar Manna,et al.  Verification of concurrent programs, Part I: The temporal framework , 1981 .