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.
Similar content being viewed by others
References
Arthan R PowerProof Reference Page. http://www.lemma-one.com/ProofPower/index/index.html
Bowen JP, Gordon MJC (1995) A shallow embedding of Z in HOL. Inf Softw Technol 37(5–6):269–276
Camilleri AJ (1990) A higher order logic mechanization of the csp failure-divergence semantics. Technical Report HPL-90-194, HP Laboratories, Bristol
Camilleri AJ (1990) Mechanizing CSP trace theory in higher order logic. IEEE Trans Softw Eng 16(9):993–1004
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
Cavalcanti ALC, Sampaio ACA, Woodcock JCP (2003) A refinement strategy for Circus. Formal Asp Comput 15(2–3):146–181
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
Cavalcanti ALC, Woodcock JCP, Dunne S (2006) Angelic nondeterminism in the unifying theories of programming. Formal Asp Comput 18(3):288–307
Dijkstra EW (1976) A discipline of programming. Prentice-Hall, Englewood Cliffs
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
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
Gordon MJC, Melham TF (eds) (1993) Introduction to HOL: a theorem proving environment for higher order logic. Cambridge University Press, Cambridge
Gordon M, Milner R, Wadsworth C (1979) Edinburgh LCF, Vol 78 of LNCS. Springer, Heidelberg
Hoare CAR, Jifeng H (1998) Unifying theories of programming. Prentice-Hall, Englewood Cliffs
Hoare CAR (1985) Communicating sequential processes. Prentice-Hall, Englewood Cliffs
ISO/IEC 13568:2002. Information technology—Z formal specification notation—syntax, type system and semantics, 2002. International Standard
King DJ, Arthan RD, Winnersh ICL (1996) Development of practical verification tools. ICL Syst J 11(1)
Morgan C (1994) Programming from specifications. Prentice-Hall, Englewood Cliffs
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
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
Oliveira MVM, Cavalcanti ALC, Woodcock JCP (2005) Formal development of industrial-scale systems. Innovat Syst Softw Eng NASA J 1(2):125–146
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)
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
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/
Oliveira MVM (2005) Formal derivation of state-rich reactive programs using Circus. PhD thesis, Department of Computer Science, University of York. YCST-2006/02
Paulson LC (1991) ML for the Working Programmer. Cambridge University Press, Cambridge
ProofPower. At http://www.lemma-one.com/ProofPower/index/index.html
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
Roscoe AW (1998) The theory and practice of concurrency. Prentice-Hall Series in Computer Science, Prentice-Hall
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
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
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
Seres S, Spivey MJ (1999) Embedding prolog into haskell. In: Haskell Workshop’99, Sep 1999
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
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
Woodcock JCP, Cavalcanti ALC (2001) Circus: a concurrent refinement language. Technical report, Oxford University Computing Laboratory, Wolfson Building,
Woodcock JCP, Davies J (1996) Using Z—specification, refinement, and proof. Prentice-Hall University Press, Englewood Cliffs
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
Author information
Authors and Affiliations
Corresponding author
Additional information
S E Dunne and T S E Maibaum
Rights 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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-007-0044-5