A fixedpoint approach to implementing (Co)inductive definitions

  • Lawrence C. Paulson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 814)


This paper presents a fixedpoint approach to inductive definitions. Instead of using a syntactic test such as ‘strictly positive,’ the approach lets definitions involve any operators that have been proved monotone. It is conceptually simple, which has allowed the easy implementation of mutual recursion and other conveniences. It also handles coinductive definitions: simply replace the least fixedpoint by a greatest fixedpoint. This represents the first automated support for coinductive definitions.

The method has been implemented in Isabelle's formalization of ZF set theory. It should be applicable to any logic in which the Knaster-Tarski Theorem can be proved. Examples include lists of n elements, the accessible part of a relation and the set of primitive recursive functions. One example of a coinductive definition is bisimulations for lazy lists.


Induction Rule Elimination Rule Introduction Rule Inductive Definition Minor Premise 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abramsky, S., The lazy lambda calculus. In Resesarch Topics in Functional Programming, D. A. Turner, Ed. Addison-Wesley, 1977, pp. 65–116Google Scholar
  2. 2.
    Aczel, P., An introduction to inductive definitions, In Handbook of Mathematical Logic, J. Barwise, Ed. North-Holland, 1977, pp. 739–782Google Scholar
  3. 3.
    Aczel, P., Non-Well-Founded Sets, CSLI, 1988Google Scholar
  4. 4.
    Boyer, R. S., Moore, J. S., A Computational Logic, Academic Press, 1979Google Scholar
  5. 5.
    Camilleri, J., Melham, T. F., Reasoning with inductively defined relations in the HOL theorem prover. Tech. Rep. 265, Comp. Lab., Univ. Cambridge, August 1992Google Scholar
  6. 6.
    Davey, B. A., Priestley, H. A., Introduction to Lattices and Order, Cambridge Univ. Press, 1990Google Scholar
  7. 7.
    Dybjer, P., Inductive sets and families in Martin-Lofs type theory and their set-theoretic semantics. In Logical Frameworks. G. Huet, G. Plotkin, Eds. Cambridge Univ. Press. 1991, pp. 280–306Google Scholar
  8. 8.
    Farmer, W. M., Guttman, J. D., Thayer, F. J., IMPS: An interactive mathematical proof system, J. Auto. Reas. 11, 2 (1993), 213–248Google Scholar
  9. 9.
    Hennessy, M., The Semantics of Programming Languages: An Elementary Introduction Using Structural Operational Semantics, Wiley, 1990Google Scholar
  10. 10.
    Huet, G., Induction principles formalized in the Calculus of Constructions, In Programming of Future Generation Computers (1988), Elsevier, pp. 205–216Google Scholar
  11. 11.
    Melham, T. F., Automating recursive type definitions in higher order logic. In Current Trends in Hardware Verification and Automated Theorem Proving, G. Birtwistle, P. A. Subrahmanyam, Eds. Springer, 1989, pp. 341–386Google Scholar
  12. 12.
    Milner, R., How to derive inductions in LCF, note, Dept. Comp. Sci., Univ. Edinburgh, 1980Google Scholar
  13. 13.
    Milner, R., Communication and Concurrency, Prentice-Hall, 1989Google Scholar
  14. 14.
    Monahan, B. Q., Data Type Proofs using Edinburgh LCF, PhD thesis, University of Edinburgh, 1984Google Scholar
  15. 15.
    Paulin-Mohring, C., Inductive definitions in the system Coq: Rules and properties, Research Report 92-49, LIP, Ecole Normale Supérieure de Lyon, Dec. 1992Google Scholar
  16. 16.
    Paulson, L. C., Logic and Computation: Interactive proof with Cambridge LCF, Cambridge Univ. Press, 1987Google Scholar
  17. 17.
    Paulson, L. C., ML for the Working Programmer, Cambridge Univ. Press, 1991Google Scholar
  18. 18.
    Paulson, L. C., Co-induction and co-recursion in higher-order logic, Tech. Rep. 304, Comp. Lab., Univ. Cambridge, July 1993Google Scholar
  19. 19.
    Paulson, L. C., Introduction to Isabelle, Tech. Rep. 280, Comp. Lab., Univ. Cambridge, 1993Google Scholar
  20. 20.
    Paulson, L. C., Set theory for verification: I. From foundations to functions, J. Auto. Reas. 11, 3 (1993), 353–389Google Scholar
  21. 21.
    Paulson, L. C., Set theory for verification: II. Induction and recursion, Tech. Rep. 312, Comp. Lab., Univ. Cambridge, 1993Google Scholar
  22. 22.
    Paulson, L. C., A concrete final coalgebra theorem for ZF set theory, Tech. rep., Comp. Lab., Univ. Cambridge, 1994Google Scholar
  23. 23.
    Pitts, A. M., A co-induction principle for recursively defined domains, Theoretical Comput. Sci. (1994), In press; available as Report 252, Comp. Lab., Univ. CambridgeGoogle Scholar
  24. 24.
    Saaltink, M., Kromodimoeljo, S., Pase, B., Craigen, D., Meisels, I., An EVES data abstraction example, In FME '93: Industrial-Strength Formal Methods (1993), J. C. P. Woodcock, P. G. Larsen, Eds., Springer, pp. 578–596, LNCS 670Google Scholar
  25. 25.
    Szasz, N., A machine checked proof that Ackermann's function is not primitive recursive, In Logical Environments, G. Huet, G. Plotkin, Eds. Cambridge Univ. Press, 1993, pp. 317–338Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Lawrence C. Paulson
    • 1
  1. 1.Computer LaboratoryUniversity of CambridgeEngland

Personalised recommendations