Proving liveness for networks of communicating finite state machines
- 2 January 1986
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 8 (1) , 154-180
- https://doi.org/10.1145/5001.5002
Abstract
Consider a network of communicating finite state machines that exchange messages over unbounded FIFO channels. Each machine in the network can be defined by a directed graph whose nodes represent the machine states and whose edges represent its transitions. In general, for a node in one of the machines to be live (i.e., encountered infinitely often during the course of communication), each machine in the network should progress in some fair fashion. We define three graduated notions of fair progress (namely, node fairness, edge fairness, and network fairness), and on this basis we define three corresponding degrees of node liveness. We discuss techniques to verify that a given node is live under each of these fairness assumptions. These techniques can be automated; and they are effective even if the network under consideration has an infinite number of reachable states. We use our techniques to establish the liveness of some practical communication protocols; these include an unbounded start-stop protocol, an unbounded alternating bit protocol, and a simplified version of the CSMA/CD protocol for local area networks.Keywords
This publication has 16 references indexed in Scilit:
- On the progress of communication between two finite state machinesInformation and Control, 1984
- On Communicating Finite-State MachinesJournal of the ACM, 1983
- How to cook a temporal proof system for your pet languagePublished by Association for Computing Machinery (ACM) ,1983
- Modular Verification of Computer Communication ProtocolsIEEE Transactions on Communications, 1983
- Proving Liveness Properties of Concurrent ProgramsACM Transactions on Programming Languages and Systems, 1982
- Towards Analyzing and Synthesizing ProtocolsIEEE Transactions on Communications, 1980
- Formal Methods in Communication Protocol DesignIEEE Transactions on Communications, 1980
- Finite state description of communication protocolsComputer Networks (1976), 1978
- EthernetCommunications of the ACM, 1976
- A note on reliable full-duplex transmission over half-duplex linksCommunications of the ACM, 1969