Verification and refinement of distributed programs in a fair framework

  • Luis A. Galán
  • Ricardo Peña
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1231)


In this paper, we present a technique to prove progress properties of non-terminating concurrent programs and to refine them in such a way that these properties are preserved. We rely on strong fairness assumptions about the language implementation.

We define a simple language based on Hoare-78 CSP. A program denotes a set of finite and infinite traces corresponding to all its possible computations. The semantics of a program is defined as the set of its fair traces. We also give a liveness-preserving implementation notion. Proof rules concerning progress properties and correction of refinements are given. We show that these proof rules are consistent with the given fair semantics. Finally, we verify and refine a non-trivial case study.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AO91]
    K. R. Apt and E.-R. Olderog. Verification of Sequential and Concurrent Programs. Springer-Verlag, 1991.Google Scholar
  2. [CM88]
    K. M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison Wesley, Reading, Massachusetts, 1988.MATHGoogle Scholar
  3. [CM90]
    K.M. Chandy and J. Misra. Proof of Distributed Algorithms: An Exercise. In C.A.R. Hoare, editor, Development in Concurrency and Communication, pages 305–332. Addison Wesley, 1990.Google Scholar
  4. [Fra86]
    N. Francez. Fairness. Springer-Verlag, 1986.Google Scholar
  5. [Fra92]
    N. Francez. Program Verification. Addison-Wesley, 1992.Google Scholar
  6. [GP97]
    L.A. Galán and R. Peña. Verification and Refinement of Distributed Programs in a Fair Framework. Technical Report DIA-UCM 97/47, Universidad Complutense de Madrid, 1997.Google Scholar
  7. [Hoa78]
    C. A. R. Hoare. Communicating Sequential Processes. Comm. ACM, 21:666–677, 1978.CrossRefMATHGoogle Scholar
  8. [Lam77]
    L. Lamport. Proving the Correctness of Multiprocess Programs. IEEE Trans. on Software Engineering, SE-3(2): 125–143, March 1977.MathSciNetCrossRefMATHGoogle Scholar
  9. [OA88]
    E.-R. Olderog and K. R. Apt. Fairness in Parallel Programs, the Transformational Approach. ACM Transactions on Programming Languages, 10(3):420–455, July 1988.CrossRefGoogle Scholar
  10. [OL82]
    S. S. Owicki and L. Lamport. Proving Liveness Properties of Concurrent Programs. ACM TOPLAS, 4(3):455–495, July 1982.CrossRefMATHGoogle Scholar
  11. [Par86]
    J. Parrow. Fairness Properties in Process Algebra. Ph.D. thesis. Department of Computer Science, Uppsala University, Sweden, 1986.Google Scholar
  12. [Pnu77]
    A. Pnueli. The Temporal Logic of Programs. In 18th Symp. on the Foundations of Computer Science, pages 46–47, November 1977.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Luis A. Galán
    • 1
  • Ricardo Peña
    • 1
  1. 1.Departamento de Informática y AutomáticaUniversidad Complutense de MadridMadridSpain

Personalised recommendations