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

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

ホーア4つ組の定式化

ホーア4つ組の定義らしきもの。やっと、しかし、まだ詰めが甘い。

Sは状態空間、Aが入力記号の集合で、指標Σのミューテータ記号で与えられる。Bは出力記号の集合で、指標Γのミューテータ記号で与えられる。A*(Aの列)をコマンド、B*(Bの列)をイベントと呼ぶこともある。

A*×S → Pow(S×B*) を遷移とする。α∈A*に対してS→Pow(S×B*)が決まる。これを、【α】とかく。p, qなどはS上の述語だとする。EがBの正規表現だとして、組(q, E)は、【q】×【E】∈Pow(S×B*)という解釈をする。【q】⊆S、【E】⊆B*(正規言語)である。

4つ組 p→[α]q, E の意味は、【p】⊆【α】-1(【q】×【E】) だとする。【α】-1は、ブール代数Pow(S×B*)からPow(S)への様相オペレータとなっている。4つ組の解釈はPow(S)内で行える。

α∈A* と x∈Sが与えられたとき、「x∈【p】ならば【α】(s)∈【q】×【E】」のとき、ホーア4つ組'p→[α]q, E'を満たしている。

A*×S → Pow(S×B*) はCirc-Kleisli構成を一般化して、とある圏のA→Bという射と考えることができるだろう。またこれは、S|→[A*, Pow(S×B*)]という関手の余代数にもなっている。