Skip to main content

Program derivation using the refinement calculator

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1125))

Abstract

The refinement calculus provides a theory for the stepwise refinement of programs and this theory has been formalised in HOL. TkWinHOL is a powerful graphical user interface (GUI) that can be used to drive the HOL window Library. In this paper, we describe a tool called the Refinement Calculator which combines TkWinHOL and the HOL Refinement Calculus theory, to provide support for formal program development. The tool improves the usability of the HOL Refinement Calculus theory considerably through its window-inference based GUI and by supporting a conventional programming syntax.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. F. Andersen. A Theorem Prover for UNITY in Higher Order Logic. PhD thesis, Technical University of Denmark, Lyngby, 1992.

    Google Scholar 

  2. R. Back. Correctness Preserving Program Refinements: Proof Theory and Applications, volume 131 of Mathematical Center Tracts. Mathematical Centre, Amsterdam, 1980.

    Google Scholar 

  3. R. Back. A calculus of refinements for program derivations. Acta Informatica, 25:593–624, 1988.

    Article  MATH  MathSciNet  Google Scholar 

  4. R. Back and J. von Wright. Refinement concepts formalized in higher order logic. Formal Aspects of Computing, 2:247–272, 1990.

    Article  Google Scholar 

  5. M. Butler, T. Långbacka, R. Rukšėnas, and J. von Wright. Refinement Calculator tutorial and manual. Draft — available upon request.

    Google Scholar 

  6. A. Camillieri. Mechanizing CSP trace theory in Higher Order Logic. IEEE Transactions on Software Engineering, 16(9):993–1004, 1990.

    Article  Google Scholar 

  7. D. Carrington, I. Hayes, R. Nickson, G. Watson, and J. Welsh. A tool for developing correct programs by refinement. For presentation at 7th BCS-FACS Refinement Workshop, July 1996.

    Google Scholar 

  8. E. W. Dijkstra. A Discipline of Programming. Prentice-Hall International, 1976.

    Google Scholar 

  9. J. Grundy. Window inference in the HOL system. In Myla Archer, Jeffrey J. Joyce, Karl N. Levitt, and Phillip J. Windley, editors, Proceedings of the International Tutorial and Workshop on the HOL Theorem Proving System and its Applications, pages 177–189, University of California at Davis, August 1991. ACM-SIGDA, IEEE Computer Society Press.

    Google Scholar 

  10. J. Grundy. A window inference tool for refinement. In Jones et al, editor, Proc. 5th Refinement Workshop, London, Jan. 1992. Springer-Verlag.

    Google Scholar 

  11. J. Grundy. HOL90 window library manual. 1994.

    Google Scholar 

  12. T. Långbacka. TkWinHOL users guide. Draft — available upon request.

    Google Scholar 

  13. T. Långbacka, R. Rukšėnas, and J. von Wright. TkWinHOL: A tool for doing window inference in HOL. In Schubert et al. [17], pages 245–260.

    Google Scholar 

  14. C.C. Morgan. Programming from Specifications (2nd Edition). Prentice-Hall, 1994.

    Google Scholar 

  15. J.M. Morris. A theoretical basis for stepwise refinement and the programming calculus. Sci. Comp. Prog., 9(3):298–306, 1987.

    Google Scholar 

  16. P.J. Robinson and J. Staples. Formalising the hierarchical structure of practical mathematical reasoning. Journal of Logic and Computation, 3(1):47–61, February 1993.

    Article  MATH  MathSciNet  Google Scholar 

  17. E. Thomas Schubert, Phillip J. Windley, and James Alves-Foss, editors. Higher Order Logic Theorem Proving and Its Applications: Proceedings of the 8th International Workshop, volume 971 of Lecture Notes in Computer Science, Aspen Grove, Utah, September 1995. Springer-Verlag.

    Google Scholar 

  18. D. Syme. A new interface for HOL — ideas, issues and implementation. In Schubert et al. [17], pages 324–339.

    Google Scholar 

  19. L. Théry. A Proof Development System for the HOL Theorem Prover. In Jeffrey J. Joyce and Carl-Johan H. Seger, editors, Higher Order Logic Theorem Proving and Its Applications — 6th International Workshop, HUG’ 93 Vancouver, B. C., Canada, August 1993, volume 780 of Lecture Notes in Computer Science, pages 115–128. Springer Verlag, 1993.

    Google Scholar 

  20. M. Utting and K. Whitwell. Ergo user manual. Technical Report 93-19, Software Verification Research Centre, University of Queensland, 1994.

    Google Scholar 

  21. J. von Wright. Program refinement by theorem prover. In BCS FACS Sixth Refinement Workshop — Theory and Practise of Formal Software Development. 5th–7th January, City University, London, UK., 1994.

    Google Scholar 

  22. J. von Wright, J. Hekanaho, P. Luostarinen, and T. Långbacka. Mechanising some advanced refinement concepts. Formal Methods in Systems Design, 3:49–81, 1993.

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Gerhard Goos Juris Hartmanis Jan van Leeuwen Joakim von Wright Jim Grundy John Harrison

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Butler, M., Långbacka, T. (1996). Program derivation using the refinement calculator. In: Goos, G., Hartmanis, J., van Leeuwen, J., von Wright, J., Grundy, J., Harrison, J. (eds) Theorem Proving in Higher Order Logics. TPHOLs 1996. Lecture Notes in Computer Science, vol 1125. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0105399

Download citation

  • DOI: https://doi.org/10.1007/BFb0105399

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61587-3

  • Online ISBN: 978-3-540-70641-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics