Induction, Coinduction, and Fixed Points in Order Theory, Set Theory, (PL) Type Theory, Logic, and Category Theory: A Concise Survey (and Tutorial)
In this paper we present the formulation of the induction and coinduction principles, and notions related to them such as fixed points, pre-fixed points, and post-fixed points (plus inductive sets and types, coinductive sets and types, algebras and coalgebras), using the language and conventions of each of order theory, set theory, the theory of types of functional and object-oriented programming languages, first-order logic, and category theory, for the purpose of examining some of the similarities and dissimilarities between these six mathematical subdisciplines. As a side-benefit of relevance to programming languages researchers in particular, our comparison also demonstrates one of the fundamental differences between nominal typing, predominant in mainstream object-oriented programming, and structural typing, predominant in functional programming.
READ FULL TEXT