Refinement Calculus for Logic Programming in Isabelle/HOL
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.
KeywordsLogic Program Recursive Call Proof Obligation Proof Step Sequential Conjunction
Unable to display preview. Download preview PDF.
- 1.Isabelle home page. http://www.cl.cam.ac.uk/Research/HVG/Isabelle/index.html.
- 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
- 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.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.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.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.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.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.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
- 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
- 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.M. Staples. A Mechanised Theory of Refinement. PhD thesis, Computer Laboratory, University of Cambridge, 1998.Google Scholar
- 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.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.Mark Utting. The Ergo 5 generic proof engine. Technical Report 97-44, Software Verification Research Centre, The University of Queensland, 1997.Google Scholar
- 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