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

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

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

参照用 記事

依存性を持つ複グラフ

複圏〈オペラッド〉はその下部構造に複グラフを持ちます。導出システム〈演繹系〉は、概念的には複グラフそのものです。複グラフを依存型理論で利用したいとき、複グラフにも依存性を導入する必要があります。この記事で、依存性を持つ複グラフを導入します。$`
\newcommand{\mrm}[1]{ \mathrm{#1} }
%\newcommand{\cat}[1]{ \mathcal{#1} }
\newcommand{\mbf}[1]{\mathbf{#1}}
%\newcommand{\msf}[1]{\mathsf{#1}}
%\newcommand{\mbb}[1]{\mathbb{#1}}
%\newcommand{\hyp}{\text{-} }
\newcommand{\In}{ \text{ in } }
%\newcommand{\twoto}{\Rightarrow }
%\newcommand{\Imp}{\Rightarrow }
`$

内容:

複グラフ

ここで使う用語法では、複圏とオペラッドは完全に同義です(区別しない)。複圏〈オペラッド〉から、結合〈composition〉と恒等〈identity〉を忘れた構造を複グラフ〈multigraph〉と呼びます。複グラフについては以下の過去記事で書いています。

導出システムと演繹系は完全に同義です。複グラフと導出システムも、分野が違うだけで同じ概念です。導出システム〈演繹系〉については以下の過去記事で書いています。

概念としては:

  • 複圏 = オペラッド
  • 複グラフ = 導出システム = 演繹系

また、圏は特別な複圏とみなせます。しかし残念なことに、異なる分野で扱われるので、同じ概念に別な呼び名が付いています。以下の表のようです。(縦棒は「または」、疑問符は省略可能を意味します。)

複圏〈オペラッド〉 複グラフ 導出システム〈演繹系〉
対象 色、対象 頂点、ノード
{色 | 対象}リスト {頂点 | ノード}リスト 文リスト
複射、オペレーション、オペレーター 複辺、辺 基本導出ステップ
ソース{リスト}? 始点リスト、ソース{リスト}? 仮説、前提
余域 ターゲット{色 | 対象}? 終点、ターゲット{頂点 | ノード}? 結論
複パス、ツリー 導出ツリー

呼び名と書き方を決める

複グラフを話題にしたいのですが、複グラフは複圏〈オペラッド〉の下部構造として出現することが多いです。圏の下部構造であるグラフ〈有向グラフ〉は複グラフの特別なものとみなせます。複グラフと導出システム〈演繹系〉は同じ概念です。導出システムは型理論の文脈でも登場します。

複グラフというひとつの概念に対して、文脈や由来・習慣によって、様々な呼び名があり、呼び名にちなむ書き方〈記法〉もたくさんあります。

複グラフ $`X`$ の“頂点の集合”を表すために、次のような書き方があるでしょう。

  1. $`\mrm{Obj}(X)`$ (set of objects)
  2. $`\mrm{Color}(X)`$ (set of colors)
  3. $`\mrm{Vert}(X)`$ (set of vertices)
  4. $`\mrm{Node}(X)`$ (set of nodes)
  5. $`\mrm{Sen}(X)`$ (set of sentences)
  6. $`\mrm{Sort}(X)`$ (set of sorts)
  7. $`\mrm{Type}(X)`$ (set of types)

複グラフ $`X`$ の“辺の集合”を表すために、次のような書き方があるでしょう。

  1. $`\mrm{Mor}(X)`$ (set of morphisms)
  2. $`\mrm{Oper}(X)`$ (set of {operations | oprators})
  3. $`\mrm{Edge}(X)`$ (set of edges)
  4. $`\mrm{Multiedge}(X)`$ (set of multiedges)
  5. $`\mrm{Step}(X)`$ (set of {primitive}? derivation steps)
  6. $`\mrm{Inference}(X)`$ (set of {primitive}? inference rules)
  7. $`\mrm{Function}(X)`$ (set of functions)

今ここでは次のように決めます。

  • 複グラフ $`X`$ の“頂点の集合”を表すために、$`\mrm{Color}(X)`$ と書く。
  • 複グラフ $`X`$ の“辺の集合”を表すために、$`\mrm{Oper}(X)`$ と書く。

つまり、オペラッド〈複圏〉の用語・記法を使います。

なお、$`\mrm{Sort}`$ は、$`\mrm{Color}`$ とは(似てるけど)少し違う意味で後で使います。

プロファイルと境界写像

$`X`$ は、圏、複圏〈オペラッド〉、複グラフ、導出システム〈演繹系〉のいずれかだとします。分野ごとの呼び名の違いを吸収するために、前節で決めた記法を使います。

  • $`\mrm{Color}(X)`$ : $`X`$ の{対象 | 色 | 頂点 | ノード | 文}の集合
  • $`\mrm{Oper}(X)`$ : $`X`$ の{射 | 複射 | オペレーション | オペレーター | 複辺 | 辺 | 導出ステップ | 推論規則}の集合

