Monad (category theory)

Last updated

In category theory, a branch of mathematics, a monad (also triple, triad, standard construction and fundamental construction) [1] is a monoid in the category of endofunctors of some fixed category. An endofunctor is a functor mapping a category to itself, and a monad is an endofunctor together with two natural transformations required to fulfill certain coherence conditions. Monads are used in the theory of pairs of adjoint functors, and they generalize closure operators on partially ordered sets to arbitrary categories. Monads are also useful in the theory of datatypes, the denotational semantics of imperative programming languages, and in functional programming languages, allowing languages without mutable state to do things such as simulate for-loops; see Monad (functional programming).

Contents

Introduction and definition

A monad is a certain type of endofunctor. For example, if and are a pair of adjoint functors, with left adjoint to , then the composition is a monad. If and are inverse functors, the corresponding monad is the identity functor. In general, adjunctions are not equivalences—they relate categories of different natures. The monad theory matters as part of the effort to capture what it is that adjunctions 'preserve'. The other half of the theory, of what can be learned likewise from consideration of , is discussed under the dual theory of comonads.

Formal definition

Throughout this article denotes a category. A monad on consists of an endofunctor together with two natural transformations: (where denotes the identity functor on ) and (where is the functor from to ). These are required to fulfill the following conditions (sometimes called coherence conditions):

We can rewrite these conditions using the following commutative diagrams:

Coherence law for the multiplication of a monad.svg
            
Coherence law for the unit of a monad.svg

See the article on natural transformations for the explanation of the notations and , or see below the commutative diagrams not using these notions:

Monad multiplication explicit.svg              Monad unit explicit.svg

The first axiom is akin to the associativity in monoids if we think of as the monoid's binary operation, and the second axiom is akin to the existence of an identity element (which we think of as given by ). Indeed, a monad on can alternatively be defined as a monoid in the category whose objects are the endofunctors of and whose morphisms are the natural transformations between them, with the monoidal structure induced by the composition of endofunctors.

The power set monad

The power set monad is a monad on the category : For a set let be the power set of and for a function let be the function between the power sets induced by taking direct images under . For every set , we have a map , which assigns to every the singleton . The function

takes a set of sets to its union. These data describe a monad.

Remarks

The axioms of a monad are formally similar to the monoid axioms. In fact, monads are special cases of monoids, namely they are precisely the monoids among endofunctors , which is equipped with the multiplication given by composition of endofunctors.

Composition of monads is not, in general, a monad. For example, the double power set functor does not admit any monad structure. [2]

Comonads

The categorical dual definition is a formal definition of a comonad (or cotriple); this can be said quickly in the terms that a comonad for a category is a monad for the opposite category . It is therefore a functor from to itself, with a set of axioms for counit and comultiplication that come from reversing the arrows everywhere in the definition just given.

Monads are to monoids as comonads are to comonoids . Every set is a comonoid in a unique way, so comonoids are less familiar in abstract algebra than monoids; however, comonoids in the category of vector spaces with its usual tensor product are important and widely studied under the name of coalgebras.

Terminological history

The notion of monad was invented by Roger Godement in 1958 under the name "standard construction". Monad has been called "dual standard construction", "triple", "monoid" and "triad". [3] The term "monad" is used at latest 1967, by Jean Bénabou. [4] [5]

Examples

Identity

The identity functor on a category is a monad. Its multiplication and unit are the identity function on the objects of .

Monads arising from adjunctions

Any adjunction

gives rise to a monad on C. This very widespread construction works as follows: the endofunctor is the composite

This endofunctor is quickly seen to be a monad, where the unit map stems from the unit map of the adjunction, and the multiplication map is constructed using the counit map of the adjunction:

In fact, any monad can be found as an explicit adjunction of functors using the Eilenberg–Moore category (the category of -algebras). [6]

Double dualization

The double dualization monad, for a fixed field k arises from the adjunction

where both functors are given by sending a vector space V to its dual vector space . The associated monad sends a vector space V to its double dual . This monad is discussed, in much greater generality, by Kock (1970).

Closure operators on partially ordered sets

For categories arising from partially ordered sets (with a single morphism from to if and only if ), then the formalism becomes much simpler: adjoint pairs are Galois connections and monads are closure operators.

