このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

行列の圏のなかでモノイドを探す

今回もまた、セミナーへの補足を意図してますが、行列計算と圏の定義くらい知っていれば分かる話を書きます。(なので、このブログ。)最後の節は分からない話かも知れませんが、気にしないでください。

前回の記事で、集合圏のなかでは、すべての対象(集合)に対して一意的にコモノイド構造が決まることを示しました。行列の圏でも似た状況が生じます。ただし、コモノイドではなくてモノイドです*1。行列の圏のすべての対象(自然数)に対して一意的にモノイド構造が決まるのです。

内容:

行列の圏とそのなかの構造

最初にセミナー参加者の皆さん向けのご注意と訂正事項です。

  1. 例として扱う対象(自然数)は、3ではなくて2にします。
  2. 行列の表示(書き方)として、通常の四角く数を並べる形を使います。各自で、二部有向グラフで行列を描く方法と対比すれば、より理解が深まるでしょう。
  3. 「行列の係数を、ブール半環 B から取らないとウマくいかない」は間違いでした。僕が、別な事例と混同してました。係数は半環(一例:自然数半環)なら何でもいいです。

さて、行列の圏とは次のような圏でした。(「はじめての圏論 その第2歩:行列の圏」参照。)

  1. 対象は自然数
  2. 射は行列
  3. 行列(射) A に対して dom(A) = (Aの列数〈幅〉)
  4. 行列(射) A に対して cod(A) = (Aの行数〈高さ〉)
  5. 自然数(対象) n に対して id(n) = idn = (n×n の単位行列)
  6. 行列(射) A と行列(射) B に対して、comp(A, B) = A;B = BA (行列の掛け算、順序は逆

行列の圏も圏なので、そのなかに居るモノイドを考えることができます。単に「モノイド」というと、集合圏内のモノイド(通常の、一番普通のモノイド)を想定する人がいるので、モノイド構造とかモノイド対象と呼ぶことにしましょうか。

圏は、それ自体が構造ですが、そのなかに構造をホストする(住まわせる)環境・世界として機能することがあります。環境・世界として使われる典型的な圏が集合圏です。通常のモノイドは、集合圏のなかに住んでいる構造です。

集合圏以外でも、構造をホストすることができます。行列の圏もまた、環境・世界として機能します。集合圏のなかの構造が集合(対象)と写像(射)からできていたのと同様に、行列の圏のなかの構造は自然数(対象)と行列(射)からできています。

モノイド構造

考える構造はモノイド構造なので、今回もラフなストリング図から始めます。

このストリング図の形状にラベルを追加し、アスキーテキストで書く方法は前回説明しました。集合圏の対象と射でラベルすれば、お馴染みの(普通の)モノイドですね。前回の図を以下にコピーします。

  1. Aは集合。
  2. Iは単元集合。太字の1を使わないのはアスキーテキストだけで書きたいから。Iの唯一の要素は何でもいいけど、今ここでは I = {0} とする。
  3. mはモノイドの乗法 m:A×A→A 。
  4. eはモノイドの単位 e:I→A 。
結合法則
  A  A     A        A     A  A
 ------m  ---      ---   -----m
   A       A    =   A      A
  ----------m      ----------m
      A                A

左単位法則
        A        A
       ---      ---
  I     A        A
 ---e  ---  =   ---
  A     A        A
 --------m      ---
    A            A

右単位法則
  A              A
 ---            ---
  A    I         A
 ---  ---e  =   ---
  A    A         A
 --------m      ---
    A            A

アスキーアート・ストリング図の等式を、テキストで書けば次のようです*2

  • 結合法則: (m×idA);m = (idA×m);m
  • 左単位法則: (e×idA);m = idA
  • 右単位法則: (idA×e);m = idA

同じ形状の図に、違うラベルを付けます。次の表に基づきラベルを置き換えます。

集合圏 行列の圏
集合 A 自然数 n
特別な集合 I 特別な自然数 0
写像 m 行列 S
写像 e 行列 Z
直積 × 対角ブロック和 \oplus

行列の対角ブロック和 A\oplusB は、次のように定義されます。


A \oplus B := \begin{bmatrix}A & O \\ O & B \end{bmatrix}

左上にA、右下にBを置いて、残りの部分は全部ゼロ(Oと書いてある)で埋めます。

では、ラベルを置き換えたアスキーアート・ストリング図。

結合法則
  n  n     n        n     n  n
 ------S  ---      ---   -----S
   n       n    =   n      n
  ----------S      ----------S
      n                n

左単位法則
        n        n
       ---      ---
  0     n        n
 ---Z  ---  =   ---
  n     n        n
 --------S      ---
    n            n

右単位法則
  n              n
 ---            ---
  n    0         n
 ---  ---Z  =   ---
  n    n         n
 --------S      ---
    n            n

等式をテキストで書き下せば*3

  • 結合法則: (S\oplusidn);S = (idn\oplusS);S
  • 左単位法則: (Z\oplusidn);S = idn
  • 右単位法則: (idn\oplusZ);S = idn

n×n の単位行列を In と書くことにして、idn の代わりに In を使いましょう*4。行列の掛け算を「・」で表すと、図式順結合記号「;」とは左右が逆になるので入れ替えます。上下左右の変化が苦手ならトレーニングしてね。

  • 結合法則: S・(S\oplusIn) = S・(In\oplusS)
  • 左単位法則: S・(Z\oplusIn) = In
  • 右単位法則: S・(idn\oplusZ) = In

特に、対象 2 を台対象〈underlying object〉とするモノイド構造ならば、

  • 結合法則: S・(S\oplusI2) = S・(I2\oplusS)
  • 左単位法則: S・(Z\oplusI2) = I2
  • 右単位法則: S・(id2\oplusZ) = I2

対象 2 の上のモノイド構造は (2, S, Z) と書きます。これは、集合圏において、R 上のモノイド構造を (R, ×, 1) などと書くのと同じ書き方です。実数の集合 R が集合圏の対象であったのと同じく、自然数 2 は行列の圏の対象であり、その上にモノイド構造が載るのは変なことではありません。モノイド構造が住む環境・世界が行列の圏に変わるだけです。

圏のモノイド積/単位対象

集合と自然数は違うし、写像と行列も違います。が、その違いに拘る/縛られるのではなくて、役割や機能の類似性/共通性のほうに注目します。そういう見方をすると、集合圏も行列の圏も、どちらもモノイド圏なので共通性を持ちます。

モノイド圏とは、モノイド積/単位対象を持つ圏です。内部にモノイド構造をホストする圏では、環境としての圏の側にもモノイド積/単位対象が必要なのです。

一般論 集合圏 行列の圏
モノイド積 直積 × 対角ブロック和 \oplus
対象 集合 A, B 自然数 n, m
写像 f:A→B, g:C→D 行列 A:n→m, B:k→ℓ
対象のモノイド積 集合の直積 A×B 自然数の和 n + m
射のモノイド積 写像の直積 f×g:A×C→B×D 行列の対角ブロック和 A\oplusB:n+k→m+ℓ
単位対象 単元集合 I ゼロ 0

この表で、文字 'A', 'B' が場所により違う意味で使われていますが、違う世界(環境となる圏)なので、同じ文字が別な意味で使われてもいいでしょう。(用語・記号のコンフリクトとオーバーロードは茶飯事。)なお、記号を揃えるために、n + m を n\oplusm とも書きます。

環境となる圏にモノイド積があるからこそ、モノイド乗法やモノイド単位のプロファイル(域と余域の指定)を書けるのです。

一般論 集合圏 行列の圏 備考
モノイド乗法のプロファイル A×A→A n\oplusn→n ×, \oplus がモノイド積
モノイド単位のプロファイル I→A 0→n I, 0 が単位対象

モノイド乗法とモノイド単位を持つモノイド構造は、モノイド積と単位対象を持つモノイド圏のなかでだけ生息可能なのです。標語にすれば:

  • モノイド構造はモノイド構造のなかに居る

一番目の「モノイド構造」は、圏の対象に載るモノイド構造で、二番目の「モノイド構造」は、その対象が所属する環境・世界としての圏が持つモノイド構造です*5

幅がゼロの行列

行列圏内のモノイド構造を扱うとき、通常お目にかからないシロモノとして、幅(列数)や高さ(行数)がゼロの行列が出てきます。次のような疑問がわくでしょう。

  1. 幅や高さがゼロの行列って、それなに?
  2. 成分がゼロだけのゼロ行列とは違うの?
  3. どうやって計算するの?

今ここでは、これらの疑問に答える説明はしません。今回出てくるのは、幅ゼロの行列 Z だけです。 とりあえずは、幅ゼロの行列 Z と単位行列 I2 の対角ブロック和 Z\oplusI2, I2\oplusZ が作れればいいのです。

Zが幅1・高さ2の行列だとして、2×2の単位行列とブロック和すると:


Z\oplus I_2 =
\begin{bmatrix}
Z_1 \\
Z_2
\end{bmatrix}
\oplus
\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
= 
\begin{bmatrix}
Z_1 & 0 & 0 \\
Z_2 & 0 & 0 \\
0   & 1 & 0 \\
0   & 0 & 1
\end{bmatrix}

Zが幅0・高さ2の行列だとすれば、次のようになるとしてよいでしょう。


Z\oplus I_2 =
\begin{bmatrix}
 \\
 \\
\end{bmatrix}
\oplus
\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
= 
\begin{bmatrix}
 0 & 0 \\
 0 & 0 \\
 1 & 0 \\
 0 & 1
\end{bmatrix}

同様に、


I_2\oplus Z =

\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
\oplus
\begin{bmatrix}
 \\
 \\
\end{bmatrix}
= 
\begin{bmatrix}
 1 & 0 \\
 0 & 1 \\
 0 & 0 \\
 0 & 0
\end{bmatrix}

以下、この計算法を使います。

行列の圏のなかのモノイド構造

対象 2 を台対象とするモノイド構造 (2, S, Z) は次の法則で規定されます。

  • 結合法則: S・(S\oplusI2) = S・(I2\oplusS)
  • 左単位法則: S・(Z\oplusI2) = I2
  • 右単位法則: S・(id2\oplusZ) = I2

これらの等式を成分を使って書き下します。


S\cdot(S \oplus I_2) = S\cdot (I_2 \oplus S) \\
\:\\
\begin{bmatrix}
S_{1, 1} & S_{1, 2} & S_{1, 3} & S_{1, 4} \\
S_{2, 1} & S_{2, 2} & S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
\cdot
\begin{bmatrix}
S_{1, 1} & S_{1, 2} & S_{1, 3} & S_{1, 4} & 0 & 0 \\
S_{2, 1} & S_{2, 2} & S_{1, 3} & S_{1, 4} & 0 & 0 \\
0       & 0       & 0       & 0       &1 & 0 \\
0       & 0       & 0       & 0       &0 & 1 \\
\end{bmatrix} \\
= \\
\begin{bmatrix}
S_{1, 1} & S_{1, 2} & S_{1, 3} & S_{1, 4} \\
S_{2, 1} & S_{2, 2} & S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
\cdot
\begin{bmatrix}
1       & 0       & 0       & 0       & 0 & 0 \\
0       & 1       & 0       & 0       & 0 & 0 \\
0 & 0 & S_{1, 1} & S_{1, 2} & S_{1, 3} & S_{1, 4} \\
0 & 0 & S_{2, 1} & S_{2, 2} & S_{1, 3} & S_{1, 4} \\
\end{bmatrix} \\
\,\\
\,\\
%
%
% 左単位法則
S\cdot(Z \oplus I_2) = I_2 \\
\begin{bmatrix}
S_{1, 1} & S_{1, 2}  & S_{1, 3} & S_{1, 4} \\
S_{2, 1} & S_{2, 2}  & S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
\cdot
\begin{bmatrix}
0 & 0  \\
0 & 0 \\
1 & 0 \\
0 & 1 \\
\end{bmatrix}
=
\begin{bmatrix}
1 & 0 \\
0 & 1 \\
\end{bmatrix} \\
\,\\
\,\\
%
%
% 右単位法則
S\cdot(I_2 \oplus Z) = I_2 \\
\begin{bmatrix}
S_{1, 1} & S_{1, 2}  & S_{1, 3} & S_{1, 4} \\
S_{2, 1} & S_{2, 2}  & S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
\cdot
\begin{bmatrix}
1 & 0  \\
0 & 1 \\
0 & 0 \\
0 & 0 \\
\end{bmatrix}
=
\begin{bmatrix}
1 & 0 \\
0 & 1 \\
\end{bmatrix}

左単位法則と右単位法則の左辺の掛け算を実行します。


\begin{bmatrix}
 S_{1, 3} & S_{1, 4} \\
 S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
=
\begin{bmatrix}
1 & 0 \\
0 & 1 \\
\end{bmatrix} \\
\,\\
\,\\
%
%
%
\begin{bmatrix}
 S_{1, 1} & S_{1, 2} \\
 S_{2, 1} & S_{2, 2} \\
\end{bmatrix}
=
\begin{bmatrix}
1 & 0 \\
0 & 1 \\
\end{bmatrix} \\

これより、Sは完全に決定されます。


S = 
\begin{bmatrix}
S_{1, 1} & S_{1, 2}  & S_{1, 3} & S_{1, 4} \\
S_{2, 1} & S_{2, 2}  & S_{2, 3} & S_{2, 4} \\
\end{bmatrix}
=
\begin{bmatrix}
1 & 0 & 1 & 0 \\
0 & 1 & 0 & 1 \\
\end{bmatrix}

このSが結合法則も満たすこともすぐに確認できます。S = [I2 I2] と置いて、ブロックのまま計算しましょう。O はゼロだけが並んだ行列とします。


\:\:\:\: \mbox{Left Hand Side} \\
=
\begin{bmatrix}
I_2 & I_2 \\
\end{bmatrix}
\cdot
\begin{bmatrix}
I_2 & I_2 & O \\
O   &  O  & I_2 
\end{bmatrix} \\
=
\begin{bmatrix}
I_2\cdot I_2 & I_2\cdot I_2 & I_2\cdot I_2 \\
\end{bmatrix} \\
=
\begin{bmatrix}
I_2 & I_2 & I_2 \\
\end{bmatrix} \\
\,\\
\,\\
%
% 右辺
% 
\:\:\:\: \mbox{Right Hand Side} \\
=
\begin{bmatrix}
I_2 & I_2 \\
\end{bmatrix}
\cdot
\begin{bmatrix}
I_2 & O   & O \\
O   & I_2 & I_2 
\end{bmatrix} \\
=
\begin{bmatrix}
I_2\cdot I_2 & I_2\cdot I_2 & I_2\cdot I_2 \\
\end{bmatrix} \\
=
\begin{bmatrix}
I_2 & I_2 & I_2 \\
\end{bmatrix} \\

ここまでの議論は、対象 2 に特有なものではないので、一般に、対象 n に対するモノイド乗法を Sn、モノイド単位を Zn とすると、

  • Sn は、単位行列 In を横に2つ並べた行列
  • Zn は、幅(列数)が0で高さ(行数)がnの行列

これで、行列の圏内のモノイド構造をすべて決定できました。それらは、(n, Sn, Zn) です。

モノイド構造が自然変換で与えられること

前回記事と今回記事の結果は類似しています。

  1. 前回: 集合圏では、すべての対象 A に対して、コモノイド構造 (A, ΔA, !A) が一意的に決まる。
  2. 今回: 行列の圏では、すべての対象 n に対して、モノイド構造 (n, Sn, Zn) が一意的に決まる。

集合圏の場合、A  \mapsto ΔA, A \mapsto !A という割り当ては自然変換になりました。行列の圏でも、n  \mapsto Sn, n \mapsto Zn という割り当ては自然変換になります。行列の圏をMatと書くことして、次の関手を準備します。

  1. Id:MatMat : Id(n) := n, Id(A:n→m) := (A:n→m)
  2. D:MatMat : D(n) := n\oplusn, D(A:n→m) := (A\oplusA:n\oplusn→m\oplusm)
  3. K:MatMat : K(n) := 0, K(A:n→m) := (id0:0→0) (id0 は、幅が0、高さも0の行列)

この設定のもとで、S = (Sn:Id(n)→D(n) | n∈Obj(Mat)) と Z = (Zn:Id(n)→K(n) | n∈Obj(Mat)) は、次のような自然変換であることは容易に確認できます。

  • S::Id⇒D:MatMat
  • Z::Id⇒K:MatMat

事情は、集合圏の場合(前回)とまったく同じなので真似てやってみてください。

そしてそれから

最後に、この記事では説明してない概念・用語を遠慮なく使って、“集合圏と行列の圏の共通性”の背後にあるビッグピクチャーを紹介しましょう。スキップしても、「フーン」と眺めるだけでもかまいません。

ここで出てくる重要な概念・用語は次の2つです。

  1. 関手の随伴対〈adjoint pair of functors〉(随伴系〈adjoint system〉でも同じ)
  2. 反対圏〈opposite category〉

随伴対/随伴系に関しては次の記事で書いています。

反対圏は簡単な概念ですが、「簡単すぎて難しい」かも知れません。

他に、次の記号を使います。

  1. I(太字のアイ)を、単一の対象と恒等射だけからなる(特定された)自明圏だとします。一方、I(太くないアイ)は、圏Cの内部にある単位対象または終対象の意味です。
  2. ΔC(太字のΔ)を、圏Cから直積圏C×Cへの対角関手とします。一方、ΔA(太くないデルタ)は、圏C内部にある対角射(Aは対象)の意味です。
  3. KC(太字のケー)を、圏Cから自明圏Iへの唯一の関手とします。一方、KA(太くないケー)は、圏C内部にある終射(Aは対象)の意味です。終射〈terminal morphism〉は終対象への唯一の射です。終射は !A とも書かれます。

さて、デカルト圏〈Cartesian category〉の定義には幾つかの方法がありますが、直積がモノイド積で与えられるデカルト圏(デカルト・モノイド圏〈Cartesian monoidal category〉)には、次のような定義があります。

Cデカルト・モノイド圏(単に「デカルト圏」と言う場合が多い)だとは、

  1. KC:CI が、右随伴関手(随伴対の右相方)JC:IC を持つ。
  2. ΔC:CC×C が、右随伴関手 PC:IC×C を持つ。

このスタイルのデカルト圏の定義については、次の記事で触れています。

随伴系の書き方」に従って随伴系(関手の随伴対)を書いてみると:

  1. (K, ι): KC -| JC :IC
  2. (Δ, ε): ΔC -| PC :C×CC

ここで、

  1. 自然変換 K::IdCKC*JC:CC は、一番目の随伴系の単位。(アスタリスク '*' は、関手の図式順結合記号)
  2. 自然変換 ι〈小文字イオタ〉::JC*KC⇒IdI:II は、一番目の随伴系の余単位。
  3. 自然変換 Δ::IdCΔC*PC:CC は、ニ番目の随伴系の単位。
  4. 自然変換 ε::PC*ΔC⇒IdC×C:C×CC×C は、ニ番目の随伴系の余単位。

この状況で:

  1. 関手 JC:IC は、Cの単位対象兼終対象 I をポインティングする関手になる。
  2. 関手 PC:C×C は、Cのモノイド積になる。
  3. 自然変換 K::IdCKC*JC:CC は、C内の対象を破棄する(単位対象(終対象でもある)に潰す)操作になる。
  4. 自然変換 Δ::IdCΔC*PC:CC は、C内の対象を複製する操作になる。
  5. 対象 A∈|C| ごとに、(A, ΔA, KA) はC内のコモノイド構造になる。

ここで登場した素材(圏、関手、自然変換)達は、お互いにお互いを規定しあう形で緊密に連携しています。

今述べた一般論が、集合圏において実現しています。また、行列の圏の反対圏においても実現しているのです。

一般論 集合圏 行列の圏の反対圏
C Set Matop
JC がポイントする対象 I Setの I 0
モノイド積 PC 直積 × 対角ブロック和 \oplus
随伴の単位 K ! Zop
随伴の単位 Δ Setの Δ Sop
コモノイド構造 (A, ΔA, !A) (n, Sop, Zop)

有り体に言ってしまえば:

  1. 集合圏はデカルト・モノイド圏である。
  2. 行列の圏の反対圏もデカルト・モノイド圏である。
  3. だから、集合圏と行列の圏は、(双対的に)似ているのは当然。

はるか上空から眺めれば〈鳥の視点〉、単にそれだけのことです。しかし、地面を這いつくばって(例えば行列の掛け算を実行して)モソモソ動くこと〈虫の視点〉も大事です。

bird's-eye view
*6

bug's-eye view
*7

*1:[追記]行列の転置により、モノイドとコモノイドは移りあうので、モノイドでもコモノイドでも実は同じです。[/追記]

*2:集合圏では、(A×B)×C = A×(B×C) などは成立せずに、同型関係式 (A×B)×C \cong A×(B×C) しか成立しないので、各法則をイコールで書いているのはサボっている(正確には書いてない)ことになります。

*3:行列の圏では、各法則は正確にイコールで成立します。

*4:集合圏内の特定された単元集合も I だったので、コンフリクトしてしまいました。もちろん、僕の不注意からのコンフリクトです。しかし、文字・記号は有限個しかないので、コンフリクト/オーバーロードを避けるのは実際的には無理です。

*5:モノイド構造が階層構造を持つことになります。これは無限の階層になります。例えば、「マイクロコスモ原理と構造の無限タワー」を参照。

*6:記事: http://nodehabitat.com/home/projects/huadi/
画像: http://nodehabitat.com/home/wp-content/uploads/2013/12/015-view-02.jpg

*7:記事: http://www.flickriver.com/photos/tags/bugseyeview/interesting/
画像: http://farm4.static.flickr.com/3890/14766605448_b16231c586.jpg