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

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

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

参照用 記事

2-豊饒圏

2種類以上の、異なったタイプの“計算”を組み合わせて使いたいとき、ある圏に対して高次の豊饒化を施すことで“組み合わせ”が実現できそうです。

内容:

動機

なんか思い付きを記録するとき、動機を書かないと、後で「なんでこんなこと考えたんだ?」ってなります。なので、きっかけと動機を書きます。

確かマイク・ステイ〈Mike Stay〉(とお仲間達)が、"computational calculus"って言葉を使っていて、「翻訳に困るなー」と思ったことがあります。"computational calculus"は、「コンピュータを使った解析学」という意味もあるようですが、ステイ達は、

  • "computational calculus" vs. "logical calculus"

という文脈で使っています。

論理では、論理式やシーケントを対象とした計算をしますが、これが"logical calculus"です。普通に「論理計算」と訳せばいいですね。それに対して、数の計算や式の計算が"computational calculus"です。「計算計算」じゃ酷いし、意味的に「コンピュータ計算」ではないし…。論理では、数や式(論理式ではない式)を「項」と呼ぶので、「項計算」としておきます。この訳語を使うと:

  • 項計算 vs. 論理計算

項計算も論理計算も、圏論的定式化ができます。が、項計算と論理計算の境界線がよくわからないのです。境界線は恣意的なのかも知れません。そうだとしても、境界線を表現する方法があったほうがいい気がします。

そこで、項計算を行う圏の上に、論理計算を行うレイヤーを豊饒化〈enrichment〉により乗っける、と考えてはどうかな、と思ったのです。

言葉に関する注意

「ほうじょう」の漢字表記には、「豊饒」と「豊穣」があります。稲などが豊かに実るイメージの「豊穣」のほうがふさわしそうですが、行きがかり上「豊饒」を使い続けます。

"enriched category"は「豊饒圏」、"enriching category"は「豊饒化ベース圏」または「豊饒化圏」とします。"V-enriched category"は「V-豊饒圏」です。

1-豊饒圏

豊饒圏の定義を思い出しましょう。豊饒圏を作るための素材は、集合Xとモノイド圏Vです。a, b∈X ごとに、ホム対象〈hom-object | homobject〉 hom(a, b) を対応させる写像

  • hom:X×X→|V|

と、結合を与える射の族

  • For a, b, c∈X,
    γa,b,c:hom(a, b)\otimeshom(b, c)→hom(a, c) in V

があって、結合律、左右の単位律を満たすとき、豊饒圏が定義されます。より詳しくは、次の記事達を参照してください。

豊饒圏の定義をみると、対象は通常の集合を使っています。射の概念は通常の圏論とは違って、ホム対象により置き換えています。対象は次元0の射、普通の射は次元1の射とみなせるので:

  • 次元0の射の概念は、通常の集合論ベースの定義を使う。
  • 次元1の射の概念は、モノイド圏V内のホム対象として定義する。

次元1のところで豊饒化ベース圏Vが登場するので、通常の豊饒化を1-豊饒化〈1-enrichment〉と呼び、作られた豊饒圏は1-豊饒圏〈1-enriched category〉としましょう。あえて「1-」を付けたのは、「2-」とか「n-」を考える心づもりがあるからです。

2-豊饒圏

n-豊饒圏〈n-enriched category〉は、ある種のn-圏ですが、

  • 次元(n - 1)以下の射の概念は、通常の集合論ベースの定義を使う。
  • 次元nの射の概念は、モノイド圏V内のn-ホム対象として定義する。

任意のnに対する一般論は難しいので、n = 2 に限定します。つまり、次のような2-豊饒圏〈2-enriched category〉を扱います。

  • 次元1以下の射の概念は、通常の集合論ベースの定義を使う。
  • 次元2の射の概念は、モノイド圏V内の2-ホム対象として定義する。

Cを通常の圏〈ordinary category〉として、0-射(=対象)と1-射(=射)の概念は通常どおりとして、2-射の集合=2-ホムセットの代わりに、2-ホム対象〈2-homobject〉を考えます。2-射の結合に相当する概念も必要です。2-射の結合は縦結合と横結合の二種類があるので、2-ホム対象上の結合演算も二種類になります。

定義のために、言葉の準備をしましょう。f, g∈Mor(C) に対して、

  • fとgが共端 ⇔ dom(f) = dom(g) かつ cod(f) = cod(g)
  • fとgが(この順で)隣接cod(f) = dom(g)

共端は"parallel"〈平行〉といいますが、意訳してます。

Vはモノイド圏で、毎度の記号の乱用で V = (V, \otimes, I, α, λ, ρ) とします。このVが豊饒化ベース圏です。2-豊饒化〈2-enrichment〉(=2-豊饒圏の構成)の際に、結合律子α、左単位律子λ、右単位律子ρも考慮する必要があります。面倒なら、Vを厳密モノイド圏だとしてもかまいません。

さて、2-ホム対象 2-hom は、Mor(C)×Mor(C) から |V| への写像ですが、全域的には定義できません。共端な f, g に対してだけ 2-hom(f, g)∈|V| が定義されます。

  • 2-hom : {(f, g)∈Mor(C)×Mor(C)| fとgは共端} → |V|

fとgの共通のdom/codを A, B として、2-hom(f, g) = 2-hom(f, g:A, B) のように書くこともあります。