Free-forgetful adjunctions

For example, let be the forgetful functor from the category Grp of groups to the category Set of sets, and let be the free group functor from the category of sets to the category of groups. Then is left adjoint of . In this case, the associated monad takes a set and returns the underlying set of the free group . The unit map of this monad is given by the maps

including any set into the set in the natural way, as strings of length 1. Further, the multiplication of this monad is the map

made out of a natural concatenation or 'flattening' of 'strings of strings'. This amounts to two natural transformations. The preceding example about free groups can be generalized to any type of algebra in the sense of a variety of algebras in universal algebra. Thus, every such type of algebra gives rise to a monad on the category of sets. Importantly, the algebra type can be recovered from the monad (as the category of Eilenberg–Moore algebras), so monads can also be seen as generalizing varieties of universal algebras.

Another monad arising from an adjunction is when is the endofunctor on the category of vector spaces which maps a vector space to its tensor algebra , and which maps linear maps to their tensor product. We then have a natural transformation corresponding to the embedding of into its tensor algebra, and a natural transformation corresponding to the map from to obtained by simply expanding all tensor products.

Codensity monads

Under mild conditions, functors not admitting a left adjoint also give rise to a monad, the so-called codensity monad. For example, the inclusion

does not admit a left adjoint. Its codensity monad is the monad on sets sending any set X to the set of ultrafilters on X. This and similar examples are discussed in Leinster (2013).

Monads used in denotational semantics

The following monads over the category of sets are used in denotational semantics of imperative programming languages, and analogous constructions are used in functional programming.

The maybe monad

The endofunctor of the maybe or partiality monad adds a disjoint point: [7]

The unit is given by the inclusion of a set into :

The multiplication maps elements of to themselves, and the two disjoint points in to the one in .

In both functional programming and denotational semantics, the maybe monad models partial computations, that is, computations that may fail.

The state monad

Given a set , the endofunctor of the state monad maps each set to the set of functions . The component of the unit at maps each element to the function

The multiplication maps the function to the function

In functional programming and denotational semantics, the state monad models stateful computations.

The environment monad

Given a set , the endofunctor of the reader or environment monad maps each set to the set of functions . Thus, the endofunctor of this monad is exactly the hom functor . The component of the unit at maps each element to the constant function .

In functional programming and denotational semantics, the environment monad models computations with access to some read-only data.

The list and set monads

The list or nondeterminism monad maps a set X to the set of finite sequences (i.e., lists) with elements from X. The unit maps an element x in X to the singleton list [x]. The multiplication concatenates a list of lists into a single list.

In functional programming, the list monad is used to model nondeterministic computations. The covariant powerset monad is also known as the set monad, and is also used to model nondeterministic computation.

Algebras for a monad

Given a monad on a category , it is natural to consider -algebras, i.e., objects of acted upon by in a way which is compatible with the unit and multiplication of the monad. More formally, a -algebra is an object of together with an arrow of called the structure map of the algebra such that the diagrams

Monad multi algebra.svg and Monad unit algebra.svg

commute.

A morphism of -algebras is an arrow of such that the diagram

Monad morphism algebra.svg

commutes. -algebras form a category called the Eilenberg–Moore category and denoted by .

Examples

Algebras over the free group monad

For example, for the free group monad discussed above, a -algebra is a set together with a map from the free group generated by towards subject to associativity and unitality conditions. Such a structure is equivalent to saying that is a group itself.

Algebras over the distribution monad

Another example is the distribution monad on the category of sets. It is defined by sending a set to the set of functions with finite support and such that their sum is equal to . In set-builder notation, this is the set

By inspection of the definitions, it can be shown that algebras over the distribution monad are equivalent to convex sets, i.e., sets equipped with operations for subject to axioms resembling the behavior of convex linear combinations in Euclidean space. [8]

Algebras over the symmetric monad

Another useful example of a monad is the symmetric algebra functor on the category of -modules for a commutative ring .

sending an -module to the direct sum of symmetric tensor powers

where . For example, where the -algebra on the right is considered as a module. Then, an algebra over this monad are commutative -algebras. There are also algebras over the monads for the alternating tensors and total tensor functors giving anti-symmetric -algebras, and free -algebras, so

