A functional programming approach to the specification and verification of concurrent systems

Peter Dybjer, Herbert P. Sander · Formal Aspects of Computing · 1989

Abstract Networks of communicating processes can be viewed as networks of stream transformers and programmed in a lazy functional language. Thus the correctness of concurrent systems can be reduced to the correctness of functional programs. In this paper such correctness is proved formally in the μ -calculus extended with recursion equations for functional programs. The μ -calculus is chosen since it allows the definition of properties by least fixed points (induction) as well as by greatest fixed points (coinduction), and since greatest fixed points are useful for formalising properties, such as fairness, of infinitely proceeding programs. Moreover, non-deterministic processes are represented as incompletely specified deterministic processes, that is, as properties of stream transformers. This method is illustrated by proving the correctness of the alternating bit protocol.

Read the paper · More papers on PaperTik