Towards a mechanically supported and compositional calculus to design distributed algorithms
This paper presents a compositional extension of the programming calculus UNITY, which is used to design distributed programs. As the extension is compositional, we can use it to derive a program ’on the fly’. That is, we can shape a program at the same time as we manipulate and decompose its given specification, and each time we apply a compositionality theorem we basically add a detail to the shape. Safety properties are known to be compositional in UNITY, but progress in general are not. So, we define a class of progress properties which are compositional. In addition, for programs that are constructed from components that do not write each other's write variables, the compositionality of this new class of progress can be expressed elegantly.
We also have formalized and verified the resulting calculus using the theorem prover HOL. Together with the available tools in HOL this provides a mechanical support in designing distributed programs.
Unable to display preview. Download preview PDF.
- [AG90]A. Arora and M.G. Gouda. Distributed reset. In Proceedings of the 10th Conference on Foundation of Software Technology and Theoretical Computer Science, 1990. Also in Lecture Notes on Computer Science vol. 472.Google Scholar
- [AG92]A. Arora and M.G. Gouda. Closure and convergence: A foundation for fault-tolerant computing. In Proceedings of the 22nd International Conference on Fault-Tolerant Computing Systems, 1992.Google Scholar
- [And92]Flemming Andersen. A Theorem Prover for UNITY in Higher Order Logic. PhD thesis, Technical University of Denmark, 1992.Google Scholar
- [CM88]K.M. Chandy and J. Misra. Parallel Program Design — A Foundation. Addison-Wesley Publishing Company, Inc., 1988.Google Scholar
- [dBvH94]F.S. de Boer and M. van Hulst. A proof system for asynchronously communicating deterministic processes, 1994. Submitted to a conference.Google Scholar
- [Her91]Ted Herman. Adaptivity through Distributed Convergence. PhD thesis, University of Texas at Austin, 1991.Google Scholar
- [Len93]P.J.A. Lentfert. Distributed Hierarchical Algorithms. PhD thesis, Utrecht University, April 1993.Google Scholar
- [PJ91]P.K. Pandya and Mathai Joseph. P-a logic-a compositional proof system for distributed programs. Distributed Computing, (5):37–54, 1991.Google Scholar
- [Pra93a]I.S.W.B. Prasetya. Formalization of variables access constraints to support compositionality of liveness properties. In Proceeding HUG 93, HOL User's Group Workshop, pages 326–339. University of British Columbia, 1993.Google Scholar
- [Pra93b]I.S.W.B. Prasetya. UU_UNITY: a Mechanical Proving Environment for UNITY Logic. University of Utrecht, 1993. Draft. Available at request.Google Scholar
- [San91]B.A. Sanders. Eliminating the substitution axiom from UNITY logic. Formal Aspects of Computing, 3(2):189–205, 1991.Google Scholar
- [Sch93]Marco Schneider. Self-stabilization. ACM Computing Surveys, 25(1), March 1993.Google Scholar
- [Sin89]A.K. Singh. Leads-to and program union. Notes on UNITY, 06–89, 1989.Google Scholar
- [UHK94]R. Udink, T. Herman, and J. Kok. Compositional local progress in unity. to appear in the proceeding of IFIP Working Conference on Programming Concepts, Methods and Calculi, 1994., 1994.Google Scholar