モナド(圏論)

数学の一分野である圏論において、モナドとは、圏からそれ自身への関数Tと、結合性などの条件を満たす2つの自然変換からなる三つ組です。例えば、関数Tが互いに随伴関係にある場合、随伴関係によって決定される関数Tと合わせてモナドとなります。

簡潔に言えば、モナドとは、ある固定された圏の自己関数者におけるモノイドです(自己関数者とは、ある圏を自身に写像する関数者のことです)。数学者ジョン・バエズによれば、モナドは少なくとも2つの方法で考えることができます。[1]

  1. 一般化されたモノイドとしてのモナド。これは、モナドが特定のカテゴリのモノイドであるため明らかである。
  2. 代数的なガジェットを研究するためのツールとしてのモナド。たとえば、グループは特定のモナドによって記述できます。

モナドは随伴関数対の理論で用いられ半順序集合上の閉包演算子を任意のカテゴリに一般化します。モナドはデータ型理論命令型プログラミング言語表示的意味論、そして関数型プログラミング言語においても有用であり、可変状態を持たない言語でforループをシミュレートするなどの処理を可能にします。 「モナド(関数型プログラミング)」を参照してください

モナドは、特に古い文献では、トリプルトライアド標準構成基本構成とも呼ばれます。[2]

はじめにと定義

私たちはしばらく話をしましたが、その間に、私はモナドに関する特定の話題に対する恐怖心が薄れてきたことに気づきました。

モナドは多くの人を悩ませているようです。YouTubeには「モナドが頭を痛める!」という動画さえあります。…その直後、女性はこう叫びます。

一体何なんだ?モナドって何なのか、どう説明すればいいんだ?

モナドとは、ある種の自己関数子です。例えば、と が随伴関数子のペアで、 がに左随伴関数子である場合、その合成はモナドです。と が互いに逆関数である場合、対応するモナドは恒等関数子です。一般に、随伴は同値ではなく、異なる性質の範疇を関連付けるものです。モナド理論は、随伴が「保持する」ものを捉える取り組みの一環として重要です。 の考察から同様に何が学べるかという理論のもう半分は、コモナドの双対理論で議論されています

正式な定義

この記事全体を通して、はカテゴリを表します上のモナドは、 の自己関数と2つの自然変換の恒等関数を表す)および( はからへの関数を表す)から構成されます。これらは以下の条件(一貫性条件と呼ばれることもあります)を満たすために必要です。

  • (自然変換として);ここでは、と は「水平合成」によって形成されます
  • (自然変換として; ここではから への恒等変換を表します)。

これらの条件は、次の交換法則を使用して書き直すことができます。

            

表記法との説明については、自然変換に関する記事を参照するか、これらの表記法を使用しない可換図を以下で参照してください。

            

最初の公理は、モノイドの二項演算を と考えると、モノイドにおける結合性に似ています。また、2番目の公理は、単位元( によって与えられると考える)の存在に似ています。実際、 上のモナドは、の自己関数をオブジェクトとし、それらの射をそれらの間の自然変換とする、カテゴリ のモノイドとして定義することもできます。モノイド構造は自己関数の合成によって誘導されます。

冪集合モナド

集合モナドは、圏 上のモナドです。集合 に対して を の集合とし関数に対しての直像によって誘導される冪集合間の関数とします任意の集合 に対して、写像 が存在し、これは任意の単集合に を割り当てます。関数 は

集合の集合をその和集合にとります。これらのデータはモナドを記述します。

備考

モナドの公理は、形式的にはモノイド公理に類似しています。実際、モナドはモノイドの特殊なケースであり、すなわち、自己関数 間のモノイドそのものであり、自己関数の合成によって得られる乗法を備えています。

モナドの合成は、一般にモナドではない。例えば、二重冪集合関数はモナド構造を許容しない。[3]

コモナド

論的双対定義は、コモナド(またはコトリプル)の形式的な定義である。これは、ある圏のコモナドは、その反対の圏のモナドであるという観点から簡単に言える。したがって、これは からそれ自身へ関手であり、定義中の矢印を反転させることで得られるコユニットコマルチプレクシングの公理系を持つ

