「クリーネ代数の「テスト」を圏論的に定義できるだろうか?」にて:
零対象と双積を持っていて、ベキ等律 Δ;∇ = id が成立し、双積に関してトレースを持つ圏Cがあれば、各エンドセットC(A, A)にクリーネ代数の構造を入れることができます。今言った条件を満たす圏になにか名前があればいいのですが、合意された名前はないようです。
これらの条件をすべて満たす圏に名前は付いてませんが、零対象と双積を持つ圏なら名前がありますね。半加法圏(semiadditive categories)です。
僕は、双デカルト圏(bicartesian category)と呼ぶのかと思っていたのですが、双デカルト圏の定義に双積は出てこないようです。
半加法圏の条件は、標準的に決まる自然変換(の成分) rA,B:(A + B)→A×B が同型であることなので、双積を持つ圏となります。
双積は、掛け算(直積)でもあり足し算(直和)でもある演算ですが、どちらかといえば足し算ぽいです。双積の意味で「直和」という言葉を使うことがあります。例えば、ベクトル空間の「直和」は、直積でもあるので実際は双積です。関係圏の双積も、集合の直和で与えられることから「直和」と呼んでもいいでしょう。
足し算としての双積以外に、別なモノイド積を持つような圏がここ最近、ふたたび興味を持っている圏です。別なモノイド積は掛け算と考えるものです。ベクトル空間の圏では、直和=双積とは別なモノイド積はテンソル積なので、一般論においてもテンソル積と呼ぶことにします。「テンソル積」という言葉をモノイド積の同義語として使うことも多いのですが、ここでは「双積とは別な二番目のモノイド積で、掛け算と解釈するもの」という意味です。
それで、テンソル積を備えた半加法圏をテンソル半加法圏と呼ぶことにします。半加法圏のベースの上に、テンソル積が乗っかった構造ということです。興味ある構造に名前が付くと安心するのですが、他の構造を追加すると、対称テンソル半加法圏、テンソル・トレース付き半加法圏、対角付き対称テンソル・トレース付き半加法圏とか、形容詞が付いてダラダラした長い名前になってしまう、ウーン、しょうがないか。
今日は名前が付いて良かった、ってだけ。テンソル半加法圏がプログラムとどう対応するかだけ書いておくと:
圏の対象 | データ型 |
圏の射 | プログラム |
恒等射 | 各データ型上のnop |
射の結合 | プログラムの順次実行 |
零対象 | クラッシュや無限ループ |
双積の対角 | 非決定性の分岐(ロードバランシング) |
双積の余対角 | 結果のマージ |
双積のトレース | 非決定性の繰り返し |
射のテンソル積 | プログラムの並列実行 |
テンソル積の対角 | データのクローン |
テンソル積の対角の余単位 | データの破棄 |
テンソル積の余対角 | 比較回路 |
テンソル積の余対角の単位 | 非決定性の(ランダムな)データ生成 |
テンソル積の単位対象 | 真偽値 |
単位対象への射 | 述語、条件 |
参考:
「テンソル圏」の検索結果: