メインコンテンツへスキップ
見出し画像

数学は矢印学だ!(文系向けに圏論について説明する試み)

    この記事は、高度な数学の分野である「圏論」について、文系の方々でもわかりやすく理解いただくために説明する試みです。

    ※画像はOpenAIのDALL·Eで作成

    文系動画で触れられる圏論


    私は普通のサラリーマンなのですが、趣味で数学の「圏論」という分野を勉強しています。

    「圏論」は数学の中でもかなり難解な分野であるはずにもかかわらず、いや、難解な分野だからこそなのか、本来数学とは関係のないコンテンツの中でもたまに話題に挙がることがあります。

    その1つは、この動画。

    このReHacQというチャンネルは、経済や政治やマスメディアなどについての動画を出しているチャンネルなので、数学でもコアな分野である「圏論」をテーマにした動画があるのは驚きでした。
    動画の内容は、数式などは出てこない構成で、圏論の考え方のエッセンスや、圏論がどのような分野に応用されるかの紹介トークと言った感じ。比喩を多く使いながら、一般視聴者でも圏論の何となくのイメージがしやすいような内容でした。

    もう1つは、ゆる言語学ラジオのこの動画。

    「おもしろ単語」としてドイツ語の群論病(groupenpest)という言葉を紹介。意味は「なんでも群論で説明できると思ってしまうこと」。8:00ごろに出演者堀元氏の「オレ、群論と圏論の違いも分かってないのよ」というコメントがありました。

    ゆる言語学ラジオのパーソナリティの2人が「群論」や「圏論」というワードを聞いたことがある、ということだけでも驚きではあるものの、せっかくならば内容も把握いただきたいと、「ゆる言語学ファン」かつ「数学ファン」の自分としては切に願うところです。

    今回は、ReHacQやゆる言語学ラジオの一般視聴者のような、いわゆる「文系」の方々にも、より具体的な圏論のイメージをもっていただけるように説明することにチャレンジする記事となっております。

    「圏論」はレベルの高い数学

    圏論は、数学の中でも「抽象代数学」というジャンルに分類されています。抽象代数学は、すごくざっくりと言うと、下記のような順番で学ぶことが多いように思われます。

    1. 集合論:「集まり」の理論

    2. 位相空間論:「近さ」がある集合論

    3. 線形代数学:ベクトルのすごいやつ

    4. 群論:足し算と引き算ができる集合の話

    5. 環論:掛け算できる集合の話

    6. 体論:割り算できる集合の話

    7. 圏論

    大学の数学の中では、群論まではある程度基本的な分野なので、数学科の学生で群論を理解していない人はいません。群論を理解してない数学科の学生は卒業が危ういと思われます。

    一方、圏論はかなりレベルが高い分野なので、圏論を学ばないで大学を卒業することは十分ありえます。私がそうでした。「群論」と「圏論」はそのような、かなりのレベルの違いがあります。「群論」は大学数学では初歩的な領域で、「圏論」は発展的な領域です。

    本来であれば、「圏論」を学ぶまでに必要な各領域を、確実に1個ずつ理解しながら学んでいくのが1番いいのですが、それをちゃんとやろうとすると年単位の時間がかかります。この記事では、圏論についてかなりざっくりとした説明だけをしていきたいと思います。

    数学は矢印学だ

    数学では、数に対して何かしらの操作をするということを行います。

    1+2=31+2=3

    上の数式は、1という数に2を足して3にするということを表しています。矢印で表すとこんな感じになります。

    1→+231\xrightarrow{+2}3

    「何かしらの数に何かしらの操作をして別の数にする」というのが、あらゆる計算(加減乗除、累乗、平方根、階乗など)で行っている本質的なところです。

    数学では数についてだけではなく、関数に対してや、ベクトルに対しても色々な操作を行います。

    x+1→全体を2乗x2+2x+1x+1\xrightarrow{全体を2乗}x^2+2x+1

    AB→  →BC→を合成 AC→\overrightarrow{\mathrm{AB}}   \xrightarrow{\overrightarrow{\mathrm{BC}}を合成}  \overrightarrow{\mathrm{AC}}


    数学は「何かに何かの操作をして別の何かにする」ということを何度も何度も行うということが本質的な部分です。この「何かに何かの操作をして何かにする」という部分だけを取り扱って研究してみよう、という理論が「圏論」という分野になります。

    圏の定義

    圏論はまず「圏とは何か」ということを定義することから始まります。圏は「対象」と「射」というものから構成されます。射は対象と対象をつなぐ矢印です。

    対象 →射対象対象  \xrightarrow{射} 対象

    この対象と射の関係が「何かに何かの操作をして別の何かにする」を表しています。「何か」は数でも関数でもベクトルでも構いません。「何かの操作」はどんな種類の計算でも合成でも構いません。ありとあらゆる操作を一般的に検討するために、圏の定義は抽象的なものになっています。

    ただ、これだけだとあまりにもフリーダムすぎて研究する部分がなくなってしまうので、圏には守らなければいけない制約事項が3つだけあります。このたった3つの制約事項を色々と適応することにより、圏論はとても多くの発展的な成果を生み出しています。3つの制約事項を順番に見ていきましょう。

    制約1:何もしないという射がある

    射の1種として「何もしないでもとの対象と同じものになる」という射がなければいけません。これを恒等射といいます。0を足したり、1を掛けたりという操作が恒等射に該当します。関数でいうと「y=x」が恒等射になります。ベクトルでいうとゼロベクトルを足す操作が恒等射に該当します。

    a →+0 aa  \xrightarrow{+0}  a
    x →×1 xx  \xrightarrow{×1}  x
    関数 →y=xを合成 もとの関数関数  \xrightarrow{y=xを合成}  もとの関数
    AB→  →0→を合成  AB→\overrightarrow{\mathrm{AB}}   \xrightarrow{\overrightarrow{\mathrm{0}}を合成}   \overrightarrow{\mathrm{AB}}

    制約2:射は合成できる

    ある対象に向かう射と、その対象から伸びる射がある時、この2つの射は必ず合成できて、1つの射にできなければなりません。
    足し算の例で言うと、「2つの数を足すという操作を別々に1回ずつ足すことすることできるし、一度にまとめて足すこともできる」ということを意味します。

    1→+23→+471 \xrightarrow{+2}3\xrightarrow{+4}7

    1→まとめて一度に足す+(2+4)71 \xrightarrow[まとめて一度に足す]{+(2+4)} 7

    「関数と関数を合成して関数を作ることができる」「ベクトルとベクトルを合成してベクトルを作ることができる」ということも、この「射は合成できる」という制約によって表現することができます。

    x→ff(x)→g(g∘f)(x)x \xrightarrow{f}f(x)\xrightarrow{g}(g \circ f)(x)

    x→合成関数を一度に適応g∘f(g∘f)(x)x \xrightarrow[合成関数を一度に適応]{g \circ f} (g \circ f)(x)

    AB→→BC→を合成AC→→CD→を合成AD→\overrightarrow{\mathrm{AB}} \xrightarrow{\overrightarrow{\mathrm{BC}}を合成}\overrightarrow{\mathrm{AC}}\xrightarrow{\overrightarrow{\mathrm{CD}}を合成}\overrightarrow{\mathrm{AD}}

    AB→→一度に適応BD→(=BC→+CD→)を合成AD→\overrightarrow{\mathrm{AB}} \xrightarrow[一度に適応]{\overrightarrow{\mathrm{BD}}(=\overrightarrow{\mathrm{BC}}+\overrightarrow{\mathrm{CD}})を合成}\overrightarrow{\mathrm{AD}}

    制約3:合成の順番は変えてもいい

    射を3つ合成する際に、合成する順番を変えても結果が同じになる必要があります。このようなルールは結合律と呼ばれるものです。足し算や掛け算は結合律が成り立ちます。関数の合成やベクトルの合成も結合律が成り立ちます。

    1→+23→+47→+5121 \xrightarrow{+2}3\xrightarrow{+4}7 \xrightarrow{+5}12

    1→こちらを先に合成しても+(2+4)7→+5121 \xrightarrow[こちらを先に合成しても]{+(2+4)} 7 \xrightarrow{+5}12

    1→+23→こちらを先に合成しても+(4+5)121 \xrightarrow{+2} 3 \xrightarrow[こちらを先に合成しても]{+(4+5)}12

    1→最終的には同じ+(2+4+5)121 \xrightarrow[最終的には同じ]{+(2+4+5)} 12


    制約事項の3つはどれも当たり前のものだけに絞られているので、足し算、掛け算、関数、ベクトルなど、数学のほとんどの分野の操作を圏として扱うことができます。そのため、圏論の研究結果はかなり応用範囲が広いものとなっています。

    次回予告

    長くなってしまったので今回の記事はここまでとしますが、まだまだ書きたい内容はたくさんあるので、今後も複数の記事を書いていきたいと思います。次回以降で書きたい内容を予告しておきます。

    対象と対象をつなぐものが射であり、圏は対象と射で構成されていることはこの記事でご説明しました。

    圏 対象→射対象圏  \boxed{対象 \xrightarrow{射} 対象}

    実は圏と圏の間にも矢印を引くことができます。それを「関手」といいます。

    圏 ・→射・→関手圏 ・→射・圏  \boxed{・\xrightarrow{射}・} \xrightarrow{関手} 圏  \boxed{・ \xrightarrow{射}・}

    さらにさらに、関手と関手の間にも矢印を引くことができます。それを「自然変換」といいます。

    関手 圏 →射→圏 →射  ⇓自然変換 関手 圏 →射→圏 →射関手  \boxed{圏  \boxed{\xrightarrow{射}} \xrightarrow{ } 圏  \boxed{\xrightarrow{射}}} \\  \\  \Downarrow 自然変換\\  \\ 関手  \boxed{圏  \boxed{\xrightarrow{射}} \xrightarrow{ } 圏  \boxed{\xrightarrow{射}}}

    こうなってくると、これをどこまで続けるのか、つまり「自然変換と自然変換の間の矢印は何という名前なのか?」ということが気になってくるところです。しかし、自然変換と自然変換の間の矢印には名前がついていません。

    それ以上のことになってきても、圏・関手・自然変換だけの理論で応用できることが分かっています。この辺りは圏論の分野のかなり巧みな理論構築による工夫が面白いところです。次回以降の記事のどこかでは、その辺りをご説明したいと思っています。

    おしまい。


    Appendix(数学に詳しい人向けの補足)

    この記事で例としている足し算の例は、圏論の説明としてはあまり見ないものですが、「自然数全体を順序集合として≦を射とした際に、その射を『自然数の加算』とみなす」という設定としています。一般的には圏論の初等的な例としては「集合の圏」が事例として1番使われていると思いますが、その例で説明しようとすると集合論の話題に触れないとダメそうなので、集合論の知識を前提とはしないこの記事では採用しませんでした。この例での解説が、数学を専門としていない人たちに対しての説明としては使いやすいと思うので、今後もこの例で進めていきたいと思います。

    この記事が参加している募集

    あなたへのおすすめ