Formal Aspects of Computing

, Volume 1, Issue 1, pp 320–338 | Cite as

Term rewriting and beyond — theorem proving in Isabelle

  • Tobias Nipkow
Article

Abstract

The subject of this paper is theorem proving based on rewriting and induction. Both principles are implemented as tactics within the generic theorem prover Isabelle. Isabelle's higher-order features enable us to go beyond first-order rewriting and express rewriting with conditionals, induction schemata, higher-order functions and program transformers. Applications include the verification and transformation of functional versions of insertion sort and quicksort.

Key words

Theorem proving Term rewriting Isabelle Quicksort 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [BKN87]
    Benanav, D., Kapur, D. and Narendran P.: Complexity of Matching Problems.J. Symbolic Computation,3, 203–216 (1987).Google Scholar
  2. [BoM79]
    Boyer, R. S. and Moore, J. S.:A Computational Logic, Academic Press, 1979.Google Scholar
  3. [BoM88]
    Boyer, R. S. and Moore, J. S.:A Computational Logic Handbook, Academic Press, 1988.Google Scholar
  4. [BuD77]
    Burstall, R. M. and Darlington, J.: A Transformation System for Developing Recursive Programs.J. ACM,24, 44–67 (1977).Google Scholar
  5. [Gro87]
    de Groote, Ph.: How I Spent my Time in Cambridge with Isabelle, Report RR87-1, Unité d'Informatique, Université Catholique de Louvain, Belgium, 1987.Google Scholar
  6. [FGJ85]
    Futatsugi, K., Goguen, J. A., Jouannaud, J.-P. and Meseguer, J.: Principles of OBJ2,Proc. 12th ACM Symp. on Principles of Programming Languages, 52–66, 1985.Google Scholar
  7. [GaG89]
    Garland, S. J. and Guttag, J. V.: An Overview of LP, The Larch Prover,Proc. 3rd Intl. Conf. Rewriting Techniques and Applications, LNCS 355, 137–151, Springer-Verlag, 1989.Google Scholar
  8. [GMW79]
    Gordon, M. J. C., Milner, R. and Wadsworth, C. P.:Edinburgh LCF: A Mechanised Logic of Computation, LNCS 78, Springer-Verlag, 1979.Google Scholar
  9. [HaM88]
    Hannan, J. and Miller, D.: Uses of Higher-Order Unification for Implementing Program Transformers,Proc. 5th Intl. Logic Programming Conf., 1988.Google Scholar
  10. [HMM86]
    Harper, R., MacQueen, D. and Milner, R.: Standard ML, Report ECS-LFCS-86-2, Laboratory for Foundations of Computer Science, Department of Computer Science, University of Edinburgh, 1986.Google Scholar
  11. [HuL78]
    Huet, G. and Lang, B.: Proving and Applying Program Transformations Expressed with Second Order Patterns.Acta Informatica,11, 31–55 (1978).Google Scholar
  12. [HuO82]
    Huet, G. and Oppen, D. C.: Equations and Rewrite Rules — A Survey. In:Formal Languages: Perspectives and Open Problems, R. Book (ed.), Academic Press, 1982.Google Scholar
  13. [HsD83]
    Hsiang, J. and Dershowitz, N.: Rewrite rules for clausal and non-clausal theorem proving,Proc. 10th Intl. Colloq. on Automata, Languages, and Programming, LNCS 154, 431–446, Springer-Verlag, 1983.Google Scholar
  14. [Kir86]
    Kirchner, C.: Computing Unification Algorithms,Proc. Symp. on Logic in Computer Science, Cambridge, MA, 206–217, 1985.Google Scholar
  15. [Les86]
    Lescanne, P.: REVE: A Rewrite Rule Laboratory,Proc. 8th Intl. Conf. on Automated Deduction, LNCS 230, 695–696, Springer-Verlag, 1986.Google Scholar
  16. [MaM82]
    Martelli, A. and Montanari, U.: An Efficient Unification Algorithm.ACM TOPLAS,4(2), 258–282 (1982).Google Scholar
  17. [MaN89]
    Martin, U. and Nipkow, T.: Automating Squiggol, Report 179, Computer Laboratory, University of Cambridge, September 1989. To appear in Proc. IFIP TC2 Working Conf. Programming Concepts and Methods, April 1990.Google Scholar
  18. [Nip89a]
    Nipkow, T.: Equational Reasoning in Isabelle.Science of Computer Programming,12, 123–149 (1989).Google Scholar
  19. [Nip89c]
    Nipkow, T.: Proof Transformations for Equational Theories, Report 181, Computer Laboratory, University of Cambridge, September 1989.Google Scholar
  20. [Nip89b]
    Nipkow, T.: Formal Verification of Data Type Refinement — Theory and Practice,Proc. REX Workshop on Refinement of Distributed Systems, to appear in LNCS.Google Scholar
  21. [Pad88a]
    Padawitz, P.: Inductive Proofs of Constructor-Based Horn Clauses, Report MIP-8810, Fakultät für Mathematik und Informatik, Universität Passau, 1988.Google Scholar
  22. [Pad88b]
    Padawitz, P.: Inductive Proofs by Resolution and Paramodulation, Tech. Report, Fakultät für Mathematik and Informatik, Universität Passau, 1988.Google Scholar
  23. [Pau83]
    Paulson, L. C.: A Higher-Order Implementation of Rewriting.Science of Computer Programming,3, 119–149 (1983).Google Scholar
  24. [Pau86]
    Paulson, L. C.: Natural Deduction as Higher-Order Resolution.Journal of Logic Programming,3, 237–258 (1986).Google Scholar
  25. [Pau87]
    Paulson, L. C.:Logic and Computation, Cambridge University Press, 1987.Google Scholar
  26. [Pau88]
    Paulson, L. C.: A Preliminary User's Manual for Isabelle, Report 133, Computer Laboratory, University of Cambridge, May 1988.Google Scholar
  27. [Pau89]
    Paulson, L. C.: The Foundation of a Generic Theorem Prover.Journal of Automated Reasoning, in press.Google Scholar
  28. [PfE88]
    Pfenning, F. and Elliot, C.: Higher-Order Abstract Syntax,Proc. ACM-SIGPLAN Conf. on Programming Language Design and Implementation, 199–208, 1988.Google Scholar
  29. [Zhe27]
    Zhegalkin, I. I.: On a Technique of Evaluation of Propositions in Symbolic Logic.Matematicheskii Sbornik,34(1), 9–27 (1927).Google Scholar

Copyright information

© BCS 1989

Authors and Affiliations

  • Tobias Nipkow
    • 1
  1. 1.Computer LaboratoryUniversity of CambridgeCambridgeUK

Personalised recommendations