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

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

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

参照用 記事

しりとり圏の自己同型関手と直積の非存在

「お節介ですまんけど、できないものはできん」に、[1..100]>>=penさんからコメントをいただきました。

しりとり圏はすべてのひらがなについて対称。(対象と射に現れるすべての「あ」と「い」を入れ換えても圏の構造が変わらない的な意味で)
'あ'と'い'の直積が'あ'と'い'以外、例えば'う'だったとする。対称性から'う'は'え'でもいいはず。
直積の一意性から'う'と'え'はisoであるはず。でも話題になっていたように'う'と'え'はisoではなかった。
'あ'と'い'の直積が'あ'だったとする。「あ」と「い」の対称性から直積は'い'でもいいはず。直積の一意性から... 以下略。

これは面白い発想だし、しりとりの圏に対して定義される関手の説明に適切な素材でもあるので、少し詳しく説明します。

自己同型関手

しりとりの圏HShiriは、対象が文字、射は文字列だとします(オリジナルの定義)。

[1..100]>>=penさんが、「しりとり圏は対称」と言っているのは、HShiriからHShiriへの可逆な関手(それを自己同型関手と呼びます)がタクサンあるということです。圏に限らず、自分自身への可逆変換をタクサン持つような構造は対称性が高いことになります。

具体的な自己同型関手を構成しましょう。a, b∈|HShiri|、つまり、aとbはひらがな文字だとします。写像(普通の写像です) Ta,b:|HShiri|→|HShiri| を次のように定義します*1

  • Ta,b(a) = b
  • Ta,b(b) = a
  • Ta,b(x) = x (xがaでもbでもないとき)

ここで、「a」、「b」は、「アルファベットの最初の小文字、二番目の小文字そのもの」ではなくて、ひらがな文字を表す変数ですから気を付けてください。変数aやbは、'あ' とか 'き' とかの具体的値を取ることになります。

明らかに、Ta,b = Tb,a、Ta,b;Tb,a = Id (Idは|HShiri|の恒等写像)、つまりTa,bは可逆です。Ta,a = Id ですが、a≠b のときは Ta,b は恒等写像ではありません。

HShiriの射、つまり文字列の集合を圏全体と同じ記号HShiriで表すとして、T'a,b:HShiri→HShiri も定義します。通常、T'a,b も Ta,b と書くのですが、混乱をさけるために、既に定義した Ta,b と新しく定義する T'a,b を区別します。

文字x(xは変数)だけからなる文字列を unit(x)、文字xと文字列sの結合を cons(x, s) と書くことにします。

  • T'a,b(unit(a)) = unit(b)
  • T'a,b(unit(b)) = unit(a)
  • T'a,b(unit(x)) = unnit(x) (xがaでもbでもないとき)
  • T'a,b(cons(x, s)) = cons(Ta,b(x), T'a,b(s))

要するに、T'a,b は文字列への置換作用 s/a/b/g だと思ってください。[追記]←と書いたけど、これはウソだね。Ta,bは、s/a/b/g と s/b/a/g を逐次じゃなくて同時に行うような置換。とはいっても、Ta,bは集合に働くので、列に逐次的に働く s/a/b/g を引き合いに出した時点で不適切な説明になってしまってます。ごめんなさい。[/追記]