where the first ring is the free anti-symmetric algebra over in -generators and the second ring is the free algebra over in -generators.

Commutative algebras in E-infinity ring spectra

There is an analogous construction for commutative -algebras [9] pg 113 which gives commutative -algebras for a commutative -algebra . If is the category of -modules, then the functor is the monad given by

where

-times. Then there is an associated category of commutative -algebras from the category of algebras over this monad.

Monads and adjunctions

As was mentioned above, any adjunction gives rise to a monad. Conversely, every monad arises from some adjunction, namely the free–forgetful adjunction

whose left adjoint sends an object X to the free T-algebra T(X). However, there are usually several distinct adjunctions giving rise to a monad: let be the category whose objects are the adjunctions such that and whose arrows are the morphisms of adjunctions that are the identity on . Then the above free–forgetful adjunction involving the Eilenberg–Moore category is a terminal object in . An initial object is the Kleisli category, which is by definition the full subcategory of consisting only of free T-algebras, i.e., T-algebras of the form for some object x of C.

Monadic adjunctions

Given any adjunction with associated monad T, the functor G can be factored as

i.e., G(Y) can be naturally endowed with a T-algebra structure for any Y in D. The adjunction is called a monadic adjunction if the first functor yields an equivalence of categories between D and the Eilenberg–Moore category . [10] By extension, a functor is said to be monadic if it has a left adjoint forming a monadic adjunction. For example, the free–forgetful adjunction between groups and sets is monadic, since algebras over the associated monad are groups, as was mentioned above. In general, knowing that an adjunction is monadic allows one to reconstruct objects in D out of objects in C and the T-action.

Beck's monadicity theorem

Beck's monadicity theorem gives a necessary and sufficient condition for an adjunction to be monadic. A simplified version of this theorem states that G is monadic if it is conservative (or G reflects isomorphisms, i.e., a morphism in D is an isomorphism if and only if its image under G is an isomorphism in C) and C has and G preserves coequalizers.

For example, the forgetful functor from the category of compact Hausdorff spaces to sets is monadic. However the forgetful functor from all topological spaces to sets is not conservative since there are continuous bijective maps (between non-compact or non-Hausdorff spaces) that fail to be homeomorphisms. Thus, this forgetful functor is not monadic. [11] The dual version of Beck's theorem, characterizing comonadic adjunctions, is relevant in different fields such as topos theory and topics in algebraic geometry related to descent. A first example of a comonadic adjunction is the adjunction

for a ring homomorphism between commutative rings. This adjunction is comonadic, by Beck's theorem, if and only if B is faithfully flat as an A-module. It thus allows to descend B-modules, equipped with a descent datum (i.e., an action of the comonad given by the adjunction) to A-modules. The resulting theory of faithfully flat descent is widely applied in algebraic geometry.

Uses

Monads are used in functional programming to express types of sequential computation (sometimes with side-effects). See monads in functional programming, and the more mathematically oriented Wikibook module b:Haskell/Category theory.

Monads are used in the denotational semantics of impure functional and imperative programming languages. [12] [13]

In categorical logic, an analogy has been drawn between the monad-comonad theory, and modal logic via closure operators, interior algebras, and their relation to models of S4 and intuitionistic logics.

Generalization

It is possible to define monads in a 2-category . Monads described above are monads for .

See also

Related Research Articles

In mathematics, specifically category theory, a functor is a mapping between categories. Functors were first considered in algebraic topology, where algebraic objects are associated to topological spaces, and maps between these algebraic objects are associated to continuous maps between spaces. Nowadays, functors are used throughout modern mathematics to relate various categories. Thus, functors are important in all areas within mathematics to which category theory is applied.

In mathematics, specifically category theory, adjunction is a relationship that two functors may exhibit, intuitively corresponding to a weak form of equivalence between two related categories. Two functors that stand in this relationship are known as adjoint functors, one being the left adjoint and the other the right adjoint. Pairs of adjoint functors are ubiquitous in mathematics and often arise from constructions of "optimal solutions" to certain problems, such as the construction of a free group on a set in algebra, or the construction of the Stone–Čech compactification of a topological space in topology.