圏または複圏〈オペラッド〉または複グラフまたは導出システム〈演繹系〉 $`X`$ に対して、プロファイルの集合〈set of profiles〉 $`\mrm{Prof}(X)`$ を次のように定義します。

  1. $`X`$ が圏のとき:
    $`\mrm{Prof}(X) := \mrm{Color}(X)\times \mrm{Color}(X) = \mrm{Obj}(X)\times \mrm{Obj}(X)`$
  2. $`X`$ が複圏または複グラフまたは導出システムのとき:
    $`\mrm{Prof}(X) := \mrm{List}(\mrm{Color}(X))\times \mrm{Color}(X)`$

$`X`$ が圏であっても、複圏であっても、複グラフであっても、導出システムであっても、境界写像 $`\mrm{bdry}_X`$ を定義できます。サイズが小さい場合なら:

$`\quad \mrm{bdry}_X : \mrm{Oper}(X) \to \mrm{Prof}(X) \In \mbf{Set}`$

サイズが大きい場合なら($`\mbf{SET}`$ は大きな集合達の集合圏):

$`\quad \mrm{bdry}_X : \mrm{Oper}(X) \to \mrm{Prof}(X) \In \mbf{SET}`$

境界写像については、「複圏〈オペラッド〉とプレ準同型射の圏」を見てください。

複圏〈オペラッド〉とプレ準同型射の圏」で導入したプレ準同型射〈pre-homomorphism〉とは、プロファイルのあいだの写像とオペレーションのあいだの写像のペア $`(F_\mrm{prof}, F_\mrm{oper})`$ で、境界写像を保存するもの(以下の可換図式)です。

$`\quad \xymatrix{
\mrm{Oper}(X) \ar[d]_{\mrm{bdry}_X} \ar[r]^{F_\mrm{oper}}
& \mrm{Oper}(Y) \ar[d]^{ \mrm{bdry}_Y }
\\
\mrm{Prof}(X) \ar[r]^{F_\mrm{prof}}
& \mrm{Prof}(Y)
}\\
\quad \text{commutative }\In \mbf{Set}
`$

$`\mrm{Prof}(X), \mrm{Oper}(X)`$ の由来も忘れてしまえば、プレ準同型射とは、バンドルのあいだのバンドル射に過ぎません。バンドル-ファミリー対応(「バンドル-ファミリー対応 再考」参照)により、バンドルからファミリーを作れます。そのファミリー〈集合族〉がホムセット〈homset〉です。

$`\quad \mrm{Hom}_X = {\mrm{bdry}_X}^{-1} : \mrm{Prof}(X) \to |\mbf{Set}|\In \mbf{SET}`$

依存複グラフ

複グラフ $`X`$ のプロファイルの集合は、$`\mrm{Color}(X)`$ を使って簡単に定義できました。

$`\quad \mrm{Prof}(X) := \mrm{List}(\mrm{Color}(X)) \times \mrm{Color}(X)`$

プロファイルとは、色リスト($`\mrm{List}(\mrm{Color}(X))`$ の要素)と色($`\mrm{Color}(X)`$ の要素)のペアです。プロファイルを具体的に書けば:

$`\quad ( (A_1, \cdots, A_n), B ) \\
\text{Where}\\
\quad (A_1, \cdots, A_n) \in \mrm{List}(\mrm{Color}(X))\\
\quad B \in \mrm{Color}(X)
`$

依存複グラフ〈dependent multigraph〉とは、プロファイルが依存性を持つかもしれないような複グラフです。今までの定義には依存性がありませんでした。依存複グラフのプロファイルにおいては、色リスト $`(A_1, \cdots, A_n)`$ の成分〈項目〉間に依存性があるかも知れず、色 $`B`$ も $`(A_1, \cdots, A_n)`$ に依存しているかも知れないのです。

依存性を定式化するには、色の集合の代わりに、色の集合族〈ファミリー〉を考えます。“インデックス付き集合のファミリー”を次のように書きます。

$`\quad \mrm{Sort}_X : \mrm{Ctx}(X) \to |\mbf{Set}| \In \mbf{SET}`$

呼び名は次のようです。

  • $`\mrm{Ctx}(X)`$ : 依存複グラフ $`X`$ のコンテキストの集合〈set of contexts〉
  • $`\mrm{Sort}_X`$ : 依存複グラフ $`X`$ のソートファミリー〈sort family〉
  • $`\Gamma \in \mrm{Ctx}(X)`$ : $`\Gamma`$ は、依存複グラフ $`X`$ のコンテキスト〈context〉
  • $`A \in \mrm{Sort}_X(\Gamma)`$ : $`A`$ は、依存複グラフ $`X`$ のコンテキスト $`\Gamma`$ 上のソート〈sort〉