モナドとモノイドの関係は、コモナドとコモノイドの関係と同じです。すべての集合は一意にコモノイドであるため、コモノイドは抽象代数においてモノイドほど馴染みがありません。しかし、通常のテンソル積を持つベクトル空間のカテゴリにおけるコモノイドは重要であり、コ代数という名前で広く研究されています。

用語の歴史

モナドの概念は、 1958年にロジェ・ゴドマンによって「標準構成」という名前で考案されました。モナドは「二重標準構成」「三重」「モノイド」「トライアド」などとも呼ばれてきました。[4]「モナド」という用語は、遅くとも1967年にジャン・ベナブーによって使用されています。[5] [6]

身元

圏上の恒等関数はモナドである。その乗算と単位元は、のオブジェクト上の恒等関数である。

付加から生じるモナド

あらゆる付加物

C上のモナドを生成する。この非常に広く普及している構成は次のように動作する。自己関数子は合成関数である。

この自己関数はすぐにモナドであることがわかり、単位写像は随伴の単位写像から派生し、乗算写像は随伴の余単位写像を使用して構築されます。

実際、任意のモナドは、アイレンバーグ・ムーアのカテゴリ(-代数のカテゴリ)を使用して、関数の明示的な付加として見つけることができます[7]

二重の二重化

固定kに対する二重双対化モナドは

ここで、両方の関数は、ベクトル空間 V をその双対ベクトル空間 に送ることで与えられます。付随するモナドは、ベクトル空間Vをその二重双対に送ります。このモナドについては、Kock (1970) によってより一般的な議論がなされています。

半順序集合上の閉包演算子

半順序集合 から生じるカテゴリ( の場合限りから への単一の射を持つ)の場合、形式論ははるかに単純になります。つまり、随伴対はガロア接続であり、モナドは閉包演算子です。

自由忘却付加詞

例えば、Grpから集合のSetへの忘却関手を とし集合の圏から群の圏への自由群関手を とします。すると、 は の左随伴となります。この場合、付随モナドは集合を受け取り、自由群 の基礎集合を返します。このモナドの単位写像は、写像によって与えられます。

任意の集合を自然な方法で、長さ1の文字列として集合に含める。さらに、このモナドの乗算は写像である。

「文字列の文字列」の自然な連結、つまり「平坦化」から成ります。これは2つの自然変換に相当します。自由群に関する前述の例は、普遍代数における代数多様体の意味で、あらゆるタイプの代数に一般化できます。したがって、そのようなタイプの代数はすべて、集合のカテゴリ上のモナドを生み出します。重要なのは、代数型はモナドから(アイレンバーグ・ムーア代数のカテゴリとして)復元できるため、モナドは普遍代数の一般化多様体と見なすこともできるということです。

随伴作用から生じるもう一つのモナドは、ベクトル空間の圏上の自己関数 のときである。これはベクトル空間をそのテンソル代数に写し、線型写像をそのテンソル積 に写す。すると、 をそのテンソル代数に埋め込むことに対応する自然変換、およびすべてのテンソル積 を単純に展開することによって得られるからへの写像に対応する自然変換が得られる。

コーデンシティモナド

緩やかな条件下では、左随伴関数を許容しない関数もモナド、いわゆる共密度モナドを生成する。例えば、包含

は左随伴を許容しない。その共密度モナドは、任意の集合X をX上の超フィルタ集合へ送る集合上のモナドである。これと同様の例は、Leinster (2013) で議論されている。

表示的意味論で使用されるモナド

命令型プログラミング言語表示的意味論では、集合のカテゴリ上の次のモナドが使用され、関数型プログラミングでは類似の構造が使用されます。

多分モナド

多分モナドまたは部分モナドの自己関数子は分離点を追加します: [8]

単位は、集合を に含めることによって与えられます

乗算により、 の要素が自身にマッピングされ、 の 2 つの互いに素な点が の1 つの点にマッピングされます

関数型プログラミングと表示的意味論の両方において、maybe モナドは部分的な計算、つまり失敗する可能性のある計算をモデル化します。

状態モナド

集合 が与えられたとき、状態モナドの自己関数子は各集合を関数の集合 に写像する。つまり、 および である