In category theory, an epimorphism is a morphism f : XY that is right-cancellative in the sense that, for all objects Z and all morphisms g1, g2: YZ,

In category theory, the product of two objects in a category is a notion designed to capture the essence behind constructions in other areas of mathematics such as the Cartesian product of sets, the direct product of groups or rings, and the product of topological spaces. Essentially, the product of a family of objects is the "most general" object which admits a morphism to each of the given objects.

In mathematics, a monoidal category is a category equipped with a bifunctor

In mathematics, the idea of a free object is one of the basic concepts of abstract algebra. Informally, a free object over a set A can be thought of as being a "generic" algebraic structure over A: the only equations that hold between elements of the free object are those that follow from the defining axioms of the algebraic structure. Examples include free groups, tensor algebras, or free lattices.

<span class="mw-page-title-main">Pontryagin duality</span> Duality for locally compact abelian groups

In mathematics, Pontryagin duality is a duality between locally compact abelian groups that allows generalizing Fourier transform to all such groups, which include the circle group, the finite abelian groups, and the additive group of the integers, the real numbers, and every finite-dimensional vector space over the reals or a p-adic field.

In category theory, a branch of abstract mathematics, an equivalence of categories is a relation between two categories that establishes that these categories are "essentially the same". There are numerous examples of categorical equivalences from many areas of mathematics. Establishing an equivalence involves demonstrating strong similarities between the mathematical structures concerned. In some cases, these structures may appear to be unrelated at a superficial or intuitive level, making the notion fairly powerful: it creates the opportunity to "translate" theorems between different kinds of mathematical structures, knowing that the essential meaning of those theorems is preserved under the translation.

In functional programming, a monad is a structure that combines program fragments (functions) and wraps their return values in a type with additional computation. In addition to defining a wrapping monadic type, monads define two operators: one to wrap a value in the monad type, and another to compose together functions that output values of the monad type. General-purpose languages use monads to reduce boilerplate code needed for common operations. Functional languages use monads to turn complicated sequences of functions into succinct pipelines that abstract away control flow, and side-effects.

In mathematics, especially in the fields of representation theory and module theory, a Frobenius algebra is a finite-dimensional unital associative algebra with a special kind of bilinear form which gives the algebras particularly nice duality theories. Frobenius algebras began to be studied in the 1930s by Richard Brauer and Cecil Nesbitt and were named after Georg Frobenius. Tadashi Nakayama discovered the beginnings of a rich duality theory, . Jean Dieudonné used this to characterize Frobenius algebras. Frobenius algebras were generalized to quasi-Frobenius rings, those Noetherian rings whose right regular representation is injective. In recent times, interest has been renewed in Frobenius algebras due to connections to topological quantum field theory.

In category theory, a branch of mathematics, Beck's monadicity theorem gives a criterion that characterises monadic functors, introduced by Jonathan Mock Beck in about 1964. It is often stated in dual form for comonads. It is sometimes called the Beck tripleability theorem because of the older term triple for a monad.

<i>F</i>-algebra

In mathematics, specifically in category theory, F-algebras generalize the notion of algebraic structure. Rewriting the algebraic laws in terms of morphisms eliminates all references to quantified elements from the axioms, and these algebraic laws may then be glued together in terms of a single functor F, the signature.

This is a glossary of properties and concepts in category theory in mathematics.

In mathematics, an operad is a structure that consists of abstract operations, each one having a fixed finite number of inputs (arguments) and one output, as well as a specification of how to compose these operations. Given an operad , one defines an algebra over to be a set together with concrete operations on this set which behave just like the abstract operations of . For instance, there is a Lie operad such that the algebras over are precisely the Lie algebras; in a sense abstractly encodes the operations that are common to all Lie algebras. An operad is to its algebras as a group is to its group representations.

<span class="mw-page-title-main">Monoid (category theory)</span>

In category theory, a branch of mathematics, a monoid (or monoid object, or internal monoid, or algebra) (M, μ, η) in a monoidal category (C, ⊗, I) is an object M together with two morphisms

In category theory, a Kleisli category is a category naturally associated to any monad T. It is equivalent to the category of free T-algebras. The Kleisli category is one of two extremal solutions to the question Does every monad arise from an adjunction? The other extremal solution is the Eilenberg–Moore category. Kleisli categories are named for the mathematician Heinrich Kleisli.

