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

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

In this survey paper 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 dissimilarities between these mathematical subdisciplines. Towards that goal we get to discuss 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 formulation of these concepts in set theory we present few basic examples, from number theory and real analysis, to illustrate the concepts more concretely. As a side-benefit of relevance to programming languages (PL) theorists in particular, the formulation of these concepts in PL type theory involves their separate formulation in the theory of types of functional programming (FP) languages and in the theory of types of object-oriented programming (OOP) languages. The formulations help demonstrate one of the fundamental differences between nominal typing, predominant in object-oriented programming, and structural typing, predominant in functional programming. 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.

READ FULL TEXT VIEW PDF
POST COMMENT

Comments

There are no comments yet.

Authors

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

1 Introduction

Fixed points and concepts related to them, such as induction and coinduction, have applications in numerous scientific fields. These mathematical concepts have applications also in social sciences, and even in common culture, usually under disguise.111For more on the intuitions and applications of fixed points and related notions, the interested reader is invited to check the companion tutorial article [3].

Fixed points, induction and coinduction have been formulated and studied in various subfields of mathematics, usually using different vocabulary in each field. Fields for studying these concepts, formally, include order theory, set theory, programming languages (PL) type theory222That is, the study of data types in computer programming languages., first-order logic, and category theory.

In this article—which started as a brief self-note (now summarized in 7)—we compare the various formulations of these concepts by presenting how these concepts, and many related ones—such as pre-fixed points, post-fixed points, inductive sets/types, coinductive sets/types, algebras, and coalgebras—are defined in each of these mathematical subfields. As such this article is structured as follows.

In 2 (2 Order Theory) we start by presenting how these mathematical concepts are formulated in a natural and simple manner in order theory. Then, in 3 (3 Set Theory), we present the standard formulation of these concepts in set theory. Since PL type theory builds on set theory, we next present the formulation of these concepts in the theory of types of functional programming languages (which is largely structurally-typed) in 4.1 (4.1 Inductive and Coinductive Functional Data Types), then, in 4.2 (4.2 Object-Oriented Type Theory), we follow that by presenting their formulation in the type theory of object-oriented programming languages (which is largely nominally-typed). Building on intuitions gained from the formulation of the concepts we presented in 3, we then suggest in 5 (5 First-Order Logic) a formulation of these concepts in first-order logic. Then we present the most general formulation of these concepts, in the context of category theory, in 6 (6 Category Theory).

In 7 (7 Comparison Summary) we summarize the article by presenting tables that collect the formulations given in the previous sections. We conclude in 8 (8 A Fundamental and More Abstract Treatment) by hinting at the possibility of a more abstract, and more unified formulation of the concepts we discussed in this article, using concepts from category theory, namely monads and comonads.

It should be noted that in each particular subfield we discuss in this article we try to use what seems (to us) to be the most natural terminology in that field. Hence, in agreement with standard mathematical practice, the same mathematical concepts may have significantly different names when presented in different fields in this article. Noting the significant similarity of the mathematical concepts, via abstracting away from their names, should be a main goal of readers of this article.

It should be noted also that mathematical-but-non-computer-science readers—presumably interested mainly in comparing “pure” mathematical subdisciplines, i.e., in comparing formulations in order theory, set theory, first-order logic, and category theory, but not in PL type theory—may safely skip reading 4. Those readers may like to also ignore the rightmost column of Table 1 and the next-to-leftmost column of Table 2 in 7. This material is mainly of interest to PL theorists only.333PL theorists may also like to read the more in-depth article [2].

2 Order Theory

Order theory—which includes lattice theory as a subfield—is the branch of mathematics where the concepts fixed point, pre-fixed point, post-fixed point, least fixed point, greatest fixed point, induction, and coinduction were first formulated in some generality and the relations between them were proven [23]. Order theory seems to be the simplest and most natural setting in which these concepts can be defined and studied. We thus start this article by presenting the order-theoretic formulation of these concepts in this section.

Formulation

