Advertisement

Mechanising a Unifying Theory

  • Gift Nuka
  • Jim Woodcock
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4010)

Abstract

In this paper, we present a formalisation of a subset of the unifying theories of programming (UTP). In UTP, the alphabetised relational calculus is used to describe and relate different programming paradigms, including functional, imperative, logic, and parallel programming.

We develop a verification framework for UTP; we give a formal semantics to an imperative programming language, and use our definitions to create a deep embedding of the language in Z. We use ProofPowerZ, a theorem prover for Z to provide mechanised support for reasoning about programs in the unifying theory.

Keywords

Unify Theory Object Language Program Correctness High Order Logic Denotational Semantic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Back, R.-J., von Wright, J.: Refinement concepts formalised in higher order logic. Formal Asp. Comput. 2(3), 247–272 (1990)CrossRefGoogle Scholar
  2. 2.
    Back, R.-J.J., Akademi, A., Von Wright, J.: Refinement Calculus: A Systematic Introduction. Springer, New York (1998)MATHGoogle Scholar
  3. 3.
    Bowen, J.P., Gordon, M.J.C.: A shallow embedding of Z in HOL. Information and Software Technology 37(5–6), 269–276 (1995)CrossRefGoogle Scholar
  4. 4.
    Bowen, J.P., Gordon, M.J.C.: Z and HOL. In: Bowen, J.P., Hall, J.A. (eds.) Z User Workshop, Cambridge 1994. Workshops in Computing, pp. 141–167. Springer, Heidelberg (1994)Google Scholar
  5. 5.
    De Bruijn, N.G.: Lambda Calculus Notation with Nameless Dummies: A Tool for Automatic Formula Manipulation, with Application to the Church-Rosser Theorem. Indag Math. 34, 381–392 (1972)Google Scholar
  6. 6.
    Butler, M., Grundy, J., Långbacka, T., Rukšėnas, R., von Wright, J.: The refinement calculator: Proof support for program refinement. In: Groves, L., Reeves, S. (eds.) Formal Methods Pacific 1997: Proceedings of FMP 1997, Wellington, New Zealand. Discrete Mathematics and Theoretical Computer Science, pp. 40–61. Springer, Heidelberg (1997)Google Scholar
  7. 7.
    Camilleri, A.J.: Mechamising CSP Trace Theory in Higher Order Logic. IEEE Transactions on Software Engineering 16(9), 88–118 (1990)CrossRefGoogle Scholar
  8. 8.
    Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)MATHGoogle Scholar
  9. 9.
    Floyd, R.W.: Assigning meaning to programs. In: Schwartz, J.T. (ed.) Mathematical aspects of computer science: Proc. American Mathematics Soc. symposia, vol. 19, pp. 19–31. American Mathematical Society, Providence RI (1967)Google Scholar
  10. 10.
    Gabbay, M., Pitts, A.: A new approach to abstract syntax involving binders. In: LICS 1999: Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science, Washington, DC, USA, p. 214. IEEE Computer Society, Los Alamitos (1999)Google Scholar
  11. 11.
    Gordon, M.J.C.: Mechanizing programming logics in higher-order logic. In: Birtwistle, G.M., Subrahmanyam, P.A. (eds.) Current Trends in Hardware Verification and Automatic Theorem Proving (Proceedings of the Workshop on Hardware Verification), Banff, Canada, pp. 387–439. Springer, Berlin (1988)Google Scholar
  12. 12.
    Hehner, E.C.R.: Predicative programming part i. Commun. ACM 27(2), 134–143 (1984)CrossRefMathSciNetMATHGoogle Scholar
  13. 13.
    Hehner, E.C.R.: Predicative programming part ii. Commun. ACM 27(2), 144–151 (1984)CrossRefMathSciNetMATHGoogle Scholar
  14. 14.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)CrossRefMATHGoogle Scholar
  15. 15.
    Hoare, C.A.: Programs are predicates. Prentice-Hall, Englewood Cliffs (1984)Google Scholar
  16. 16.
    Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice-Hall, Englewood Cliffs (1998)Google Scholar
  17. 17.
    Jezequel, J.-M.: Object-oriented software engineering with Eiffel. Addison Wesley Longman Publishing Co., Inc., Redwood City (1996)MATHGoogle Scholar
  18. 18.
    Maddux, R.D.: The origin of relation algebras in the development and axiomatization of the calculus of relations. Studia Logica 6(9), 423–455 (1991)MathSciNetGoogle Scholar
  19. 19.
    Maharaj, S.: Enconding Z-style schemas in type theory. In: Barendregt, H., Nipkow, T. (eds.) TYPES 1993. LNCS, vol. 806. Springer, Heidelberg (1994)Google Scholar
  20. 20.
    Melham, T.F.: A Mechanized Theory of the π-calculus in HOL. Nordic Journal of Computing 1(1), 50–76 (1994)MathSciNetGoogle Scholar
  21. 21.
    Milner, R., Goldon, M.J.C.: Introduction to HOL: A Theorem proving Environment for Higher Order Logic. Cambridge University Press, Cambridge (1993)Google Scholar
  22. 22.
    Morgan, C.: Programming from specifications. Prentice-Hall Inc., Upper Saddle River (1990)MATHGoogle Scholar
  23. 23.
    Morgan, C.C., Sanders, J.W.: Laws of the Logical calculi. Technical Report PRG-78. Programming Research group, Oxford, England (1989)Google Scholar
  24. 24.
    Nelson, G.: A Generalization of Dijkstra’s calculus. ACM Trans. Program. Lang. Syst. 11(4), 517–561 (1989)CrossRefGoogle Scholar
  25. 25.
    Nipkow, T.: Winskel is (almost) right: Towards a mechanized semantics textbook. In: Chandru, V., Vinay, V. (eds.) FSTTCS 1996. LNCS, vol. 1180, pp. 180–192. Springer, Heidelberg (1996)Google Scholar
  26. 26.
    Nuka, G., Woodcock, J.: Mechanising the alphabetised relational calculus. Electr. Notes Theor. Comput. Sci. 95, 209–225 (2004)CrossRefGoogle Scholar
  27. 27.
    Paulson, L.C.: Isabelle - A generic Theorem Prover. Springer, Heidelberg (1994)MATHGoogle Scholar
  28. 28.
    Pitts, A.M.: Nominal logic, a first order theory of names and binding. Information and Computation 186(2), 165–193 (2003)CrossRefMathSciNetMATHGoogle Scholar
  29. 29.
    Saaltink, M.: The Z/EVES system. In: Till, D., Bowen, J.P., Hinchey, M.G. (eds.) ZUM 1997. LNCS, vol. 1212, pp. 72–85. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  30. 30.
    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
  31. 31.
    Tarski, A.: On the calculus of relations. Journal of Symbolic Logic 6(9), 73–89 (1941)MathSciNetMATHGoogle Scholar
  32. 32.
    Winskel, G.: The formal semantics of programming languages: an introduction. MIT Press, Cambridge (1993)MATHGoogle Scholar
  33. 33.
    Woodcock, J., Davies, J.: Using Z Specification, Refinement, and Proof. Prentice-Hall, Englewood Cliffs (1996)MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Gift Nuka
    • 1
  • Jim Woodcock
    • 2
  1. 1.Computing LaboratoryUniversity of KentCanterbury, KentUK
  2. 2.Computer Science DeptUniversity of YorkYorkUK

Personalised recommendations