In mathematics, a full subcategory A of a category B is said to be reflective in B when the inclusion functor from A to B has a left adjoint. This adjoint is sometimes called a reflector, or localization. Dually, A is said to be coreflective in B when the inclusion functor has a right adjoint.

<span class="mw-page-title-main">Strong monad</span>

In category theory, a strong monad over a monoidal category (C, ⊗, I) is a monad (T, η, μ) together with a natural transformation tA,B : ATBT(AB), called (tensorial) strength, such that the diagrams

In category theory, monoidal functors are functors between monoidal categories which preserve the monoidal structure. More specifically, a monoidal functor between two monoidal categories consists of a functor between the categories, along with two coherence maps—a natural transformation and a morphism that preserve monoidal multiplication and unit, respectively. Mathematicians require these coherence maps to satisfy additional properties depending on how strictly they want to preserve the monoidal structure; each of these properties gives rise to a slightly different definition of monoidal functors

In category theory, a monoidal monad is a monad on a monoidal category such that the functor is a lax monoidal functor and the natural transformations and are monoidal natural transformations. In other words, is equipped with coherence maps and satisfying certain properties, and the unit and multiplication are monoidal natural transformations. By monoidality of , the morphisms and are necessarily equal.

References

  1. Barr, Michael; Wells, Charles (1985), "Toposes, Triples and Theories" (PDF), Grundlehren der mathematischen Wissenschaften, Springer-Verlag, vol. 278, pp. 82 and 120, ISBN   0-387-96115-1.
  2. Klin; Salamanca (2018), "Iterated Covariant Powerset is not a Monad", Electronic Notes in Theoretical Computer Science, 341: 261–276, doi: 10.1016/j.entcs.2018.11.013
  3. MacLane 1978, p. 138.
  4. Bénabou, Jean (1967). "Introduction to bicategories". In Bénabou, J.; Davis, R.; Dold, A.; Isbell, J.; MacLane, S.; Oberst, U.; Roos, J. -E. (eds.). Reports of the Midwest Category Seminar. Lecture Notes in Mathematics. Vol. 47. Berlin, Heidelberg: Springer. pp. 1–77. doi:10.1007/BFb0074299. ISBN   978-3-540-35545-8.
  5. "RE: Monads". Gmane . 2009-04-04. Archived from the original on 2015-03-26.
  6. Riehl, Emily. "Category Theory in Context" (PDF). p. 162. Archived (PDF) from the original on 5 Apr 2021.
  7. Riehl 2017, p. 155.
  8. Świrszcz, T. (1974), "Monadic functors and convexity", Bull. Acad. Polon. Sci. Sér. Sci. Math. Astron. Phys., 22: 39–42, MR   0390019 , Jacobs, Bart (2010), "Convexity, Duality and Effects", Theoretical Computer Science, IFIP Advances in Information and Communication Technology, vol. 323, pp. 1–19, doi: 10.1007/978-3-642-15240-5_1 , ISBN   978-3-642-15239-9
  9. Basterra, M. (1999-12-15). "André–Quillen cohomology of commutative S-algebras". Journal of Pure and Applied Algebra. 144 (2): 111–143. doi: 10.1016/S0022-4049(98)00051-6 . ISSN   0022-4049.
  10. MacLane (1978) uses a stronger definition, where the two categories are isomorphic rather than equivalent.
  11. MacLane (1978 , §§VI.3, VI.9)
  12. Wadler, Philip (1993). "Monads for functional programming". In Broy, Manfred (ed.). Program Design Calculi. NATO ASI Series. Vol. 118. Berlin, Heidelberg: Springer. pp. 233–264. doi:10.1007/978-3-662-02880-3_8. ISBN   978-3-662-02880-3. "The concept of a monad, which arises from category theory, has been applied by Moggi to structure the denotational semantics of programming languages."
  13. Mulry, Philip S. (1998-01-01). "Monads in Semantics". Electronic Notes in Theoretical Computer Science. US-Brazil Joint Workshops on the Formal Foundations of Software Systems. 14: 275–286. doi: 10.1016/S1571-0661(05)80241-5 . ISSN   1571-0661.

Further reading