Induction, Coinduction, and Fixed Points: A Concise Comparative Survey (and Tutorial)

12/25/2018
by   Moez A. AbdelGawad, et al.
0

In this survey paper (which hitherto is an ongoing work-in-progress) we present the formulation of the induction and coinduction principles using the language and conventions of each of order theory, set theory, programming languages' type theory, first-order logic, and category theory, for the purpose of examining some of the similarities and, more significantly, the dissimilarities between these various mathematical disciplines. Towards that goal we discuss plenty of other related concepts, such as fixed points, pre-fixed points, post-fixed points, inductive sets and types, coinductive sets and types, algebras and coalgebras. Following the set-theoretic formulation of these concepts we present few basic examples from number theory and real analysis that illustrate the concepts, and the intuitions behind them, more concretely. We conclude our survey by hinting at the possibility of a more abstract and more unified treatment that uses concepts from category theory such as monads and comonads. As a side-benefit of relevance to programming languages theorists in particular, the formulation of these concepts in programming languages type theory involves their separate formulation, first, in the theory of types of /functional/ programming languages and, next, in the theory of types of /object-oriented/ programming languages. Separating these two formulations helps demonstrate one of the fundamental differences between nominal subtyping, predominant in object-oriented programming languages, and structural subtyping, predominant in functional programming languages.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset