# Soundness and completeness of UNITY logic

• Edgar Knapp
Verification
Part of the Lecture Notes in Computer Science book series (LNCS, volume 880)

## Abstract

UNITY is a formalism for specifying, designing, and verifying concurrent programs. It consists of a notation for writing programs and a logic for reasoning about them. We study the questions of soundness and completeness of UNITY logic, in which the so-called Substitution Axiom plays a crucial role. The Substitution Axiom for UNITY Logic lifts Leibniz's rule for substitution of equals to the level of UNITY properties (temporal modalities). Because of its informal nature, it has been a major source of confusion and misunderstanding. It turns out that omitting the Substitution Axiom, however, renders UNITY Logic incomplete. To cope with this dilemma we postulate a simple axiom, called the Completeness Rule, to replace the Substitution Axiom, and show that UNITY Logic plus the Completeness Rule is sound and relatively complete (in the sense of Cook). Our proof reduces the soundness and completeness of the UNITY proof system to a known soundness and completeness result of a fragment of Linear Time Temporal Logic. Finally, we show that from a practical point of view old and new logic are essentially the same.

## Classification

Theory of Programming Languages Theory of Parallel and Distributed Computation Logic in Computer Science

## Preview

Unable to display preview. Download preview PDF.

## References

1. 1.
K. M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison Wesley, 1988.Google Scholar
2. 2.
S. Cook. Soundness and completeness of an axiom system for program verification. SIAM Journal of Computing, 7(1): 70–90, 1978.Google Scholar
3. 3.
E. W. Dijkstra and C. S. Scholten. Predicate Calculus and Program Semantics. Springer-Verlag, 1989.Google Scholar
4. 4.
A. E. Emerson. Temporal and modal logic. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, pages 995–1072. Elsevier, 1990.Google Scholar
5. 5.
R. Gerth and A. Pnueli. The roots of UNITY. In Proceedings Fifth International Workshop on Software Specification and Design, Pittsburgh, Penn., May 1989.Google Scholar
6. 6.
D. Gries and F. B. Schneider. A Logical Approach to Discrete Math. Springer-Verlag, 1993.Google Scholar
7. 7.
C. S. Jutla, E. Knapp, and J. R. Rao. A predicate transformer approach to semantics of parallel programs. In ACM SIGACT/SIGOPT Symposium on Principles of Distributed Computing, pages 249–263, Aug. 1989.Google Scholar
8. 8.
E. Knapp. Refinement as a Basis For Concurrent Program Design. PhD thesis, The University of Texas at Austin, May 1992.Google Scholar
9. 9.
J. Kornerup. An analysis of the logic of unity. Unpublished manuscript, 1989.Google Scholar
10. 10.
Z. Manna and A. Pnueli. How to cook a temporal proof system for your pet language. In ACM Symposium on Principles of Programming Languages, 1983.Google Scholar
11. 11.
Z. Manna and A. Pnueli. Adequate proof principles for invariance and liveness properties of concurrent programs. Science of Computer Programming, 4(4): 257–289, 1984.Google Scholar
12. 12.
J. Misra. Soundness of the substitution axiom. Notes On Unity, (14), Mar. 1990.Google Scholar
13. 13.
J. R. Rao. On a notion of completeness for the leads-to. Notes On Unity, (24), July 1991.Google Scholar
14. 14.
B. Sanders. Eliminating the substitution axiom from UNITY logic. Formal Aspects of Computing, 3: 189–205, 1991.Google Scholar
15. 15.
J. L. A. van de Snepscheut. Personal Communication.Google Scholar