Advertisement

Formal Aspects of Computing

, Volume 21, Issue 1–2, pp 3–32 | Cite as

A UTP semantics for Circus

  • Marcel OliveiraEmail author
  • Ana Cavalcanti
  • Jim Woodcock
Original Article

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.

Keywords

Relational model Concurrency Refinement calculus Theorem proving 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abr03.
    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–177Google Scholar
  2. Bac78.
    Back RJR (1978) On the correctness of refinement steps in program development. PhD Thesis, Department of Computer Science, University of Helsinki. Report A-1978-4Google Scholar
  3. BG95.
    Bowen JP, Gordon MJC (1995) A shallow embedding of Z in HOL. Inf Softw Technol 37(5–6):269–276CrossRefGoogle Scholar
  4. Cam90a.
    Camilleri AJ (1990) A higher order logic mechanization of the CSP failure-divergence semantics. Technical Report HPL-90-194, HP Laboratories, BristolGoogle Scholar
  5. Cam90b.
    Camilleri AJ (1990) Mechanizing CSP trace theory in higher order logic. IEEE Trans Softw Eng 16(9):993–1004CrossRefGoogle Scholar
  6. CDD+90.
    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–296Google Scholar
  7. CSW03.
    Cavalcanti ALC, Sampaio ACA (2003) Woodcock JCP A refinement strategy for Circus. Formal Aspects Comput 15(2–3):146–181zbMATHCrossRefGoogle Scholar
  8. CW99.
    Cavalcanti ALC, Woodcock JCP (1999) ZRC—a refinement calculus for Z. Formal Aspects Comput 10(3):267–289CrossRefGoogle Scholar
  9. CW06.
    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–268CrossRefGoogle Scholar
  10. Dij76.
    Dijkstra EW (1976) A discipline of programming. Prentice-Hall, Englewood CliffszbMATHGoogle Scholar
  11. DS97.
    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–136CrossRefGoogle Scholar
  12. Fis97.
    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–438Google Scholar
  13. Fis98.
    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–23Google Scholar
  14. Gro92.
    The RAISE Language Group (1992) The RAISE specification language. Prentice-Hall, Englewood CliffsGoogle Scholar
  15. GS97.
    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 272Google Scholar
  16. HJ98.
    Hoare CAR, Jifeng H (1998) Unifying theories of programming. Prentice-Hall, Englewood CliffsGoogle Scholar
  17. Hoa85.
    Hoare CAR (1985) Communicating Sequential Processes. Prentice-Hall, Englewood CliffszbMATHGoogle Scholar
  18. MD98.
    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–104CrossRefGoogle Scholar
  19. Mor87.
    Morris JM (1987) A theoretical basis for stepwise refinement and the programming calculus. Sci Comput Programm 9(3):287–306zbMATHCrossRefGoogle Scholar
  20. Mor94.
    Morgan C (1994) Programming from Specifications. Prentice-Hall, Englewood CliffszbMATHGoogle Scholar
  21. MS98.
    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–220Google Scholar
  22. NW04.
    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–225Google Scholar
  23. NW06.
    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–235Google Scholar
  24. OCW05.
    Oliveira MVM, Cavalcanti ALC, Woodcock JCP (2005) Formal development of industrial-scale systems. Innovat Syst Softw Eng NASA J 1(2):125–146CrossRefGoogle Scholar
  25. OCW06a.
    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–123Google Scholar
  26. OCW06b.
    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–140Google Scholar
  27. Oli05a.
    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. Oli05b.
    Oliveira MVM (2005) Formal derivation of state-rich reactive programs using Circus. PhD Thesis, Department of Computer Science, University of York, YCST-2006/02Google Scholar
  29. PPW.
  30. QDC03.
    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–340Google Scholar
  31. Ros98.
    Roscoe AW (1998) The theory and practice of concurrency. Prentice-Hall Series in Computer Science. Prentice-Hall, Englewood CliffsGoogle Scholar
  32. RWW94.
    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–54Google Scholar
  33. Saa97.
    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–85CrossRefGoogle Scholar
  34. Smi97.
    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–81Google Scholar
  35. Spi92.
    Spivey JM (1992) The Z notation: a reference manual, 2nd edn. Prentice-Hall, Englewood CliffsGoogle Scholar
  36. TA97.
    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–292Google Scholar
  37. TS99.
    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–456Google Scholar
  38. WC02.
    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–203CrossRefGoogle Scholar
  39. WCF05.
    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–252Google Scholar
  40. WD96.
    Woodcock JCP, Davies J (1996) Using Z—specification, refinement, and proof. Prentice-Hall, Englewood CliffszbMATHGoogle Scholar
  41. WDB00.
    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–405Google Scholar

Copyright information

© British Computer Society 2007

Authors and Affiliations

  1. 1.Departamento de Informática e Matemática AplicadaUniversidade Federal do Rio Grande do NorteNatalBrazil
  2. 2.Department of Computer ScienceUniversity of YorkYorkUK

Personalised recommendations