上江州計算の課題
「モナドと上江州拡張」にて:
モナドのKleisli圏と上江州拡張はなんらかの関係があるってことだな。
項(Term)モナドと上江州拡張の関係をハッキリさせる -- これ課題。
方針としては、まず、項モナド(実際は、モナドのKleisli圏)を、[0]={}, [1]={1}, [n]={1, ..., n}に制限する。T([n]) = T(n)とすると、モナドはN上で定義されたように見える。Nを対象類とする圏はPROだかPROPだかと呼ぶようだ(オペラッドの説明でこの用語見たことがある)。Klesili圏はN上に定義されるPRO(だか?)だな。
変数集合とみなした[n]に、Cによる型付けを与えることは、写像[n]→|C|を与えることになる。シェープ圏としてのPROを、ワイヤーフレーム圏とかワイヤークラフト圏と呼ぶといいような気がする。指標Σはワイヤーフレーム圏を装飾する。ワイヤーだけを修飾すると変数なしの項、頂点/ドット(ワイヤーの接合点)も修飾すると変数ありの項、ってことだろう。記号回路(シンボリック・サーキット)って概念とも整合しそうだ。
変数なしの項の圏は、多圏=構文的圏とも見なせる。構文的多圏から値/実体の圏Cへの意味写像は“C上での、計算(の意味)”を与えるのだろう。
うーん、まだ曖昧、混沌だ。ともかく、キモは、N上に制限されたモナド/Kleisli圏だと思う。変数の圏VにNを埋め込めば、それが上江州拡張と対応しそうだ。位置引数とか番号(無名)変数とかde Bruijnインデックスとかも関係するはず。
他の課題も列挙: