絵算でゴー:トランスデューサ
上の絵を見てると言わずにおれん。
Elgot反復を双対圏で考える。余デカルト圏の双対圏はデカルト圏だから、余Elgotオペレータはデカルト圏に働く。面倒なので、余Elgotoオペレータも上付きの#で示す。普通は†で示して、Conwayオペレータと呼ぶ。
もとのf#の絵の矢印(方向)を逆にして、さらにそれを“裏”から見た(あるいは鏡像の)絵を描く。遷移関数f:A×X→Xに対して余Elgotオペレータ(=Conwayオペレータ)を作用させたf#:A→Xは、単純なオートマトンになる。別に出力関数g:A×X→Bがあれば、ΔA;(A×f#);g としてトランスデューサが定義できる。
逆に、トランスデューサはこの形に限るのか? まーこれは、トランスデューサの定義に依存する問題だな。
ところで、Elgotオペレータがデカルト圏で意味を持つのだから、Conwayオペレータ(の双対)も余デカルト圏で意味を持ちそうだな(以前は、無意味かと思っていたが)。