Unifying Theories of Programming in Isabelle

  • Simon Foster
  • Jim Woodcock
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8050)


This is a tutorial introduction to the two most basic theories in Hoare & He’s Unifying Theories of Programming and their mechanisation in the Isabelle interactive theorem prover. We describe the theories of relations and of designs (pre-postcondition pairs), interspersed with their formalisation in Isabelle and example mechanised proofs.


Unifying Theories of Programming (UTP) Denotational Semantics Laws of Programming Isabelle Interactive Theorem Proving 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abrial, J.-R.: The B-Book: Assigning Progams to Meanings. Cambridge University Press (1996)Google Scholar
  2. 2.
    Back, R.J.R., Wright, J.: Refinement Calculus: A Systematic Introduction. Graduate Texts in Computer Science. Springer (1998)Google Scholar
  3. 3.
    Blanchette, J.C., Nipkow, T.: Nitpick: A counterexample generator for higher-order logic based on a relational model finder. In: Kaufmann, M., Paulson, L.C. (eds.) ITP 2010. LNCS, vol. 6172, pp. 131–146. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  4. 4.
    Blanchette, J.C., Bulwahn, L., Nipkow, T.: Automatic Proof and Disproof in Isabelle/HOL. In: Tinelli, C., Sofronie-Stokkermans, V. (eds.) FroCoS 2011. LNCS, vol. 6989, pp. 12–27. Springer, Heidelberg (2011) §CrossRefGoogle Scholar
  5. 5.
    Butterfield, A., Sherif, A., Woodcock, J.: Slotted-Circus. In: Davies, J., Gibbons, J. (eds.) IFM 2007. LNCS, vol. 4591, pp. 75–97. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Beg, A., Butterfield, A.: Linking a state-rich process algebra to a state-free algebra to verify software/hardware implementation. In: Proceedings of the 8th International Conference on Frontiers of Information Technology, FIT 2010, article 47 (2010)Google Scholar
  7. 7.
    Cavalcanti, A., Woodcock, J.: A tutorial introduction to CSP in Unifying Theories of Programming. In: Cavalcanti, A., Sampaio, A., Woodcock, J. (eds.) PSSE 2004. LNCS, vol. 3167, pp. 220–268. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  8. 8.
    Cavalcanti, A., Sampaio, A., Woodcock, J.: Unifying classes and processes. Software and System Modeling 4(3), 277–296 (2005)CrossRefGoogle Scholar
  9. 9.
    de Moura, L., Bjørner, N.: Z3: An efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  10. 10.
    Feliachi, A., Gaudel, M.-C., Wolff, B.: Isabelle/Circus: A Process Specification and Verification Environment. In: Joshi, R., Müller, P., Podelski, A. (eds.) VSTTE 2012. LNCS, vol. 7152, pp. 243–260. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  11. 11.
    Harwood, W., Cavalcanti, A., Woodcock, J.: A theory of pointers for the UTP. In: Fitzgerald, J.S., Haxthausen, A.E., Yenigun, H. (eds.) ICTAC 2008. LNCS, vol. 5160, pp. 141–155. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  12. 12.
    Hehner, E.C.R.: Retrospective and prospective for Unifying Theories of Programming. In: Dunne, S., Stoddart, B. (eds.) UTP 2006. LNCS, vol. 4010, pp. 1–17. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  13. 13.
    Hillenbrand, T., Buch, A., Vogt, R., Löchner, B.: Waldmeister: High-performance equational deduction. Journal of Automated Reasoning 18(2), 265–270 (1997)CrossRefGoogle Scholar
  14. 14.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall (1985)Google Scholar
  15. 15.
    Hoare, C.A.R., He, J.: Unifying Theories of Programming. Series in Computer Science. Prentice Hall (1998)Google Scholar
  16. 16.
    Jones, C.B.: Systematic Software Development Using VDM. Prentice-Hall International (1986)Google Scholar
  17. 17.
    Morgan, C.: Programming from Specifications, 2nd edn. Prentice-Hall (1994)Google Scholar
  18. 18.
    Morris, J.M.: A Theoretical Basis for Stepwise Refinement and the Programming Calculus. Science of Computer Programming 9(3), 287–306 (1987)MathSciNetCrossRefMATHGoogle Scholar
  19. 19.
    Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)MATHGoogle Scholar
  20. 20.
    Oliveira, M.V.M.: Formal derivation of state-rich reactive programs using Circus. PhD Thesis, Department of Computer Science, University of York, Report YCST-2006/02 (2005)Google Scholar
  21. 21.
    Oliveira, M., Cavalcanti, A., Woodcock, J.: A UTP semantics for Circus. Formal Asp. Comput. 21(1-2), 3–32 (2009)CrossRefMATHGoogle Scholar
  22. 22.
    Oliveira, M., Cavalcanti, A., Woodcock, J.: Unifying theories in ProofPower-Z. Formal Aspects of Computing 25(1), 133–158 (2013)MathSciNetCrossRefMATHGoogle Scholar
  23. 23.
    Perna, J.I., Woodcock, J.: UTP semantics for Handel-C. In: Butterfield, A. (ed.) UTP 2008. LNCS, vol. 5713, pp. 142–160. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  24. 24.
    Riazanov, A., Voronkov, A.: The design and implementation of Vampire. Journal of AI Communications 15(2/3), 91–110 (2002)MATHGoogle Scholar
  25. 25.
    Sampaio, A., Woodcock, J., Cavalcanti, A.: Refinement in Circus. In: Eriksson, L.-H., Lindsay, P.A. (eds.) FME 2002. LNCS, vol. 2391, pp. 451–470. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  26. 26.
    Schultz, S.: E—A braniac theorem prover. Journal of AI Communications 15(2/3), 111–126 (2002)Google Scholar
  27. 27.
    Sherif, A., He, J.: Towards a Time Model for Circus. In: George, C.W., Miao, H. (eds.) ICFEM 2002. LNCS, vol. 2495, pp. 613–624. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  28. 28.
    Michael Spivey, J.: The Z Notation: A Reference Manual, 2nd edn. Series in Computer Science. Prentice Hall International (1992)Google Scholar
  29. 29.
    Tang, X., Woodcock, J.: Towards Mobile Processes in Unifying Theories. In: 2nd International Conference on Software Engineering and Formal Methods (SEFM 2004), Beijing, China, September 28–30, pp. 44–53. IEEE Computer Society (2004)Google Scholar
  30. 30.
    Tang, X., Woodcock, J.: Travelling Processes. In: Kozen, D., Shankland, C. (eds.) MPC 2004. LNCS, vol. 3125, pp. 381–399. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  31. 31.
    Wei, K., Woodcock, J., Cavalcanti, A.: Circus Time with Reactive Designs. In: Wolff, B., Gaudel, M.-C., Feliachi, A. (eds.) UTP 2012. LNCS, vol. 7681, pp. 68–87. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  32. 32.
    Weidenbach, C., Dimova, D., Fietzke, A., Kumar, R., Suda, M., Wischnewski, P.: SPASS Version 3.5. In: Schmidt, R.A. (ed.) CADE 2009. LNCS, vol. 5663, pp. 140–145. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  33. 33.
    Woodcock, J., Davies, J.: Using Z—Specification, Refinement, and Proof. Prentice-Hall (1996)Google Scholar
  34. 34.
    Woodcock, J., Cavalcanti, A.: A Concurrent Language for Refinement. In: Butterfield, A., Strong, G., Pahl, C. (eds.) 5th Irish Workshop on Formal Methods, IWFM 2001, Dublin, Ireland, July 16–17. BCS Workshops in Computing, pp. 16–17 (2001)Google Scholar
  35. 35.
    Woodcock, J., Cavalcanti, A.: The Semantics of Circus. In: Bert, D., Bowen, J.P., Henson, M.C., Robinson, K. (eds.) ZB 2002. LNCS, vol. 2272, pp. 184–203. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  36. 36.
    Woodcock, J., Cavalcanti, A.: A tutorial introduction to Designs in Unifying Theories of Programming. In: Boiten, E.A., Derrick, J., Smith, G. (eds.) IFM 2004. LNCS, vol. 2999, pp. 40–66. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  37. 37.
    Woodcock, J., Cavalcanti, A., Fitzgerald, J., Larsen, P., Miyazawa, A., Perry, S.: Features of CML: A formal modelling language for Systems of Systems. In: 7th IEEE International Conference on System of Systems Engineering (SoSE), pp. 1–6 (2012)Google Scholar
  38. 38.
    Zhan, N., Kang, E.Y., Liu, Z.: Component publications and compositions. In: Butterfield, A. (ed.) UTP 2008. LNCS, vol. 5713, pp. 238–257. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  39. 39.
    Zhu, H., Yang, F., He, J.: Generating denotational semantics from algebraic semantics for event-driven system-level language. In: Qin, S. (ed.) UTP 2010. LNCS, vol. 6445, pp. 286–308. Springer, Heidelberg (2010)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Simon Foster
    • 1
  • Jim Woodcock
    • 1
  1. 1.Department of Computer ScienceUniversity of YorkYorkGreat Britain

Personalised recommendations