A proof environment for concurrent programs

  • Naïma Brown
  • Dominique Mery
Part of the Lecture Notes in Computer Science book series (LNCS, volume 670)


Unity [CM88, Mer92, Kna90], as action systems approach [BS91], is a formal method that attempts to decouple a program from its implementation. Therefore, Unity separates logical behaviour from implementation, it provides predicates for specifications, and proof rules for deriving specifications directly from the program text. This type of proof strategy is often clearer and more succinct than argument about a program's operational behaviour. Our research fits into Unity's methodology. Its aims to develop a proof environment suitable for mechanical proof of concurrent programs. This proof is based on Unity [CM88], and may be used to specify and verify both safety and liveness properties. Our verification method is based on theorem proving, so that an axiomatization of the operational semantics is needed. We use Dijkstra's wp-calculus to formalize the Unity logic, so we can always derive a sound relationship between the operational semantics of a given Unity specification and the axiomatic one from which theorems in our logic will be derived.

Automated theorem proving concurrency program verification formal specifications Unity 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [BM88]
    R.S. Boyer and J.S. Moore. A Computational Logic Handbook. Academic Press, 1988.Google Scholar
  2. [BM92]
    N. Brown and D. Mery. Deriving Occam Programs through the Refinement of Unity-like Specifications. In W. Joosen and E. Milgrom, editors, Proceedings European Workshop on Parallel Computing. IOS PRESS, 1992.Google Scholar
  3. [BS91]
    R.J.R. Back and K. Sere. Deriving an occam implementation of action systems. In C. Morgan and J.C.P. Woodcock, editors, 4rd Refinement Workshop. Springer-Verlag, January 1991. BCS-FACS, Workshops in Computing.Google Scholar
  4. [BT91a]
    BP Innovation Centre and Edinburgh Portable Compilers Ltd. B-Tool Versionl. 1, Reference Manual, 1991.Google Scholar
  5. [BT91b]
    BP Innovation Centre and Edinburgh Portable Compilers Ltd. B-Tool Versionl.1, Tutorial, 1991.Google Scholar
  6. [BT91c]
    P Innovation Centre and Edinburgh Portable Compilers Ltd. B-Tool Versionl.1, User Manual, 1991.Google Scholar
  7. [Cen91]
    Centaur. Version1.1, Reference Manual, 1991.Google Scholar
  8. [Cen92]
    Centaur. Version1.2, Reference Manual, 1992.Google Scholar
  9. [CM88]
    K.M. Chandy and J. Misra. Parallel Program Design A Foundation. Addison-Wesley Publishing Company, 1988. ISBN 0-201-05866-9.Google Scholar
  10. [Dij76]
    E.W. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.Google Scholar
  11. [DS90]
    E.W. Dijkstra and C.S. Scholten. Predicate Calculus and Program Semantics. Texts and Monographs in Computer Science. Springer Verlag, 1990.Google Scholar
  12. [Gol90]
    D.M. Goldschlag. Mechanically verifying concurrent programs with the boyermoore prover. IEEE Transactions on Software Engineering, 16(9):1005–1023, September 1990.CrossRefGoogle Scholar
  13. [GT90]
    A.J.M. Van Gasteren and G. Tel. Comments on ”on the proof of a distributed algorithm”: always true is not invariant. Information Processing Letters, 35:277–279, 1990.CrossRefGoogle Scholar
  14. [Kna90]
    E. Knapp. An exercise in the formal derivation of parallel programs: Maximum flows in graphs. Transactions On Programming Languages and Systems, 12(2):203–223, 1990.CrossRefGoogle Scholar
  15. [Lam77]
    L. Lamport. Proving the correctness of multiprocess programs. Trans. on Software Engineering 1, 1977.Google Scholar
  16. [Lam90]
    L. Lamport. A temporal logic of actions. Technical Report 57, DEC Palo Alto, april 1990.Google Scholar
  17. [Mer86]
    D. Mery. A proof system to derive eventuality properties under justice hypothesis. In LNCS, number 233. Mathematical Foundations of Computer Science, 1986. Bratislava, Tchecoslovaquie.Google Scholar
  18. [Mer92]
    D. Mery. The NU system as a development system for concurrent programs: δ NU. Theoretical Computer Science, 94(2):311–334, march 1992.CrossRefGoogle Scholar
  19. [Mis90]
    J. Misra. Soundness of the substitution axiom. Notes on Unity, pages 14–90, 1990.Google Scholar
  20. [San91]
    B.A. Sanders. Eliminating the substitution axiom from unity logic. Formal Aspects of Computing, 3:189–205, 1991.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Naïma Brown
    • 1
  • Dominique Mery
    • 1
  1. 1.CRIN-CNRS & INRIA LorraineVandœuvre-lès-NancyFrance

Personalised recommendations