このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

一般的なIO代数

集合圏かCPOの圏で考えるとして(デカルト閉圏ならいい)、ωは自然数(順序付き)か似たようなモンだとして、Aは勝手な対象。

  • in:Aω→A
  • out:A→Aω

とすると、ストリームIOの雰囲気がする。inとoutの間には通常はなにかしら関係があるが、特に関係は考えないとする。さらに、ωをV(ただし固定)にすると、

  • in:AV→A
  • out:A→AV

というオペレーションの組が一般的なIO代数と呼ばれるもの。一般的過ぎる気もするが。

F(A) = AV とすると、inはF-代数、outはF-余代数を定義するので、IO代数は、両代数となる。in+out:F(A)+A →A+F(A)として定義できる。G(A) = F(A)+A, H(A) = A+F(A) とすると、個別のinoutは、G(A)→H(A)なので、(G, H)-両代数。(G, H)-両代数の圏がIO代数の圏。