Skip to main content
Log in

Unifying theories in ProofPower-Z

  • Original Article
  • Published:
Formal Aspects of Computing

Abstract

The increasing interest in the combination of different computational paradigms is well represented by Hoare and He in the Unifying Theories of Programming (UTP). In this paper, we present a mechanisation of part of that work in a theorem prover, ProofPower-Z; the theories of alphabetised relations, designs, reactive and CSP processes are in the scope of this paper. Furthermore, the mechanisation of Circus, a language that combines Z, CSP, specification statements and Dijkstra’s guarded command language, is also presented here. We also present an account of how this mechanisation is achieved, and more interestingly, of what issues were raised, and of our decisions. We aim at providing tool support not only for CSP and Circus, but also for further explorations of Hoare and He’s unification, and for the mechanisation of languages whose semantics is based on the UTP.

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. Arthan R PowerProof Reference Page. http://www.lemma-one.com/ProofPower/index/index.html

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

    Article  Google Scholar 

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

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

    Article  Google Scholar 

  5. Cavalcanti ALC, Clayton P, O’Halloran C (2005) Control law diagrams in Circus. In: Fitzgerald J, Hayes IJ, Tarlecki A (eds) FM 2005: formal methods symposium, Vol 3582 of LNCS. Springer, Heidelberg, pp 253–268

    Chapter  Google Scholar 

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

    Article  MATH  Google Scholar 

  7. 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 

  8. Cavalcanti ALC, Woodcock JCP, Dunne S (2006) Angelic nondeterminism in the unifying theories of programming. Formal Asp Comput 18(3):288–307

    Article  MATH  Google Scholar 

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

    MATH  Google Scholar 

  10. 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, Murray Hill, August 1997. Springer, Heidelberg, pp 121–136

    Chapter  Google Scholar 

  11. 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, New York, pp 423–438

    Google Scholar 

  12. Gordon MJC, Melham TF (eds) (1993) Introduction to HOL: a theorem proving environment for higher order logic. Cambridge University Press, Cambridge

    MATH  Google Scholar 

  13. Gordon M, Milner R, Wadsworth C (1979) Edinburgh LCF, Vol 78 of LNCS. Springer, Heidelberg

    Book  Google Scholar 

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

    Google Scholar 

  15. Hoare CAR (1985) Communicating sequential processes. Prentice-Hall, Englewood Cliffs

    MATH  Google Scholar 

  16. ISO/IEC 13568:2002. Information technology—Z formal specification notation—syntax, type system and semantics, 2002. International Standard

  17. King DJ, Arthan RD, Winnersh ICL (1996) Development of practical verification tools. ICL Syst J 11(1)

  18. Morgan C (1994) Programming from specifications. Prentice-Hall, Englewood Cliffs

    MATH  Google Scholar 

  19. 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

  20. 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 

  21. 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 

  22. Oliveira MVM, Cavalcanti ALC, Woodcock JCP (2006) A denotational semantics for Circus. In: Aichernig B, Boiten E, Derrick J, Groves L (eds) Refine—international refinement workshop, eletronic notes in theoretical computer science. Springer, Heidelberg (to appear)

  23. 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, Heidelberg, pp 123–140

    Google Scholar 

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

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

  26. Paulson LC (1991) ML for the Working Programmer. Cambridge University Press, Cambridge

    Google Scholar 

  27. ProofPower. At http://www.lemma-one.com/ProofPower/index/index.html

  28. 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

    Chapter  Google Scholar 

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

    Google Scholar 

  30. 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 

  31. 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 

  32. Sherif A, Jifeng H (2002) Towards a time model for Circus. In: George C, Miao H (eds) Formal methods and software engineering: 4th international conference on formal engineering methods, ICFEM 2002, Vol 2495 of LNCS. Springer, Heidelberg, pp 613–624

    Google Scholar 

  33. Seres S, Spivey MJ (1999) Embedding prolog into haskell. In: Haskell Workshop’99, Sep 1999

  34. 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, New York, pp 283–292

    Chapter  Google Scholar 

  35. 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 

  36. Woodcock JCP, Cavalcanti ALC (2001) Circus: a concurrent refinement language. Technical report, Oxford University Computing Laboratory, Wolfson Building,

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

    MATH  Google Scholar 

  38. Woodcock JCP, Hughes A (2002) Unifying theories of parallel programming. In: George C, Miao H (eds) Formal methods and software engineering: 4th international conference on formal engineering methods, ICFEM 2002, Vol 2495 of LNCS. Springer, Heidelberg, pp 24–37

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marcel Oliveira.

Additional information

S E Dunne and T S E Maibaum

Rights and permissions

Reprints and permissions

About this article

Cite this article

Oliveira, M., Cavalcanti, A. & Woodcock, J. Unifying theories in ProofPower-Z. Form Asp Comp 25, 133–158 (2013). https://doi.org/10.1007/s00165-007-0044-5

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

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

Keywords

Navigation