デカルト閉復圏とラムダ計算

連言ボックス、選言ボックス、全称ボックス、存在ボックス - (新) 檜山正幸のキマイラ飼育記 メモ編 の続き。

モヤモヤを晴らすためにすること。

  1. ラムダ項の圏論的位置付けをハッキリさせる。
  2. 単なる圏ではなくて復圏〈オペラッド〉を使う。
  3. デカルト閉復圏=デカルト閉オペラッド=閉クローン を使う。
  4. デカルト閉圏Cから MultiC を作る。
  5. ケーブルとワイヤーを徹底的に区別する。
  6. ケーブルへの型ラベルと名前ラベルを徹底的に区別する。名前ラベルは番号で置き換え可能。
  7. ケーブルを連言ケーブル〈直積ケーブル〉、選言ケーブル〈直和ケーブル〉、含意ケーブル〈指数ケーブル〉に分ける。
  8. 外部カリー化〈抽象〉と内部カリー化〈型の変換〉を区別する。外部カリー化は圏論的オペレータ、内部カリー化はケーブル・リアレンジ・ボックスで表す。
  9. ケーブルの幅が無限である全称ケーブルと存在ケーブルも考える。
  10. ケーブルの幅が無限である含意〈指数〉ケーブルが問題・疑問・課題だ。
  11. 幅無限の含意〈指数〉ケーブルが依存関数型だと思う。
  12. 上下左右を厳しく区別する。

まず、復圏の復射とラムダ射の関係。復射とラムダ射は別世界にいるとする。

ラムダ射は、入力無しで、右から左に番号が付き、左端だけは番号が付かない。左端ではないワイヤーをラムダワイヤー〈lambda wire〉と呼ぶ。これは、ラムダ関数項のラムダ引数リストのラムダ引数項目に相当する。ラムダワイヤーは最も重要な概念。

ラムダワイヤーは出力側で便宜上反対方向を持つと考える。ラムダワイヤーではない(上からの)入力ワイヤーがあってもよさそうだ。

復圏の復射をラムダ射に変換するのが関数抽象=外部カリー化。

関数抽象=外部カリー化は、上の入力ワイヤーの番号(左から右)で識別できるワイヤーベンディング・オペレータ。一番目の外部カリー化だと、入力ワイヤーが残るので、入力ワイヤーを許すラムダ射(大きなラムダ式に相当)も許すほうがよさそう。

うまく定義すれば、復射とラムダ射を同じ世界で考えることが出来るかも知れない。

次の図は、ワイヤー組み替え〈wire {altering | rearrange | recombination}〉の事例。まだちゃんと分かってない。

対称〈スワップ | 交換 | 換〉と内部カリー化/内部反カリー化により、ケーブルの構造を変えること。ラムダ射の世界におけるスパイダリングがワイヤー組み替え。

ラムダ射の世界では、ラムダ抽象=外部カリー化 λ(i) (i は番号列)と左引数評価 ▷i と右引数評価 ◁i がある。ラムダ射の世界は確率的アレンジメントの世界と類似している。二部アレンジメントの二部構造=分割が固定されている。一般的には、アレンジメント代数と言えそうだ。

復射の世界=復圏では、オペラッド結合 ;i, \circi がある。フルカリー化/フル反カリー化を右肩∩、右腰∪で表すとして、

  • a ◁i b = (a \circi b)

が成立する。これは、確率的アレンジメントのときも同様な等式が成立する。

復圏においてもラムダ射のアレンジメント代数においても、射のヘッジ〈hedge〉を作れる。ヘッジ自体は復圏やアレンジメント代数の構成素ではないが、中間構文として意味がある。ヘッジと射の結合は再び射になる。