Advertisement

Refinement Calculus for Logic Programming in Isabelle/HOL

  • David Hemer
  • Ian Hayes
  • Paul Strooper
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2152)

Abstract

This paper describes a deep embedding of a refinement calculus for logic programs in Isabelle/HOL. It extends a previous tool with support for procedures and recursion. The tool supports refinement in context, and a number of window-inference tactics that ease the burden on the user. In this paper, we also discuss the insights gained into the suitability of different logics for embedding refinement calculii (applicable to both declarative and imperative paradigms). In particular, we discuss the richness of the language, choice between typed and untyped logics, automated proof support, support for user-defined tactics, and representation of program states.

Keywords

Logic Program Recursive Call Proof Obligation Proof Step Sequential Conjunction 
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.
  2. 2.
    Ralph Back, Jim Grundy, and Joakim von Wright. Structured calculational proof. Formal Aspects of Computing, 9(5–6):469–483, 1997.zbMATHCrossRefGoogle Scholar
  3. 3.
    D. Carrington, I. Hayes, R. Nickson, G. Watson, and J. Welsh. A review of existing refinement tools. Technical report 94-08, Software Verification Research Centre, The University of Queensland, Brisbane 4072. Australia, June 1994.Google Scholar
  4. 4.
    D. Carrington, I. Hayes, R. Nickson, G. Watson, and J. Welsh. A program refinement tool. Formal Aspects of Computing, 10:97–124, 1998.zbMATHCrossRefGoogle Scholar
  5. 5.
    R. Colvin, I. Hayes, R. Nickson, and P. Strooper. A tool for logic program refinement. In D. J. Duke and A. S. Evans, editors, Second BCS-FACS Northern Formal Methods Workshop, Electronic Workshops in Computing. Springer Verlag, 1997.Google Scholar
  6. 6.
    J. Grundy. A window inference tool for refinement. In C.B. Jones, R.C. Shaw, and T. Denvir, editors, Fifth Refinement Workshop, Workshops in Computing, pages 230–254. BCS FACS, Springer-Verlag, 1992.Google Scholar
  7. 7.
    I. Hayes, R. Nickson, and P. Strooper. Refining specifications to logic programs. In J. Gallagher, editor, Logic Program Synthesis and Transformation. Proceedings of the 6th International Workshop, LOPSTR’96, Stockholm, Sweden, August 1996, volume 1207 of Lecture Notes in Computer Science, pages 1–19. Springer Verlag, 1997.Google Scholar
  8. 8.
    I. Hayes, R. Nickson, P. Strooper, and R. Colvin. A declarative semantics for logic program refinement. Technical Report 00-30, Software Verification Research Centre, The University of Queensland, October 2000.Google Scholar
  9. 9.
    D. Hemer. Building tool support for a refinement calculus for logic programming: A comparison of interactive theorem provers. Technical Report 00-06, Software Verification Research Centre, The University of Queensland, March 2000.Google Scholar
  10. 10.
    P. Homeier and D. Martin. Mechanical verification of mutually recursive procedures. In M.A. McRobbie and J.K. Slaney, editors, Proceedings of the 13th International Conference on Artificial Deduction (CADE-13), number 1104 in Lecture Notes in Artificial Intelligence, pages 201–215. Springer-Verlag, 1996.Google Scholar
  11. 11.
    Kolyang, T. Santen, and B. Wolff. A structure preserving encoding of Z in Isabelle/HOL. In J. von Wright, J. Grundy, and J. Harrison, editors, Theorem Proving in Higher Order Logics — 9th International Conference, LNCS 1125, pages 283–298. Springer Verlag, 1996.Google Scholar
  12. 12.
    R. Nickson and I. Hayes. Supporting contexts in program refinement. Science of Computer Programming, 29:279–302, 1997.zbMATHCrossRefGoogle Scholar
  13. 13.
    L.C. Paulson. Isabelle-A Generic Theorem Prover, volume 828 of Lecture Notes in Computer Science. Springer-Verlag, 1994.zbMATHGoogle Scholar
  14. 14.
    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.Google Scholar
  15. 15.
    J.M. Spivey. The Z Notation: a Reference Manual. Prentice-Hall, New York, 1989.zbMATHGoogle Scholar
  16. 16.
    M. Staples. Window inference in Isabelle. In L. Paulson, editor, Proceedings of the First Isabelle User’s Workshop, volume 379 of University of Cambridge Computer Laboratory Technical Report, pages 191–205, September 1995.Google Scholar
  17. 17.
    M. Staples. A Mechanised Theory of Refinement. PhD thesis, Computer Laboratory, University of Cambridge, 1998.Google Scholar
  18. 18.
    M. Staples. Representing WP Semantics in Isabelle/ZF. In TPHOLs’ 99, volume 1690 of Lecture Notes in Computer Science, pages 239–254, September 1999.Google Scholar
  19. 19.
    M. Utting and K. Whitwell. Ergo user manual. Technical Report 93-19, Software Verification Research Centre, The University of Queensland, Brisbane, QLD 4072, Australia, March 1994. Describes Version 4.0 of Ergo.Google Scholar
  20. 20.
    Mark Utting. The Ergo 5 generic proof engine. Technical Report 97-44, Software Verification Research Centre, The University of Queensland, 1997.Google Scholar
  21. 21.
    J. von Wright. Program refinement by theorem proving. In D. Till, editor, Sixth Refinement Workshop, Workshops in Computing, pages 121–150. BCS FACS, Springer-Verlag, 1994.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • David Hemer
    • 1
  • Ian Hayes
    • 2
  • Paul Strooper
    • 2
  1. 1.Software Verification Research CentreThe University of QueenslandAustralia
  2. 2.School of Computer Science and Electrical EngineeringThe University of QueenslandAustralia

Personalised recommendations