Let (‘is less than or equal to’) be an ordering relation—also called a partial order—over a set and let be an endofunction over (also called a self-map over , i.e., a function whose domain and codomain are the same set, thus mapping a set into itself444We are focused on unary functions in this article because we are interested in discussing fixed points and closely-related concepts, to which multi-arity makes little difference. Note that a binary function can be transformed into an equivalent unary one via the technique of “currying” (also known in logic as exportation). By iterating currying, it can be applied to multi-ary functions, i.e.

, functions with any finite arity greater than two. Currying does preserve monotonicity/variance, and it seems currying is applicable to all fields of interest to us in this article since, in each field, the objects of that field—

i.e., posets, power sets, types, etc.—and the “morphisms/arrows” between these objects seem to form what is called (in category theory) a closed monoidal category.).

Given a point , we call point —the image of under —the ‘-image555In this article, nonstandard names (suggested by the author) are single-quoted like this ‘—’ when first introduced. of .

A point is called a pre-fixed point of if its -image is less than or equal to it, i.e., if

(A pre-fixed point of is sometimes also called an -closed point, ‘-lower bounded point’, or ‘-large point’; or, when disregarding , an inductive point or algebraic point.) The greatest element of , if it exists (in ), is usually denoted by , and it is a pre-fixed point of for all endofunctions . In fact , when it exists, is the greatest pre-fixed point of for all .

A point is called a post-fixed point of if it is less than or equal to its -image, i.e., if

(A post-fixed point of is sometimes also called an -consistent point, -‘(upper)’ bounded point, or ‘-small point’; or, when disregarding , a coinductive point or coalgebraic point.) The least element of , if it exists (in ), is usually denoted by , and it is a post-fixed point of for all endofunctions . In fact , when it exists, is the least post-fixed point of for all .

A point is called a fixed point (or ‘fixed element’) of if it is equal to its -image, i.e., if

As such, a fixed point of is simultaneously a pre-fixed point of and a post-fixed point of .

Now, if is a complete lattice over (i.e., if is an ordering relation where meets and joins of all subsets of are guaranteed to exist in ) and if, in addition, is a monotonic endofunction over , i.e., if

then is called a generating function (or generator) and—as was proven by Tarski [23]—the least pre-fixed point of , called , exists in (due to the completeness of ) and is also the least fixed point (or, lfp) of (due to the monotonicity of ), and the greatest post-fixed point of , called , exists in (again, due to the completeness of ) and is also the greatest fixed point (or, gfp) of (again, due to the monotonicity of ).666See Table 1 for the definitions of and in order theory. Further, given that is the least pre-fixed point of and is the greatest post-fixed point of , for any element we have:

  • (induction)co if , then ,
    which, in words, means that if is a pre-fixed/inductive point of (i.e., if the -image of is less than or equal to it), then point is less than or equal to , and,

  • (coinduction) if , then ,
    which, in words, means that if is a post-fixed/coinductive point of (i.e., if is less than or equal to its -image), then point is less than or equal to point .

References

See [7, 17].

3 Set Theory

In set theory, the set of subsets of any set—i.e., the powerset of the set—is always a complete lattice under the inclusion () ordering. As such, Tarski’s result in lattice theory (see 2) was first formulated and proved in the specific context of powersets [12], which present a simple and very basic example of a context in which the order-theoretic formulation of induction/coinduction and related concepts can be applied and demonstrated. Given the unique foundational significance of set theory in mathematics—unparalleled except, arguably, by the foundational significance of category theory—the set-theoretic formulation of the induction and coinduction principles are in fact the standard formulations of these principles. The set-theoretic formulation also forms the basis for very similar formulations of these concepts in (structural) type theory (see 4.1) and in first-order logic (see 5).

Formulation

Let (‘is a subset of’) denote the inclusion ordering of set theory and let (‘is a member of’) denote the membership relation. Further, let be the partially-ordered set of all subsets of some fixed set , under the inclusion ordering (as such , where is the powerset operation, and is always a complete lattice) and let be an endofunction over .

A set (equivalently, ) is called an -closed set if its -image is a subset of it, i.e., if

