Skip to main content
Log in

A UTP semantics for Circus

  • Original Article
  • Published:
Formal Aspects of Computing

Abstract

Circus specifications define both data and behavioural aspects of systems using a combination of Z and CSP constructs. Previously, a denotational semantics has been given to Circus; however, a shallow embedding of Circus in Z, in which the mapping from Circus constructs to their semantic representation as a Z specification, with yet another language being used as a meta-language, was not useful for proving properties like the refinement laws that justify the distinguishing development technique associated with Circus. This work presents a final reference for the Circus denotational semantics based on Hoare and He’s Unifying Theories of Programming (UTP); as such, it allows the proof of meta-theorems about Circus including the refinement laws in which we are interested. Its correspondence with the CSP semantics is illustrated with some examples. We also discuss the library of lemmas and theorems used in the proofs of the refinement laws. Finally, we give an account of the mechanisation of the Circus semantics and of the mechanical proofs of the refinement laws.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Abrial J-R (2003) B#: toward a synthesis between Z and B. In: Bert D, Bowen JP, King S, Waldén M (eds) ZB, vol 3582 of LNCS. Springer, Heidelberg, pp 168–177

  2. Back RJR (1978) On the correctness of refinement steps in program development. PhD Thesis, Department of Computer Science, University of Helsinki. Report A-1978-4

  3. Bowen JP, Gordon MJC (1995) A shallow embedding of Z in HOL. Inf Softw Technol 37(5–6):269–276

    Article  Google Scholar 

  4. Camilleri AJ (1990) A higher order logic mechanization of the CSP failure-divergence semantics. Technical Report HPL-90-194, HP Laboratories, Bristol

  5. Camilleri AJ (1990) Mechanizing CSP trace theory in higher order logic. IEEE Trans Softw Eng 16(9):993–1004

    Article  Google Scholar 

  6. Carrington D, Duke D, Duke R, King P, Rose GA, Smith G (1990) Object-Z: an object-oriented extension to Z. In: Vuong ST (ed) Formal description techniques, II (FORTE’89), pp 281–296

  7. Cavalcanti ALC, Sampaio ACA (2003) Woodcock JCP A refinement strategy for Circus. Formal Aspects Comput 15(2–3):146–181

    Article  MATH  Google Scholar 

  8. Cavalcanti ALC, Woodcock JCP (1999) ZRC—a refinement calculus for Z. Formal Aspects Comput 10(3):267–289

    Article  Google Scholar 

  9. Cavalcanti ALC, Woodcock JCP (2006) A tutorial introduction to CSP in unifying theories of programming. In: Cavalcanti ALC, Sampaio ACA, Woodcock JCP (eds) Refinement techniques in software engineering, vol 3167 of LNCS. Springer, Heidelberg, pp 220–268

    Chapter  Google Scholar 

  10. Dijkstra EW (1976) A discipline of programming. Prentice-Hall, Englewood Cliffs

    MATH  Google Scholar 

  11. Dutertre B, Schneider S (1997) Using a PVS Embedding of CSP to Verify Authentication Protocols. In: Gunter EL, Felty A (eds) Theorem proving in higher order logics: 10th international conference. TPHOLs’97, vol 1275 of LNCS. Springer, Heidelberg, pp 121–136

    Chapter  Google Scholar 

  12. Fischer C (1997) CSP-OZ: A combination of object-Z and CSP. In: Bowman H, Derrick J (eds) Formal methods for open object-based distributed systems (FMOODS’97), vol 2. Chapman & Hall, London, pp 423–438

    Google Scholar 

  13. Fischer C (1998) How to combine Z with a process algebra. In: Bowen J, Fett A, Hinchey M (eds) ZUM’98: proceedings of the 11th international conference of Z users on the Z formal specification notation. Springer, Heidelberg, pp 5–23

    Google Scholar 

  14. The RAISE Language Group (1992) The RAISE specification language. Prentice-Hall, Englewood Cliffs

  15. Galloway A, Stoddart B (1997) An operational semantics for ZCCS. In: Hinchey MG (ed) ICFEM’97: proceedings of the 1st international conference on formal engineering methods. IEEE Computer Society, Washington, p 272

  16. Hoare CAR, Jifeng H (1998) Unifying theories of programming. Prentice-Hall, Englewood Cliffs

    Google Scholar 

  17. Hoare CAR (1985) Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs

    MATH  Google Scholar 

  18. Mahony BP, Dong JS (1998) Blending Object-Z and timed CSP: an introduction to TCOZ. In: Torii K, Futatsugi K, Kemmerer RA (eds) The 20th international conference on software engineering (ICSE’98). IEEE Computer Society Press, Washington, pp 95–104

    Chapter  Google Scholar 

  19. Morris JM (1987) A theoretical basis for stepwise refinement and the programming calculus. Sci Comput Programm 9(3):287–306

    Article  MATH  Google Scholar 

  20. Morgan C (1994) Programming from Specifications. Prentice-Hall, Englewood Cliffs

    MATH  Google Scholar 

  21. Mota AC, Sampaio ACA (1998) Model-checking CSP-Z. In: Astesiano E (ed) Proceedings of FASE’98, held as part of the ETAPS’98: European joint conference on theory and practice of software, vol 1382 of LNCS. Springer, Heidelberg, pp 205–220

  22. Nuka G, Woodcock JCP (2004) Mechanising the alphabetised relational calculus. In: WMF2003: 6th Braziliam Workshop on Formal Methods, vol 95. Campina Grande, Brazil, pp 209–225

  23. Nuka G, Woodcock JCP (2006) Mechanising a unifying theory. In: Dunne S, Stoddart B (eds) UTP 2006: first international symposium on unifying theories of programming, vol 4010 of LNCS. Springer, Heidelberg, pp 217–235

    Google Scholar 

  24. Oliveira MVM, Cavalcanti ALC, Woodcock JCP (2005) Formal development of industrial-scale systems. Innovat Syst Softw Eng NASA J 1(2):125–146

    Article  Google Scholar 

  25. Oliveira MVM, Cavalcanti ALC, Woodcock JCP (2006) A Denotational Semantics for Circus. In: Aichernig B, Boiten E, Derrick J, Groves L (eds) International refinement workshop, vol 187 of electronic notes in theoretical computer science. Elsevier, Amsterdam, pp 107–123

    Google Scholar 

  26. Oliveira MVM, Cavalcanti ALC, Woodcock JCP (2006) Unifying theories in ProofPower-Z. In: Dunne S, Stoddart B (eds) UTP 2006: first international symposium on unifying theories of programming, vol 4010 of LNCS. Springer, Heiddelberg, pp 123–140

    Google Scholar 

  27. Oliveira MVM Formal Derivation of state-rich reactive programs using Circus—additional material, 2005. At http://www.cs.york.ac.uk/circus/refinement-calculus/oliveira-phd/

  28. Oliveira MVM (2005) Formal derivation of state-rich reactive programs using Circus. PhD Thesis, Department of Computer Science, University of York, YCST-2006/02

  29. ProofPower. Athttp://www.lemma-one.com/ProofPower/index/index.html

  30. Qin SC, Dong JS, Chin WN (2003) A semantic foundation of TCOZ in unifying theories of programming. In: Araki K, Gnesi S, Mandrioli D (eds) FME 2003: formal methods, vol 2805 of LNCS. Springer, Heidelberg, pp 321–340

    Google Scholar 

  31. Roscoe AW (1998) The theory and practice of concurrency. Prentice-Hall Series in Computer Science. Prentice-Hall, Englewood Cliffs

    Google Scholar 

  32. Roscoe AW, Woodcock JCP, Wulf L (1994) Non-interference through Determinism. In: Gollmann D (ed) ESORICS 94, vol 875 of LNCS. Springer, Heidelberg, pp 33–54

    Google Scholar 

  33. Saaltink M (1997) The Z/EVES System. In: Bowen JP, Hinchey MG, Till D (eds) ZUM’97: The Z formal specification notation, vol 1212 of LNCS. Springer, Heidelberg, pp 72–85

    Chapter  Google Scholar 

  34. Smith G (1997) A semantic integration of Object-Z and CSP for the specification of concurrent systems specified in Object-Z and CSP. In: Fitzgerald J, Jones CB, Lucas P (eds) Proceedings of FME’97, vol 1313 of LNCS. Springer, Heidelberg, pp 62–81

    Google Scholar 

  35. Spivey JM (1992) The Z notation: a reference manual, 2nd edn. Prentice-Hall, Englewood Cliffs

    Google Scholar 

  36. Taguchi K, Araki K (1997) The state-based CCS semantics for concurrent Z specification. In: Hinchey M, Liu S (eds) International conference on formal engineering methods. IEEE, Washington, pp 283–292

  37. Treharne H, Schneider S (1999) Using a process algebra to control B operations. In: Araki K, Galloway A, Taguchi K (eds) Proceedings of the 1st international conference on integrated formal methods. Springer, Heidelberg, pp 437–456

    Google Scholar 

  38. Woodcock JCP, Cavalcanti ALC (2002) The semantics of Circus. In: Bert D, Bowen JP, Henson MC, Robinson K (eds) ZB 2002: formal specification and development in Z and B, vol 2272 of LNCS. Springer, Heidelberg, pp 184–203

    Chapter  Google Scholar 

  39. Woodcock JCP, Cavalcanti ALC, Freitas L (2005) Operational semantics for model-checking Circus. In: Fitzgerald J, Hayes IJ, Tarlecki A (eds) FM 2005: formal methods, vol 3582 of LNCS. Springer, Heidelberg, pp 237–252

    Google Scholar 

  40. Woodcock JCP, Davies J (1996) Using Z—specification, refinement, and proof. Prentice-Hall, Englewood Cliffs

    MATH  Google Scholar 

  41. Woodcock JCP, Davies J, Bolton C (2000) Abstract data types and processes. In: Roscoe AW, Davies J, Woodcock JCP (eds) Millennial perspectives in computer science, proceedings of the 1999 Oxford-Microsoft Symposium in Honour of Sir Tony Hoare. Palgrave, pp 391–405

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marcel Oliveira.

Additional information

B. K. Aichernig, E. A. Boiten, M. J. Butler, J. Derrick, L. Groves and C. B. Jones

Rights and permissions

Reprints and permissions

About this article

Cite this article

Oliveira, M., Cavalcanti, A. & Woodcock, J. A UTP semantics for Circus . Form Asp Comp 21, 3–32 (2009). https://doi.org/10.1007/s00165-007-0052-5

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00165-007-0052-5

Keywords

Navigation