Strong monad

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Script error: No such module "Unsubst".

In category theory, a strong monad is a monad on a monoidal category with an additional natural transformation, called the strength, which governs how the monad interacts with the monoidal product.

Strong monads play an important role in theoretical computer science where they are used to model computation with side effects.[1]

Definition

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

File:Strong monad left unit.svg, File:Strong monad associative.svg,
File:Strong monad unit.svg, and File:Strong monad multiplication.svg

commute for every object A, B and C.

Commutative strong monads

For every strong monad T on a symmetric monoidal category, a right strength natural transformation can be defined by

t'A,B=T(γB,A)tB,AγTA,B:TABT(AB).

A strong monad T is said to be commutative when the diagram

File:Strong monad commutation.svg

commutes for all objects A and B.

Properties

The Kleisli category of a commutative monad is symmetric monoidal in a canonical way, see corollary 7 in Guitart[2] and corollary 4.3 in Power & Robison.[3] When a monad is strong but not necessarily commutative, its Kleisli category is a premonoidal category.

One interesting fact about commutative strong monads is that they are "the same as" symmetric monoidal monads.[4] More explicitly,

  • a commutative strong monad (T,η,μ,t) defines a symmetric monoidal monad (T,η,μ,m) bymA,B=μABTt'A,BtTA,B:TATBT(AB)
  • and conversely a symmetric monoidal monad (T,η,μ,m) defines a commutative strong monad (T,η,μ,t) bytA,B=mA,B(ηA1TB):ATBT(AB)

and the conversion between one and the other presentation is bijective.

References

Template:Reflist

External links

  1. Script error: No such module "Citation/CS1".
  2. Script error: No such module "Citation/CS1".
  3. Script error: No such module "Citation/CS1".
  4. Script error: No such module "Citation/CS1".