(An -closed subset is sometimes also called an -lower bounded set or -large set.) Set , the largest set in , is an -closed set for all endofunctions —in fact is the largest -closed set for all .

A set is called an -consistent set if it is a subset of its -image, i.e., if

(An -consistent subset is sometimes also called an -(upper) bounded set777From which comes the name -bounded polymorphism in functional programming. (See 4.1.) , -correct set, or -small set.) The empty set, , the smallest set in , is an -consistent set for all endofunctions —in fact is the smallest -consistent set for all .

A set is called a fixed point (or ‘fixed set’) of if it is equal to its -image, i.e., if

As such, a fixed point of is simultaneously an -closed set and an -consistent set.

Now, given that is a complete lattice, if, in addition, is a monotonic endofunction, i.e., if

then is called a sets-generating function (or generator) and an inductively-defined subset , the smallest -closed set, exists in , and is also the smallest fixed point of , and a coinductively-defined subset , the largest -consistent set, exists in , and is also the largest fixed point of .888See Table 1 for the definitions of and in set theory. Further, for any set we have:

  • (induction)co
    (i.e., ),
    which, in words, means that if (we can prove that) set is an -closed set, then (by induction, we get that) set is a subset of , and

  • (coinduction)
    (i.e., ),
    which, in words, means that if (we can prove that) set is an -consistent set, then (by coinduction, we get that) is a subset of set .

Induction Instances

  • An instance of the set-theoretic induction principle presented above is the standard mathematical induction principle. In this well-known instance, induction is setup as follows: is the “successor” function (of Peano)999Namely, , where, e.g., ., (the smallest fixed point of the successor function ) is the set of natural numbers , and is any inductive property/set of numbers.

    • For an example of an inductive set, the reader is invited to check 2 of the tutorial article [3].

  • Another instance of the induction principle is lexicographic induction, defined on lexicographically linearly-ordered (i.e.

    , “dictionary ordered”) pairs of elements 

    [16, 18]. In 4.1 we will see a type-theoretic formulation of the induction principle that is closely related to the set-theoretic one above. The type-theoretic formulation is the basis for yet a third instance of the induction principle—called structural induction—that is extensively used in programming semantics and automated theorem proving (ATP), including reasoning about and proving properties of (functional) software.

Coinduction Instances and Intuition

  • Even though coinduction is the dual of induction, and thus apparently very similar to it, practical uses of coinduction are relatively obscure compared to those of induction. For some applications of coinduction see, e.g.[6, 19, 13].

  • Another less-obvious instance of a coinductive set is the standard subtyping relation in (nominally-typed) object-oriented programming languages. See the notes of 2.2 of [2] for more details.

  • For developing intuitions for coinduction, coinductive sets, and coinductive types, the reader is invited to check 3 of the tutorial article [3].

Illustrations

In 4 of the tutorial article [3] we present diagrams that use examples from set theory, number theory, and real analysis to concretely illustrate inductive sets, coinductive sets, and the other related concepts we discuss in this survey article.

References

See [16, 5].

4 Programming Languages Theory

Given the ‘types as sets’ view of types in programming languages, this section builds on the set-theoretic presentation in 3 to present the formulation of the induction and coinduction principles in the context of programming languages type theory.

4.1 Inductive and Coinductive Functional Data Types

The formulation of the induction and coinduction principles in the context of functional programming type theory builds on the concepts developed in 3. For the motivations behind this formulation, and more details, see 2.1 of [2].

Formulation

Let be the set of structural types in functional programming.

Let (‘is a subset/subtype of’) denote the structural subtyping/inclusion relation between structural data types, and let (‘has type/is a member of/has structural property’) denote the structural typing relation between structural data values and structural data types.

Now, if is a polynomial (with powers) datatype constructor, i.e., if

then an inductively-defined type/set , the smallest -closed set, exists in , and is also the smallest fixed point of , and a coinductively-defined type/set , the largest -consistent set, exists in , and is also the largest fixed point of .101010See Table 1 for the definitions of and .

