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

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

ブール・クリーネ圏(Boole/Kleene Categories)

圏Cがクリーネ圏であって、さらに次を満たすとする。

  • 対象はブール代数である(半環とみなす)
  • homset C(A, B)を可換モノイドとみなして、左スカラー乗法LA,B:A×C(A, B)→C(A, B)が左半加群構造を与える。
  • 同じく、右スカラー乗法RA,B:C(A, B)×B→C(A, B)が右半加群構造を与える。
  • a∈A, x∈C(A, B), b∈Bに対して (a・x)・b = a・(x・b)。

ようするに、homsetが両側半加群構造を持つようになっている。a|→a・1 によって、ブール半環AをEnd(A)に埋め込める(かもしれない)が、End(A)はKleene代数構造を持つから、テスト付きクリーネ代数となる。

ブール・クリーネ圏は、テスト付きクリーネ代数と作用素付きブール代数を拡張したものになる。Kozen圏やプレKozen圏(Kozen圏からベキ等性を除いた圏)との関係が主な課題。

プログラムとの関係では:

  • 対象A -- テスト、条件、状態空間の部分集合
  • endo射 -- 状態遷移、動作
  • 一般の射 -- 状態空間の変換/対応/翻訳。異なる状態空間への遷移
  • スカラー乗法 -- 事前、事後条件でガードすること。
  • 圏の結合 -- 順次実行
  • homsetの和 -- 非決定性の選択
  • 恒等射 -- nop, skip
  • 零射 -- crash
  • star -- 不定の任意繰り返し