ユニットのコンポーネントは各要素を関数に マッピングします

乗算は関数を関数に マッピングします

より詳しく言うと、がおよび の ペアである場合となります

逆カリー化して となるこれを と に分解する

すると、次のように表現できる。

結合は次のように与えられます


関数型プログラミングと表示的意味論では、状態モナドは状態のある計算をモデル化します

環境モナド

集合 が与えられたとき、リーダーモナドまたは環境モナドの自己関数子は、各集合を関数 の集合 に写像します。したがって、このモナドの自己関数子はまさにhom 関数子です。ユニット の成分 は、各要素を定数関数に写像します

乗算は2変数関数を その「対角成分」に写像する。言い換えれば、乗算は前置合成である。

関数型プログラミングと表示的意味論では、環境モナドは読み取り専用データにアクセスする計算をモデル化します。

リストモナドとセットモナド

リストモナド、あるいは非決定性モナドは、集合Xを、 Xを要素とする有限(つまりリストの集合に写像します。ユニットは、Xの要素xを、単項リスト [x] に写像します。乗算は、リストのリストを単一のリストに連結します。

関数型プログラミングでは、リストモナドは非決定性計算をモデル化するために使用されます。共変冪集合モナドは集合モナドとも呼ばれ、非決定性計算をモデル化するために使用されます。

モナドの代数

カテゴリ 上のモナドが与えられた場合、 -代数、すなわち、モナドの単項および乗法と両立する方法でによって作用されるの対象を考えるのは自然なことです。より正式には、 -代数と は、 の構造写像と呼ばれる矢印を伴う対象であり、図は

そして

通勤。

-代数とは、図式

は可換である。 -代数は、アイレンバーグ–ムーアカテゴリと呼ばれるカテゴリを形成し、 と表記される

自由群モナド上の代数

例えば、上で議論した自由群モナドの場合、 -代数は、結合性および単位性条件の下で、自由群から へ向かって生成される写像を伴う集合である。このような構造は、 が群そのものであるということに等しい。

分配モナド上の代数

もう一つの例は、集合のカテゴリ上の分配モナド である。これは、有限台と関数の集合に、それらの和が となるような集合を代入することによって定義される。集合構築記法では、これは集合 となる。定義を調べると、分配モナド上の代数は凸集合、すなわちユークリッド空間における凸線型結合の振る舞いに似た公理に従う に対する演算を備えた集合 と同値であることが示される[9]

対称モナド上の代数

モナドのもう一つの有用な例としては、可換環 の - 加群のカテゴリにおける対称代数関数がありますこれは、の対称テンソル冪直和に- 加群を当てはめます。例えば、右側の - 代数は加群とみなされます。すると、このモナド上の代数は可換 - 代数です。また、交代テンソルと全テンソル関数のモナド上の代数は、反対称 -代数と自由- 代数を与えます。つまり、最初の環は -生成子上の自由反対称代数であり、2番目の環は -生成子上の自由代数です

E無限大環スペクトルにおける可換代数

可換-代数に対する可換 -代数を与える、可換-代数[10] 113 ページにも類似の構成法がある。 が-加群の圏である場合、関数は-で与えられるモナドである。すると、このモナド上の代数の圏から、可換 -代数の関連する圏が存在する。

モナドと付加

上で述べたように、任意の随伴はモナドを生じます。逆に、すべてのモナドは何らかの随伴、すなわち自由忘却随伴から生じます。

の左随伴項はオブジェクトXを自由T代数T ( X ) に送ります。しかし、モナドを生成する別個の随伴項が通常複数存在します。 をとなる随伴項をオブジェクトとし、 の矢印が 上の恒等写像である随伴項の射であるようなカテゴリとします。すると、上記の Eilenberg–Moore カテゴリを含む自由忘却随伴項は の終端オブジェクトになります。初期オブジェクトはKleisli カテゴリで、これは定義により自由T代数、つまりCあるオブジェクトxに対するの形のT代数のみからなるの完全なサブカテゴリです

モナド付加

任意のモナドTに関連する随伴関数が与えられた場合、関手Gは次のように因数分解できる。

すなわち、G ( Y ) は、 Dの任意のYに対してT代数構造を自然に備えることができます。最初の関数がDとアイレンバーグ–ムーアカテゴリとの間のカテゴリの同値をもたらす場合、随伴はモナディック随伴と呼ばれます[11]拡張により、関数がモナディック随伴を形成する左随伴Fを持つ場合、その関数はモナディックであると言われています。たとえば、前述のように、関連するモナド上の代数はグループであるため、グループとセットの間の自由–忘却随伴はモナディックです。一般に、随伴がモナディックであることを知っていれば、C内のオブジェクトT作用からD内のオブジェクトを再構築できます。

ベックのモナディシティ定理

ベックのモナディ性定理は、随伴がモナディックであるための必要十分条件を与える。この定理の簡略版は、 Gがモナディックであるための必要十分条件は、G が保存的である場合(またはG が同型写像を反映する、すなわち、 Dの射が同型写像となる場合と、 Gによるその像がCの同型写像となる場合とで同値である)かつCが を持ち、 G が共等化子を保存すること

例えば、コンパクト・ ハウスドルフ空間の圏から集合への忘却関手はモナド的である。しかし、すべての位相空間から集合への忘却関手は保存的ではない。なぜなら、非コンパクト空間や非ハウスドルフ空間間の連続全単射写像が存在し、それが同相写像にならないからである。したがって、この忘却関手はモナド的ではない。[12]コモナド的随伴を特徴付けるベックの定理の双対版は、トポス理論や代数幾何学における降下に関する話題など、様々な分野で関連している。コモナド的随伴の最初の例は、随伴である。

可換環間の環準同型を求める。ベックの定理によれば、この随伴がコモナド的であることと、B がA -加群として忠実平坦であることは同値である。したがって、この随伴は、降下データ(すなわち、随伴によって与えられるコモナドの作用)を備えたB -加群をA -加群に降下させることを可能にする。結果として得られる忠実平坦降下理論は、代数幾何学において広く応用されている。

用途

モナドは関数型プログラミングにおいて、逐次計算(場合によっては副作用を伴う)を表現するために使用されます。関数型プログラミングにおけるモナド、およびより数学的なウィキブックモジュール b:Haskell/圏論 を参照してください。

モナドは不純な関数型プログラミング言語や命令型プログラミング言語の表示的意味論で使用されます。[13] [14]

カテゴリカル論理では、閉包演算子内部代数、およびそれらのS4モデル直観主義論理との関係を介して、モナド-コモナド理論と様相論理の間に類似性が描かれています。

一般化

2-カテゴリ においてモナドを定義することが可能です。上記のモナドは のモナドです

参照

参考文献

  1. ^ ab 「nカテゴリーカフェ」.
  2. ^ バー、マイケル; Wells、Charles (1985)、「Toposes、Triples and Theories」(PDF)Grundlehren der mathematischen Wissenschaften、vol. 278、シュプリンガー版、82 および 120 ページ、ISBN 0-387-96115-1
  3. ^ Klin; Salamanca (2018)、「反復共変べき集合はモナドではない」、電子計算機科学理論ノート341 : 261– 276、doi : 10.1016/j.entcs.2018.11.013
  4. ^ マクレーン 1978年、138ページ。
  5. ^ ジャン・ベナブー (1967)。 「二カテゴリー入門」。ベナブーにて、J.デイビス、R.ドルド、A.イズベル、J.マクレーン、S.オーバースト、U.ルース、J. -E. (編)。中西部カテゴリーセミナーのレポートです。数学の講義ノート。 Vol. 47. ベルリン、ハイデルベルク:シュプリンガー。ページ 1–77土井:10.1007/BFb0074299。ISBN 978-3-540-35545-8
  6. ^ “RE: Monads”. Gmane . 2009年4月4日. 2015年3月26日時点のオリジナルよりアーカイブ。
  7. ^ Riehl, Emily . 「Category Theory in Context」(PDF) . p. 162. 2021年4月5日時点のオリジナルよりアーカイブ(PDF) 。
  8. ^ リール2017、155頁。
  9. ^ Świrszcz, T. (1974), 「モナディック関数と凸性」, Bull. Acad. Polon. Sci. Sér. Sci. Math. Astron. Phys. , 22 : 39– 42, MR  0390019ジェイコブス、バート(2010)、「凸性、双対性、および効果」、理論計算機科学、IFIP情報通信技術の進歩、第323巻、pp.  1– 19、doi10.1007 / 978-3-642-15240-5_1ISBN 978-3-642-15239-9
  10. ^ Basterra, M. (1999-12-15). 「可換S代数のアンドレ・キレンコホモロジー」. Journal of Pure and Applied Algebra . 144 (2): 111– 143. doi : 10.1016/S0022-4049(98)00051-6 . ISSN  0022-4049.
  11. ^ MacLane (1978) はより強い定義を使用しており、2 つのカテゴリは同等ではなく同型です。
  12. ^ マクレーン (1978、§§VI.3、VI.9)
  13. ^ Wadler, Philip (1993). 「関数型プログラミングのためのモナド」. Broy, Manfred (編).プログラム設計計算. NATO ASIシリーズ. 第118巻. ベルリン、ハイデルベルク: Springer. pp.  233– 264. doi :10.1007/978-3-662-02880-3_8. ISBN 978-3-662-02880-3「モナドの概念はカテゴリー理論から生まれ、プログラミング言語の表示的意味論を構築するために Moggi によって応用されました。」
  14. ^ Mulry, Philip S. (1998-01-01). 「モナドの意味論」.電子計算機科学理論ノート. 米国・ブラジル合同ソフトウェアシステム基礎ワークショップ. 14 : 275–286 . doi : 10.1016/S1571-0661(05)80241-5 . ISSN  1571-0661.

さらに読む

  • バー、マイケルウェルズ、チャールズ(1999)、計算科学のためのカテゴリー理論(PDF)
  • Godement、Roger (1958)、Topologie Algébrique et Théorie des Faisceaux。、実際の科学。インド、出版。数学。大学ストラスブール、vol. 1252 年、パリ: ヘルマン、pp. viii+283 pp
  • コック、アンダース(1970)、「二重双対モナドについて」、マセマティカ・スカンジナヴィカ27:151、doi10.7146/math.scand.a-10995
  • レンスター、トム (2013)、「コデンシティとウルトラフィルタモナド」(PDF)カテゴリーの理論と応用28 : 332–370arXiv : 1209.3606Bibcode :2012arXiv1209.3606L
  • マクレーン、サンダース(1978)「働く数学者のためのカテゴリー」、数学大学院テキスト、第5巻、doi10.1007/978-1-4757-4721-8ISBN 978-1-4419-3123-8
  • ペディッキオ、マリア・クリスティーナ、トーレン、ウォルター編 (2004).圏論的基礎付け. 順序、位相、代数、層理論に関する特別トピック. 数学とその応用百科事典. 第97巻. ケンブリッジ:ケンブリッジ大学出版局. ISBN 0-521-83414-7. Zbl  1034.18001。
  • ペローネ、パオロ(2024)、「第5章 モナドとコモナド」カテゴリー理論入門、ワールドサイエンティフィック、doi:10.1142/9789811286018_0005、ISBN 978-981-12-8600-1
  • リール、エミリー(2017)、文脈におけるカテゴリー理論、クーリエ・ドーバー出版、ISBN 9780486820804
  • トゥリ、ダニエレ(1996–2001)、カテゴリー理論講義ノート(PDF)
  • https://mathoverflow.net/questions/55182/セット上のモナドのカテゴリについて何が知られているか
  • ロス・ストリート『モナドの形式理論』[1]
  • Monads、5 つの短い講義 (1 つの付録付き) の YouTube ビデオ。
  • John Baez の「今週の数理物理学の発見 (第 89 週)」では、2 つのカテゴリのモナドを取り上げます。
  • モナドとコモナド、ビデオチュートリアル。
  • https://medium.com/@felix.kuehl/a-monad-is-just-a-monoid-in-the-category-of-endofunctors-lets-actually-unravel-this-f5d4b7dbe5d6
Retrieved from "https://en.wikipedia.org/w/index.php?title=Monad_(category_theory)&oldid=1322869923"