Refinement in Circus

  • Augusto Sampaio
  • Jim Woodcock
  • Ana Cavalcanti
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2391)


We describe refinement in Circus, a concurrent specification language that integrates imperative CSP, Z, and the refinement calculus. Each Circus process has a state and accompanying actions that define both the internal state transitions and the changes in control flow that occur during execution. We define the meaning of refinement of processes and their actions, and propose a sound data refinement technique for process refinement. Refinement laws for CSP and Z are directly relevant and applicable to Circus, but our focus here is on new laws for processes that integrate state and control. We give some new results about the distribution of data refinement through the combinators of CSP. We illustrate our ideas with the development of a distributed system of cooperating processes from a centralised specification.


CSP distribution unifying theories of programming 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    R. J. R. Back. Refinement of parallel and reactive programs. In Proceedings of the Summer School on Program Design Calculi, Lecture Notes in Computer Science. Springer-Verlag, 1992.Google Scholar
  2. 2.
    A. L. C. Cavalcanti and J. C. P. Woodcock. ZRC-A Refinement Calculus for Z. Formal Aspects of Computing, 10(3):267–289, 1999.CrossRefGoogle Scholar
  3. 3.
    E. W. Dijkstra. Guarded commands, nondeterminacy and the formal derivation of programs. Communication of the ACM, 18:453–457, 1975.zbMATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    C. Fischer. How to Combine Z with a Process Algebra. In J. Bowen, A. Fett, and M. Hinchey, editors, ZUM’98: The Z Formal Specification Notation. Springer-Verlag, 1998.Google Scholar
  5. 5.
    J. He, C. A. R. Hoare, and J. W. Sanders. Data Refinement Refined. In G. Goos and H. Hartmants, editors, ESOP’86 European Symposium on Programming, volume 213 of Lecture Notes in Computer Science, pages 187–196, March 1986.Google Scholar
  6. 6.
    C. A. R. Hoare. An Axiomatic Basis for Computer Programming. Communications of the ACM, 12:576–580, 1969.zbMATHCrossRefGoogle Scholar
  7. 7.
    C. A. R. Hoare. Proof of Correctness of Data Representations. Acta Informatica, 1:271–281, 1972.zbMATHCrossRefGoogle Scholar
  8. 8.
    C. A. R. Hoare. Communicating Sequential Processes. Prentice-Hall International, 1985.Google Scholar
  9. 9.
    C. A. R. Hoare and He Jifeng. Unifying Theories of Programming. Prentice-Hall, 1998.Google Scholar
  10. 10.
    C. C. Morgan. Programming from Specifications. Prentice-Hall, 2nd edition, 1994.Google Scholar
  11. 11.
    C. C. Morgan and P. H. B. Gardiner. Data Refinement by Calculation. Acta Informatica, 27(6):481–503, 1990.zbMATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    J. M. Morris. A Theoretical Basis for Stepwise Refinement and the Programming Calculus. Science of Computer Programming, 9(3):287–306, 1987.zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    S. Owicki and D. Gries. An axiomatic proof technique for parallel programs I. Acta Informatica, 6:319–340, 1976.zbMATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    S. Owicki and D. Gries. Verifying properties of parallel programs: an axiomatic approach. Communications of the ACM, 19(5):279–285, 1976.zbMATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    A. W. Roscoe. The Theory and Practice of Concurrency. Prentice-Hall Series in Computer Science. Prentice-Hall, 1998.Google Scholar
  16. 16.
    J. M. Spivey. The Z Notation: A Reference Manual. Prentice-Hall, 2nd edition, 1992.Google Scholar
  17. 17.
    J. C. P. Woodcock and A. L. C. Cavalcanti. Circus: a concurrent refinement language. Technical report, Oxford University Computing Laboratory, Wolfson Building, Parks Road, Oxford OX1 3QD UK, July 2001.Google Scholar
  18. 18.
    J. C. P. Woodcock and A. L. C. Cavalcanti. A concurrent language for refinement. In Andrew Butterfield and Claus Pahl, editors, IWFM’01: 5th Irish Workshop in Formal Methods. Computer Science Department, Trinity College Dublin, July 2001.Google Scholar
  19. 19.
    J. C. P. Woodcock and A. L. C. Cavalcanti. The steam boiler in a unified theory of Z and CSP. In 8th Asia-Pacific Software Engineering Conference (APSEC 2001), 2001.Google Scholar
  20. 20.
    J. C. P. Woodcock and A. L. C. Cavalcanti. The Semantics of Circus. In ZB 2002 International Conference, 2002. To appear.Google Scholar
  21. 21.
    J. C. P. Woodcock and J. Davies. Using Z-Specification, Refinement, and Proof. Prentice-Hall, 1996.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Augusto Sampaio
    • 1
  • Jim Woodcock
    • 2
  • Ana Cavalcanti
    • 1
  1. 1.UFPECentro de InformáticaRecife PEBrazil
  2. 2.University of KentCanterburyEngland - UK

Personalised recommendations