PS

Reader monad

Opposite monoidal category

Monoidal category:

  •  (\mathcal{C}, \otimes, I, \alpha, \lambda, \rho)

について

は、monoidal categoryになる(と思う)ので

  •  (\mathcal{C}, \otimes, I, \ldots) ^ \mathrm{op}

と書くことにする。 *2

Comonoid object

そのopposite monoidal categoryにおけるmonoid objectのこと。

Trivial comonoid object

Monoidal category with finite limits:

  •  ( \mathcal{C}, \times, 1)

について

  1.  E \in \mathcal{C}
  2.  ! : E \to 1 *3
  3.  \langle 1 _ E , 1 _ E \rangle  : E \to E \times E

はcomonoid objectになる。

Yoneda monoidal embedding

  1.  \mathsf{y} ^ - (E) := (\unicode{x2013}) ^ E \cong \mathrm{Hom}(E, \unicode{x2013}) *4
  2.  (\mathtt{uncurry} _ {E, E'}) _ A : (A ^ {E'}) ^ E \overset{\sim}{\to} A ^ {E \times E'}
  3.  u _ A : A \overset{\sim}{\to} A ^ {\lbrace \ast \rbrace}

はmonoidal functor:

  •  (\mathsf{y} ^ -, \mathtt{uncurry}, u) : (\mathcal{Set}, \times, \lbrace \ast \rbrace) ^ \mathrm{op} \to (\mathcal{Set} ^ \mathcal{Set}, \circ, 1 _ {\mathcal{Set}} )

になる。

Reader monad

Monads from monoidsにより、trivial comonoidを  {\mathsf{y} ^ -} _ \ast に渡せばmonadになる。

具体的には

  1.  (\unicode{x2013}) ^ E
  2.  a \mapsto e \mapsto a
  3.  f \mapsto e \mapsto \mathtt{uncurry}(f)(e, e)

monadを成す。

参考文献

*1:記法はOpposite natural transformation - PSを参照

*2:違う意味のoppositeもある(らしい)ので注意

*3:terminal objectとのmediator

*4:contravariant Yoneda embedding from sets