呼び名〈用語〉は依存型理論に寄せています

依存性がない複グラフ $`Y`$ を、依存複グラフの特別なものとみなすには、次のように定義します。

$`\quad \mrm{Ctx}(Y) := \mrm{List}(\mrm{Color}(Y))\\
\quad \mrm{Sort}_Y(\Gamma) := \mrm{Color}(Y)
`$

この場合、$`\mrm{Sort}_Y(\Gamma)`$ は $`\Gamma`$ に依存せず、常に一定値 $`\mrm{Color}(Y)`$ です。

さて、依存複グラフ $`X`$ のプロファイルの集合を定義しましょう。

$`\quad \mrm{Prof}(X) := {\displaystyle
\sum_{\Gamma \in \mrm{Ctx}(X)} \mrm{Sort}_X(\Gamma)
}`$

ここで、総和記号(シグマ)は、ファミリー〈インデックス付き集合族〉の成分〈値〉を直和で全部足し合わせた集合です。依存型理論で言えば、型ファミリーのパイ型です。

「依存型理論の道具を定義している最中に、依存型理論の概念を使うのか?」と不満や疑念をいだくかも知れませんが、よくあることです。循環論法で破綻しているわけではないので大丈夫です。

集合 $`\mrm{Prof}(X)`$ の要素は、次のようなペアですが、第一成分と第二成分のあいだに依存性があります。

$`\quad (\Gamma, B) \in \mrm{Prof}(X)\\
\text{Where}\\
\quad \Gamma \in \mrm{Ctx}(X)\\
\quad B \in \mrm{Sort}_X(\Gamma)
`$

依存複グラフでは、プロファイルの定義が複雑化していますが、プロファイルの集合 $`\mrm{Prof}(X)`$ さえ定義できれば、あとは通常の(依存性がない)複グラフと同じです。

依存複グラフの定義まとめ

依存複グラフ $`X`$ の構成素は次のものです。

  1. $`\mrm{Ctx}(X)`$ : $`X`$ のコンテキストの集合
  2. $`\mrm{Sort}_X`$ : $`X`$ のソートファミリー
  3. $`\mrm{Prof}(X)`$ : $`X`$ のプロファイルの集合、コンテキストの集合とソートファミリーから定義する。
  4. $`\mrm{Oper}(X)`$ : $`X`$ のオペレーションの集合
  5. $`\mrm{bdry}_X`$ : $`X`$ の境界写像

境界写像は次の形になります。

$`\quad \mrm{Oper}(X) \ni \varphi \mapsto (\Gamma, B) \in {\displaystyle \sum_{\Gamma \in \mrm{Ctx}(X)} \mrm{Sort}_X(\Gamma)}
`$

$`\Gamma`$ を $`\varphi`$ のソースコンテキスト〈source context〉、$`B`$ を $`\varphi`$ のターゲットソート〈target sort〉と呼びます。もちろん、様々な分野、文脈、由来・習慣によって、たくさんの同義語があります。呼び名・書き方の違いは無視して、概念の同一性に注意を向けましょう。

依存型理論における依存複グラフの利用

前節で定義した依存複グラフを依存型理論に利用するときは、また若干の用語翻訳が必要です。

依存型理論 依存複グラフ
コンテキスト コンテキスト
型項〈型〉 ソート
インスタンス項〈項〉 オペレーション
ソースコンテキスト
ターゲットソート

型理論では多くの場合、構文的対象物〈syntactic object〉である型項を単に「型」、インスタンス項を単に「項」と呼びます。それが習慣なのでしょうがないです。

さて、依存複グラフの場合も、圏・グラフと同様にホムセットを定義します。

$`\text{For }\alpha \in \mrm{Prof}(X)\\
\quad \mrm{Hom}_X(\alpha) = X(\alpha) :=
\{ \varphi \in \mrm{Oper}(X) \mid \mrm{bdry}_X(\varphi) = \alpha
\}
`$

依存型理論における型判断の形式

$`\quad \Gamma \vdash \varphi : B`$

は、依存複グラフ $`X`$ 内では次のように解釈されます。

$`\quad \varphi \in \mrm{Hom}_X( (\Gamma, B) )`$

ホムセットをもっと簡素に書けば:

$`\quad \varphi \in X( \Gamma, B )`$

今日定義した依存複グラフは、型判断形式の解釈に使えるだけですが、もっと構造を付け足すことにより、依存型理論の圏論的定式化であるC-システム(「カートメル/ヴォエヴォドスキー/パルムグレンの型理論」)に接近することが出来ます。