Department of Computer Science and Technology

Technical reports

Co-induction and co-recursion in higher-order logic

Lawrence C. Paulson

July 1993, 35 pages

DOI: 10.48456/tr-304


A theory of recursive and corecursive definitions has been developed in higher-order logic (HOL) and mechanised using Isabelle. Least fixedpoints express inductive data types such as strict lists; greatest fixedpoints express co-inductive data types, such as lazy lists. Well-founded recursion expresses recursive functions over inductive data types; co-recursion expresses functions that yield elements of co-inductive data types. The theory rests on a traditional formalization of infinite trees. The theory is intended for use in specification and verification. It supports reasoning about a wide range of computable functions, but it does not formalize their operational semantics and can express noncomputable functions also. The theory is demonstrated using lists and lazy lists as examples. The emphasis is on using co-recursion to define lazy list functions, and on using co-induction to reason about them.

Full text

PDF (0.3 MB)
PS (0.1 MB)
DVI (0.1 MB)

BibTeX record

  author =	 {Paulson, Lawrence C.},
  title = 	 {{Co-induction and co-recursion in higher-order logic}},
  year = 	 1993,
  month = 	 jul,
  url = 	 {},
  institution =  {University of Cambridge, Computer Laboratory},
  doi = 	 {10.48456/tr-304},
  number = 	 {UCAM-CL-TR-304}