2-hom(f, g)が集合とは限らないので、2-hom(f, g)の要素という概念はないかも知れません。したがって、モノ(集合の要素)としての2-射という概念も保証はされません。ハッキリと在るのは、2-射ではなくて2-ホム対象だけです。この点は、通常の2-圏とは異なります。

2-ホム対象が定義されただけでは2-豊饒圏にはなりません。縦結合に相当するβと、横結合に相当するγが必要です。βもγも、Cの射でインデックスされたVの射の族です。ここでは、Cの図式順結合を'*'で書きます。

  • βf,g,h:2-hom(f, g)\otimes2-hom(g, h)→2-hom(f, h) in V
  • γf,g,h,k:2-hom(f, g)\otimes2-hom(h, k)→2-hom(f*h, g*k) in V

Cの射の両端(domとcod)も書いたほうが分かりやいかも知れません。

  • βf,g,h:2-hom(f, g:A, B)\otimes2-hom(g, h:A, B)→2-hom(f, h:A, B) in V
  • γf,g,h,k:2-hom(f, g:A, B)\otimes2-hom(h, k:B, C)→2-hom(f*h, g*k:A, C) in V

他に、恒等射に相当する族ι〈イオタ〉も必要です。

  • ιf:I→2-hom(f, f:A, B) in V

これらの族達が、結合律、単位律、交替律〈interchange law | exchange law〉を満たすことを要求します。法則の定義の際は、直積をモノイド積とする集合圏Setにより2-豊饒化された2-豊饒圏が、通常の厳密2-圏になるようにします。弱2-圏〈双圏〉を模倣する弱い定義もありますが、話が難しくなります。

事例

4種の豊饒化ベース圏を考えましょう。

B

集合{0, 1}に 0 < 1 と順序を入れます。順序集合からは圏を定義できるので、対象集合が{0, 1}である圏ができます。掛け算をモノイド積にすると、モノイド圏が出来上がります。こうして出来た厳密モノイド圏を B = (B, ・, 1) とします。

P

集合{x∈R| x ≧ 0}に通常の順序を考えます。順序集合からは圏を定義できるので、対象集合が{x∈R| x ≧ 0}である圏ができます。足し算をモノイド積にすると、モノイド圏が出来上がります。こうして出来た厳密モノイド圏を P = (P, +, 0) とします。

FdVect

適当な体Kを固定して、有限次元ベクトル空間の圏 FdVect = FdVectK を考えます。射は線形写像です。ベクトル空間および線形写像テンソル積をモノイド積とすれば、モノイド圏になります。このモノイド圏を FdVect = (FdVect, \otimes, K, α, λ, ρ) とします。

Set

集合圏Setに直積を考えるとモノイド圏になります。このモノイド圏を Set = (Set, ×, 1, α, λ, ρ) とします。


適当な圏(普通の圏)Cに対して、Bで2-豊饒化すると、1-ホムセット(普通のホムセット)にプレ順序構造が入った圏ができます。プレ順序'≦'に関する不等式 f ≦ g が2-射に相当します。

CPで2-豊饒化すると、1-ホムセットに一般化距離が入った圏ができます。一般化距離とは、距離の公理から次の2つを除いたものです。

  • d(a, b) ならば a = b
  • d(a, b) = d(b, a)

つまり、距離ゼロでも異なる点を許します。そして、距離が対称である必要もありません。

CFdVectで2-豊饒化すると、1-ホムセットがK-線形圏の構造を持つような圏ができます。2-hom(f, g)∈|FdVect| なので、2-hom(f, g) はベクトル空間です。このベクトル空間の要素(=ベクトル)として2-射を考えることができます。2-射(=ベクトル)は、双線形写像で縦結合/横結合されます。

CSetで2-豊饒化すると、1-ホムセットが圏の構造を持つような圏ができます。2-hom(f, g) は集合です。この集合の要素として2-射を考えることができます。これは通常の厳密2-圏です。

項計算と論理計算

冒頭の「動機」の話に戻ります。普通の圏Cのなかで、対象は型、射は項と解釈して項計算ができます。さらに、項に対する命題を考えて論理計算をしたいとしましょう。

1-射 f, g に対して、なにか不等式 f ≦ g (みたいなもの)を考えるとします。この不等式の真偽値(どの程度正しいか)を [f ≦ g] と書き、真偽値の値は圏Vの対象として定まるとします。この設定では、Vは真偽の程度と推論の圏だということになります。Vとして、モノイド圏とみなしたハイティング代数をとると適切かも知れません。

項計算の上に論理計算を乗っける、という操作が、通常の圏Cに対して、“真偽値の圏”で2-豊饒化することで実現されそうです。

前節の例には、論理とは無関係の例もあります。ということは、論理に限らず、異なる種類の計算を組み合わせるときに、2-豊饒化が使えそうです。厳密高次圏の定義では、集合圏ベースの豊饒化を繰り返しますが、使う豊饒化ベース圏を取っ替え引っ替えしながら豊饒化を繰り返すという操作があってもよさそうです。高次の混合豊饒化とでも呼ぶべき操作ですね。

マイク・ステイ達の議論では(記憶がおぼろげだが)、項計算と論理計算の定式化にモナドやベックの分配法則が出てきたような気がします。V-豊饒圏という概念がモナドとして定義できるなら、複合モナドが混合豊饒圏に対応し、複合モナドを作るための条件としてベックの分配法則も出てくるでしょう。

以上の話は、半分くらい予想で言っている(裏が取れてない)ので、確実性は乏しいですが、2以上のnに対する“V-n-豊饒圏”という概念は無意味ではないとは思います。