詳細は後で(バートレット、計算の世界、XML)
寒いし雨降っていたので、ふさぎ込んで頭に来ていろいろと考えた。
- ブルース・バートレット(Bruce Bartlett)は秀才だ。修士論文も学位論文もよい。
- http://d.hatena.ne.jp/m-hiyama-memo/searchdiary?word=Bartlett
- そのバートレットの学位論文 "On unitary 2-representations of finite groups and topological quantum field theory" 5章を読んだ。
- それで、カテゴリカルマニュピュレーションと工作圏論の概念を思いついた。
- カテゴリカルマニュピュレーション=手作業=加工の例:ラムダ抽象とその逆、ブレイド(とツイスト*1)による単位/余単位のフリッピング、軸的圏(pivotal category)における軸反転(pivotting)
- バートレットは、双対構造のフリッピングによって、もろ手双対(もろ手随伴)を定式化している。εAをフリップする操作(マニュピュレーション)ΨAと、ηAをフリップする操作ΦAの集まり。
- バートレットは、even-handed構造と呼ぶ。訳語は両側構造か? 両側公平、左右公平??
- バートレットは随伴と双対は区別しないと明言している。ナルホド、やっぱりな。で、もろ手双対は ambidual(アンバイ双対、ambidextrous dualの短縮) でいいと思う。
それとは別に:
- コンピュータとプログラムの世界を、全体的にまるごと定式化するにはどうする?
- インスティチューションは必須だ。
- プログラミング言語は、構文生成モナドTとプリミティブを与える指標Σとの組だ。
- プログラムpは、モナドTのKleisli圏に射として存在するが、Σによるスライス圏の対象と考えたほうがよい。
- よって、プログラムp:Σ→Δ は、スライス圏のあいだのプログラム変換関手も定義する。圏の対象でもあり同時に関手でもあるという二重性。
- プログラムの生成(creation)、進化(evolution)、リファクタリングなども定義したい。
- エミュレーションやコンパイルも定式化。
- そのためには、単一のインスティチューションでは無理そうだ。
- インスティチューションの圏が必要だが、射の概念が難しい。
- モデル圏は状態遷移系が基本だと思う。
- セリンガー流の入出力=コミュニケーションを持つ遷移系だろう。
- 具体例のなかでの具体的構成が必要だ。
ひさびさにXMLのモジュールについて考えた。
- モジュール式(表現)という概念が基本。
- モジュールの名前は、モジュール型の変数
- モジュール定義とは、モジュール(実体)のリテラル表記
- 変数とリテラルを演算子で組み立てた表現がモジュール式
- モジュール式もモジュールを指し示す
- モジュール型変数へのモジュール式を代入する文(宣言)の集まりがモジュール記述
- モジュールにもα変換がある
- α変換で移れる関係=α同値を入れて考える
- α変換とα同値のもとでは、モジュールの並置(モノイド積)や結合(多圏の結合)が合理的に定義できる。
- モジュールにプライベートな名前も内部α変換される。これは、圏からスパン圏を構成するときに同値類を取る操作に対応する。内部α変換で移れるモジュールはイコールとみなす。
- 構文的には、結合以外に、並置とトレースを組み合わせたマージがある。
- importの合理的解釈も可能だ。
- includeは止めたほうがいい。
- モジュールもコンパイルすべき。適当なプログラミング言語のソースにするか、独自の言語に変換。
*1:ツイストのペアによりネジレ玉をほぐす。