Ta,b と T'a,b の組が関手であることを示すには次を確認します。

  1. Ta,b(dom(s)) = dom(T'a,b(s))
  2. Ta,b(cod(s)) = cod(T'a,b(s))
  3. T'a,b(id(x)) = id(Ta,b(x))
  4. T'a,b(s;t)) = T'a,b(s);T'a,b(t)

ほとんど自明でしょう(でも納得いくまで考えてください)。

これから先では、Ta,bとT'a,bの区別はやめて、対象に対しても射に対してもTa,bを使うことにします。

骨格的な圏

しりとりの圏の特徴的な性質として、骨格的(skeletal)であることがあります。
http://ncatlab.org/nlab/show/skeleton から引用すると;

A category is skeletal if objects that are isomorphic are necessarily equal.



同型な対象が常に同一になるような圏は、骨格的であるという。

要するに、同型から同一を結論していいということです。骨格については、http://en.wikipedia.org/wiki/Skeleton_%28category_theory%29 にも記述があります。

しりとりの圏では、異なる対象(異なるひらがな文字)のあいだに同型射を作れないので、結果的に同型なら同一、つまり骨格的な圏です。骨格的な圏では、同型を使った弱い等式を厳密な等式だと解釈していいわけです。例えば、直積 a×b と b×a は同型ですが、骨格的圏では a×b = b×a が厳密に成立します。

自己同型関手で直積が保存される

F:HShiri→HShir を可逆な関手とします。つまり、G:HShiri→HShir があって、

  • F;G = Id
  • G;F = Id

となっているとします。HShiriの直積がもしあるなら、F(a×b) = F(a)×F(b) となります。aとbの直積を定義する図式をFで写すと、F(a)とF(b)の直積を定義する図式になるからです。Fは可逆(自己同型を与える関手)だったので、もとの図式とFで写された図式は事実上同じ図式です。

a×b はどんな対象か

ここから、[1..100]>>=penさんの議論を追いかけます。

HShiriに直積があると仮定して、a×b = x と置きます。さらに、xはaともbとも異なると仮定して、a, b, xと異なるyを選んでおきます。HShiriは4つ以上の対象を持つので、このようなyを選べます。

a×b = x の両辺に Tx,y を作用させると、

  • Tx,y(a×b) = Tx,y(x)

Tx,y(a×b) = Tx,y(a)×Tx,y(b) ですが、a, b, x, yはすべて異なるので、Tx,yの定義から

  • Tx,y(a)×Tx,y(b) = a×b = x

Tx,y(x) = y と組み合わせると、

  • x = y

これは最初の仮定 x ≠ y と矛盾します。よって「xはaともbとも異なる」という仮定が否定されました。

残る可能性は「xはaと等しいかbと等しい」、つまり

  • a×b = a
  • a×b = b

のいずれかが成り立つはずです。a×b = a だとすれば、b×a = b。直積の可換性 a×b = b×a を使えば、a = b 。これだと、aとbが異なるとき(例えば、a='あ'、b='い')は矛盾します。a×b = b を採用しても同じ矛盾に導かれます。

結局、大前提であったところの「HShiriに直積があると仮定して」が実は成立しないことになります。

しりとりの圏はまるっこい

球はとても対称性が高い図形です。その球と同じように、しりとりの圏もどこから見ても同じように見えます。特別な対象や射が存在しません。例えば、終対象や始対象は突出して特徴的な対象ですが、どの対象も公平であるしりとり圏では、そんな対象は存在しません。

終対象/始対象は極限/余極限の特別な場合ですが、しりとりの圏のようにまるっこくて等質だと、極限/余極限は作りにくいようです。「まるっこい感じ」を正確に表現できれば、一般論ができるのかも知れませんが、僕にはサッパリ一般論の見当が付きません。

[追記]
id:hirataraさんのコメントにこの追記でお応えします。

hiratara

a = b だから矛盾と言うのは早いのではないでしょうか? この段階だと例えば、「あ×あ」が存在してそれが「あ」である可能性が残っているように思えました。
で、この可能性を潰そうとちょっと考えてみたのですが、対称性だけからうまく言える方法は思い浮かびませんでした。

m-hiyama

> a = b だから矛盾と言うのは早いのではないでしょうか?
「んんん? なんで??」と思ったのですが、おおもとの前提が違っているせいかもしれませんね。後でまた書きます。

まず「おおもとの前提が違っている」という点ですが; 僕は(おそらくは、[1..100]>>=penさんも)、しりとりの圏全体で一貫して定義された直積の存在/非存在を問題にしていました。つまり、「任意の対象a, bに対して a×b が存在するか?」という問題です。この問題設定だと、a='あ'、b='い' のときに a×b = 'あ'×'い' が存在しなければ、直積は存在しない(うまく定義できない)という結論でオシマイです。

一方、hirataraさんは、なにか特殊なa, bをうまく選べば、その選んだa, bに対しては a×b があるのではないか? という問題意識です。圏全体に渡って直積が定義されなくても、直積定義可能なペアが1つでもあるなら「直積が存在する」とみなす立場です。

結果的には、どんなペアを選んでも直積は作れません。

「あ×あ」が存在してそれが「あ」である可能性が残っているように思えました。

ここから先の議論をしておきます。

'あ'×'あ' = 'あ' だとすると、第一射影p:'あ'→'あ'、第二射影q:'あ'→'あ' があって、任意のf, g:x→あ に対して次の図式が可換です。横向きの矢印はデカルトペアリング <f, g> です。


'あ'
f / ↑p
x --→'あ'
g \ ↓q
'あ'
ここで x='あ', f=g="あ"(fもgも'あ'の恒等射)と取ってみると、<f, g>;p = "あ" なので、<f, g> = "あ", p = "あ"(これ以外の組合せはあり得ない)。同様に、q = "あ"。これで、2つの射影が共に恒等射:'あ'→'あ' であることがわかりました。

今度は f="あじあ", g="あんだるしあ" にしてみると、「p=q=恒等射」と上の可換図式から "あじあ" = "あんだるしあ" が出てきてしまうんだけど、そんなことはないので「'あ'×'あ' = 'あ'」はウソでした。

この可能性を潰そうとちょっと考えてみたのですが、対称性だけからうまく言える方法は思い浮かびませんでした。

直積の話なので、直積の性質をなにも使わないで云々は、さすがに無理です。

[/追記]

*1:Tはtranspositionから。