Hostname: page-component-89b8bd64d-r6c6k Total loading time: 0 Render date: 2026-05-09T01:56:19.806Z Has data issue: false hasContentIssue false

Practical coinduction

Published online by Cambridge University Press:  09 February 2016

DEXTER KOZEN
Affiliation:
Computer Science, Cornell University, Ithaca, New York 14853-7501, U.S.A. Email: kozen@cs.cornell.edu
ALEXANDRA SILVA
Affiliation:
Intelligent Systems, Radboud University Nijmegen, Postbus 9010, 6500 GL Nijmegen, the Netherlands Email: alexandra@cs.ru.nl
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Induction is a well-established proof principle that is taught in most undergraduate programs in mathematics and computer science. In computer science, it is used primarily to reason about inductively defined datatypes such as finite lists, finite trees and the natural numbers. Coinduction is the dual principle that can be used to reason about coinductive datatypes such as infinite streams or trees, but it is not as widespread or as well understood. In this paper, we illustrate through several examples the use of coinduction in informal mathematical arguments. Our aim is to promote the principle as a useful tool for the working mathematician and to bring it to a level of familiarity on par with induction. We show that coinduction is not only about bisimilarity and equality of behaviors, but also applicable to a variety of functions and relations defined on coinductive datatypes.

Information

Type
Paper
Copyright
Copyright © Cambridge University Press 2016