Further, for any type (where , as a structural type, expresses a structural property of data values) we have:

  • (structural induction, and recursion)co
    (i.e., ),
    which, in words, means that if the (structural) property is preserved by (i.e., if is -closed), then all data values of the inductive type have property (i.e., ).
    Furthermore, borrowing terminology from category theory (see 6), a recursive function that maps data values of the inductive type to data values of type (i.e., having structural property ) is the unique catamorphism (also called a fold) from to (where is viewed as an initial -algebra and as an -algebra), and

  • (structural coinduction, and corecursion)
    (i.e.,
    which, in words, means that if the (structural) property is reflected by (i.e., if is -consistent), then all data values that have property are data values of the coinductive type (i.e., ).
    Furthermore, borrowing terminology from category theory, a corecursive function that maps data values of type (i.e., having structural property ) to data values of the coinductive type is the unique anamorphism from to (where is viewed as an -coalgebra and as a final -coalgebra).

Notes

  • To guarantee the existence of and in for all type constructors , and hence to guarantee the ability to reason easily—i.e., inductively and coinductively—about functional programs, the domain of types in functional programming is deliberately constructed to be a complete lattice under the inclusion ordering. This is achieved by limiting the type constructors used in constructing and over to structural type constructors only (i.e., to the constructors , , and their compositions, in addition to basic types such as Unit, Bool, Top, Nat and Int). More details can be found in 2.1 of [2].

4.2 Object-Oriented Type Theory

The formulation of the induction and coinduction principles in the context of object-oriented type theory roughly mimics the formulation in 4.1. For the motivations behind the exact formulation, and more details, see 2.2 of [2].

Formulation

Let (‘is a subtype of’) denote the nominal subtyping relation between nominal data types (i.e., class types), and let (‘has type’) denote the nominal typing relation between nominal data values (i.e., objects) and nominal data types.

Further, let be the set of nominal types in object-oriented programming, ordered by the nominal subtyping relation, and let be a type constructor over (e.g., a generic class).111111Unlike poset in 4.1 (of structural types under the structural subtyping relation), poset (of nominal types under the nominal subtyping relation) is not guaranteed to be a complete lattice.

A type is called an ‘-supertype’ if its -image is a subtype of it, i.e., if

and is said to be preserved by . (An -supertype is sometimes also called an -closed type, -lower bounded type, or -large type). The root or top of the subtyping hierarchy, if it exists (in ), is usually called Object or All, and it is an -supertype for all generic classes . In fact the top type, when it exists, is the greatest -supertype for all .

A type is called an ‘-subtype’ if it is a subtype of its -image, i.e., if

and is said to be reflected by . (An -subtype is sometimes also called an -consistent type, -(upper) bounded type121212From which comes the name -bounded generics in object-oriented programming., or -small type). The bottom of the subtyping hierarchy, if it exists (in ), is usually called Null or Nothing, and it is an -subtype for all generic classes . In fact the bottom type, when it exists, is the least -subtype for all .

A type is called a fixed point (or ‘fixed type’) of if it is equal to its -image, i.e., if

As such, a fixed point of is simultaneously an -supertype and an -subtype. (Such fixed types/points are rare in OOP practice).

Now, if is a covariant generic class (i.e., a types-generator), i.e., if

and if , the ‘least -supertype’ exists in , and is also the least fixed point of , and if , the ‘greatest -subtype’, exists in , and is also the greatest fixed point of ,131313See Table 2 for the definitions of and in the (rare) case when happens to be a complete lattice. then, for any type we have:

  • (induction)co
    (i.e., ),
    which, in words, means that if the contract (i.e., behavioral type) is preserved by (i.e., is an -supertype), then the inductive type is a subtype of , and

  • (coinduction)
    (i.e., ),
    which, in words, means that if the contract (i.e., behavioral type) is reflected by (i.e., is an -subtype), then is a subtype of the coinductive type .

Notes

  • More on the differences between structural subtyping, as found in functional programming type theory, and nominal typing, as found in object-oriented programming type theory, can be found in 2.2 of [2].

5 First-Order Logic

Mathematical logic, particularly first-order logic (FOL), is the foundation of set theory and similar theories. Specifically, via the Aussonderungsaxiom and other axioms in set theory (see [11, 2]), first-order logic is strongly tied to set theory141414The Aussonderungsaxiom (German) is also called the subset/separation axiom or the axiom of specification/comprehension., as well as to class theory and non-wellfounded set theory (see [5]).

As such, in correspondence with the set-theoretic concepts and definitions presented in 3, one should expect to find counterparts in first-order logic. Even though seemingly unpopular in mathematical logic literature, we try to explore these corresponding concepts in this section. The discussion of these concepts in logic is also a step that prepares for discussing these concepts in 6 in the more general setting of category theory.

Formulation

Let (‘implies’) denote the implication relation between predicates/logical statements of first-order logic151515Note that, as in earlier sections, we use the long implication symbol ‘’ to denote the implication relation in the metalogic (i.e., the logic used to reason about objects of interest to us, e.g., points, sets, types, or—as is the case in this section—statements of first-order logic). The reader in this section should be careful not to confuse the metalogical implication relation (denoted by the long implication symbol ) with the implication relation of first-order logic (used to reason in FOL, and denoted by the short implication symbol )., and let juxtaposition or (‘is satisfied by/applies to’) denote the satisfiability relation between predicates and objects/elements. Further, let be the set of statements (i.e., the well-formed formulas) of first-order logic ordered by implication ( is thus a complete lattice) and let be a logical operator over .161616Such as [and] and [or] (both of which are covariant/monotonic logical operators), [not] (which is contravariant/anti-monotonic), or compositions thereof.

A statement is called an ‘-weak statement’ if its -image implies it, i.e., if

Statement is an -weak statement for all endofunctors —in fact is the weakest -weak statement for all .

A statement is called an ‘-strong statement’ if it implies its -image, i.e., if

Statement is an -strong statement for all endofunctors —in fact is the strongest -strong statement for all .

A statement is called a fixed point (or ‘fixed statement’) of if it is equivalent to its -image, i.e., if

As such, a fixed point of is simultaneously an -weak statement and an -strong statement.

Now, if is a covariant logical operator (i.e., a statements-generator), i.e., if

then , the ‘strongest -weak statement’, exists in , and is also the ‘strongest fixed point’ of , and , the ‘weakest -strong statement’, exists in , and is also the ‘weakest fixed point’ of .171717See Table 2 for the definitions of and . Further, for any statement we have:

  • (induction)co if , then ,
    which, in words, means that if is an -weak statement, then implies , and

  • (coinduction) if , then ,
    which, in words, means that if is an -strong statement, then implies .

References

See [1](!), and [8, 21, 14, 20, 10].

6 Category Theory

Category theory seems to present the most general context in which the notions of induction, coinduction, fixed points, pre-fixed points (called algebras) and post-fixed points (called coalgebras) can be studied.

Formulation

Let (‘is related to’/‘arrow’) denote that two objects in a category are related (i.e., denote the ‘is-related-to’ relation, or, more concisely, denote relatedness).181818For mostly historical reasons, an arrow relating two objects in a category is sometimes also called a morphism. We prefer using is-related-to (i.e., has some relationship with) or arrow instead, since these terms seem to be more easily and intuitively understood, and also because they seem to be more in agreement with the abstract and general nature of category theory. Further, let be the collection of objects of a category (i.e., the category and the collection of its objects are homonyms) and let be191919Note that, similar to the situation for symbols and that we met in 5, in this section the same exact symbol is used to denote two (strongly-related but slightly different) meanings: the first, that two objects in a category are related (which is the meaning specific to category theory), while the second is the functional type of a self-map/endofunction/endofunctor that acts on objects of interest to us (i.e., points, sets, types, etc.), which is the meaning for that we have been using all along since the beginning of this article. an endofunctor over .

An object is called an -algebra if its -image is related to it, i.e., if

An object is called an -coalgebra if it is related to its -image, i.e., if

Now, if is a covariant endofunctor, i.e., if

and if an initial -algebra exists in and a final -coalgebra exists in ,202020While referring to 2, note that a category-theoretic initial -algebra and final -coalgebra are not the exact counterparts of an order-theoretic least fixed point and greatest fixed point but of a least pre-fixed point and greatest post-fixed point. This slight difference is significant, since, for example, a least pre-fixed point is not necessarily a least fixed point, unless the underlying ordering is a complete lattice (or at least is a meet-complete lattice), and also a greatest post-fixed point is not necessarily a greatest fixed point, unless the underlying ordering is a complete lattice (or at least is a join-complete lattice). The difference is demonstrated, for example, by the subtyping relation in generic nominally-typed OOP (see Footnote 14 in 2.2 of [2]). then for any object we have:

  • (induction)co if , then ,
    which, in words, means that if is an -algebra, then is related to (via a unique “complex-to-simple” arrow called a catamorphism), and

  • (coinduction) if , then ,
    which, in words, means that if is an -coalgebra, then is related to (via a unique “simple-to-complex” arrow called an anamorphism).

Notes

  • Even though each of an initial algebra and a final coalgebra is simultaneously an algebra and a coalgebra, it should be noted that there is no explicit concept in category theory corresponding to the concept of a fixed point in order theory, due to the general lack of an equality relation in category theory and the use of the isomorphism relation instead.

    • If such a “fixedness” notion is defined in category theory, it would denote an object that is simultaneously an algebra and a coalgebra, i.e., for a functor , a “fixed object” of will be related to the object and vice versa. This usually means that and , if not the same object, are isomorphic objects. (That is in fact the case for any initial -algebra and for any final -coalgebra, which—given the uniqueness of arrows from an initial algebra and to a final coalgebra—are indeed isomorphic to their -images).

  • Note also that, unlike the case in order theory, the induction and coinduction principles can be expressed in category theory using a “point-free style” (as we do in this article) but they can be also expressed using a “point-wise style”212121By giving a name to a specific arrow that relates two objects of a category, e.g., using notation such as to mean not only that objects and are related but also that they are related by a particular arrow named .. As such, regarding the possibility of expressing the two principles using either a point-wise style or a point-free style, category theory agrees more with set theory, type theory, and (first order) logic than it does with order theory.

  • Incidentally, categories are more similar to preorders (sometimes, but not invariably, also called quasiorders) than they are similar to partial-orders (i.e., posets). This is because a category, when viewed as an ordered set, is not necessarily anti-symmetric.

    • Categories are more general than preorders however, since a category can have multiple arrows between any pair of its objects, whereas any two elements/points of a preorder can only either have one “arrow” between the two points (denoted by rather than ) or not have one. (This possible multiplicity is what enables, and sometimes even necessitates, the use of arrow names, so as to distinguish between different arrows when multiple arrows relate the same pair of objects). As such, every preorder is a category, or, more precisely, every preorder has a unique (small) category—appropriately called a -category, a thin category, or a bool(ean)-category—corresponding to it, and vice versa. However, generally-speaking, while there is a unique preorder corresponding to each category but there is not a unique category corresponding to each preorder (typically many categories correspond to a single preorder , including the thin category corresponding to ).222222Indeed the relation between the two fields is precise to the extent that the relation can be described, formally, as an adjunction from the category of preorders to the category of small categories. The said adjunction mathematically expresses the intuition that “pre-orders approximate categories,” asserting thereby that every concept in order theory has a corresponding more general concept in category theory. For more on the relation between order theory and category theory (i.e., metaphorically, on ) and on the correspondence between their concepts see 8.

References

See [15, 4, 24, 22, 9].

7 Comparison Summary

Order Theory Set Theory FP Type Theory
Domain Points of a Set =Subsets of a Set Structural Data Types
Relation Abstract Ordering Inclusion Inclusion
Operator Function Function Type Cons.
Generator Monotonic Monotonic Poly. Type Constr.
(, and comp.)
Pre-Fix Pt Pre-Fixed Point -Large Set -Closed Type
Post-Fix Pt Post-Fixed Point -Small Set -Bounded Type
If Complete Lattice Smallest -Large Set Smallest -Closed Type
Least FP
( denotes ‘meet’) (Inductive Type)
If Complete Lattice Largest -Small Set Largest -Bounded Type
Grt. FP
( denotes ‘join’) (Coinductive Type)
Induction
Principle
Coinduction
Principle
Complete Latt. Sometimes Always Always
Op. Generator Sometimes Sometimes Always
Table 1: Comparison of concepts by subdiscipline (Part 1).
OOP Type Theory First-Order Logic Category Theory
Domain Class Types Statements Objects
Relation Subtyping Implication Arrow
Operator Gen. Class Operator Functor
Generator Covariant Covariant Covariant
Pre-Fix Pt -Supertype -Weak -Algebra
Post-Fix Pt -Subtype -Strong -Coalgebra
Least -Supertype Strongest -Weak Stmt Initial -Algebra
Least FP
( denotes ‘meet’) ( denotes conjunction)
Greatest -Subtype Weakest -Strong Stmt Final -Coalgebra
Grt. FP
( denotes ‘join’) ( denotes disjunction)
Induction
Principle
Coinduction
Principle
Complete Latt. Rarely Always Sometimes
Op. Generator Sometimes Sometimes Sometimes
Table 2: Comparison of concepts by subdiscipline (Part 2).

Table 1 and Table 2 summarize the formulations of the induction/coinduction principles and concepts related to them that we presented in 2-6.

8 A Fundamental and More Abstract Treatment

As we hinted to in 6, order theory and category theory are strongly related. In fact the connection between the two fields goes much, much further than we hinted at.

Closure and Kernel Operators

In order theory a closure operator over a poset is an idempotent extensive generator [7]. An extensive (or inflationary) endofunction over is an endofunction where

meaning that all points of are -small (i.e., are post-fixed points of ). An endofunction is idempotent iff

i.e., iff , meaning that applying twice does not transform or change an element of any more than applying to the element once does.

Also, in order theory a kernel (or interior) operator over is an idempotent intensive generator. An intensive (or deflationary) endofunction over is an endofunction where

meaning that all points of are -large (i.e., are pre-fixed points of ).232323It may be helpful here to check Figure 1 of [3]. If in Figure 1 of [3] is a closure operator then the upper diamond minus the inner diamond “collapses” (becomes empty), and we have . That is because, since is extensive, we have , and thus —if it exists in —is always a fixed point of , in fact the gfp (greatest fixed point) of . Dually, if in Figure 1 of [3] is a kernel operator then the lower diamond minus the inner diamond “collapses”, and we have . That is because, since is intensive, we have , and thus —if it exists in —is always a fixed point of , in fact the lfp (least fixed point) of .

Monads and Comonads

In category theory, on the other hand, when a partially-ordered set is viewed as a category, then a monad on a poset turns out to be exactly a closure operator over  [22]. By the definition of monads, all objects of a category are coalgebras of a monad, which translates to all elements of a poset being post-fixed points of the corresponding closure operator on (which we noted above). As such, the algebras for this monad correspond to the pre-fixed points of the closure operator, and thus correspond exactly to its fixed points.

Similarly, a comonad (the dual of a monad) on turns out to be exactly a kernel operator over . As such, by a dual argument, the coalgebras for this comonad are the post-fixed points of the kernel operator, and thus also correspond exactly to its fixed points.

An Alternative Presentation

Based on these observations that further relate category theory and order theory, the whole technical discussion in this article can be presented, more succinctly if also more abstractly, by rewriting it in terms of the very general language of monads/comonads, then specializing the abstract argument by applying it to each of the six categories we are interested in.242424Namely, (1) category OrdE of partially-ordered sets together with self-maps, (2) category PSetE of power sets (ordered by inclusion) together with endofunctions, (3) category TypS of structural types (ordered by inclusion/structural subtyping) together with structural type constructors, (4) category TypN of nominal types (ordered by nominal subtyping) together with generic classes, (5) category FOL of first-order logical statements (ordered by implication) together with logical operators, and (6) category CatE of (small) categories (ordered/related by arrows) together with endofunctors. Given that our goal, however, is to compare the concepts in their most natural and most concrete mathematical contexts, we refrain from presenting such a fundamental treatment here, keeping the possibility of making such a presentation in some future work, e.g., as a separate article, or as an appendix to future versions of this article.

References

See [4, 22, 9].

Acknowledgments

The author would like to thank John Greiner (Rice University) and David Spivak (MIT) for their suggestions and their valuable feedback on earlier versions of this article.

References

  • [1] Moez A. AbdelGawad. Induction, coinduction, and fixed points in order theory, set theory, type theory, first-order logic, and category theory: A concise comparative survey. eprint available at http://arxiv.org/abs/1812.10026, 2018.
  • [2] Moez A. AbdelGawad. Induction, coinduction, and fixed points in programming languages type theory. eprint available at http://arxiv.org/abs/1902.xxxxxx, 2019.
  • [3] Moez A. AbdelGawad. Induction, coinduction, and fixed points: Intuitions and tutorial. eprint available at http://arxiv.org/abs/1902.xxxxxx, 2019.
  • [4] Roland Carl Backhouse, Roy L. Crole, and Jeremy Gibbons, editors. Algebraic and Coalgebraic Methods in the Mathematics of Program Construction, International Summer School and Workshop, Oxford, UK, April 10-14, 2000, Revised Lectures, volume 2297 of Lectures Notes in Computer Science. Springer, 2002.
  • [5] Jon Barwise and Lawrence Moss. Vicious Circles: On the Mathematics of Non-wellfounded Phenomena. Cambridge University Press, 1996.
  • [6] M. Brandt and F. Henglein. Coinductive axiomatization of recursive type equality and subtyping. Fundamenta Informaticae, 33(4):309–338, 1998.
  • [7] B. A. Davey and H. A. Priestley. Introduction to Lattices and Order. Cambridge University Press, 2nd edition, 2002.
  • [8] Herbert B. Enderton. A Mathematical Introduction to Logic. Academic Press, New York, 1972.
  • [9] Brendan Fong and David Spivak. Seven Sketches in Compositionality: An Invitation to Applied Category Theory. Draft, 2018.
  • [10] Thomas Forster. Logic, Induction, and Sets. London Mathematical Society Student Texts. Cambridge University Press, 2003.
  • [11] Paul R. Halmos. Naive Set Theory. D. Van Nostrand Company, Inc., 1960.
  • [12] B. Knaster. Un thorme sur les fonctions d’ensembles. Ann. Soc. Polon. Math., 6:133–134, 1928.
  • [13] Dexter Kozen and Alexandra Silva. Practical coinduction. Mathematical Structures in Computer Science, 27(7):1132–1152, 2016.
  • [14] Steven G. Krantz. Handbook of Logic and Proof Techniques for Computer Science. Birkhäuser, 2002.
  • [15] Benjamin C. Pierce. Basic Category Theory for Computer Scientists. MIT Press, 1991.
  • [16] Benjamin C. Pierce. Types and Programming Languages. MIT Press, 2002.
  • [17] Steven Roman. Lattices and Ordered Sets. Springer, 2008.
  • [18] Kenneth A. Ross and Charles R. B. Wright. Discrete Mathematics. Prentice Hall, third edition, 1992.
  • [19] Davide Sangiorgi. Introduction to Bisimulation and Coinduction. 2012.
  • [20] Luigi Santocanale. On the equational definition of the least prefixed point. Theoretical Computer Science, 2003.
  • [21] Joseph R. Shoenfield. Mathematical Logic. Addison-Wesley, 1967.
  • [22] David Spivak. Category theory for the sciences. MIT Press, 2014.
  • [23] Alfred Tarski. A lattice-theoretical fixpoint theorem and its applications. Pacific Journal of Mathematics, 5:285–309, 1955.
  • [24] Rik van Geldrop and Jaap van der Woude. Inductive sets, the algebraic way, 2009.