F余代数

数学の特に圏論における F-余代数 (エフよだいすう、英: F-coalgebra) は、(自己)関手 F によって定義される構造の一つである。代数や余代数を扱う文脈ではよく、シグネチャに由来する関手を考える。F-余代数の概念は計算機科学で使われることが多い。例えば、遅延評価、ストリームのような無限データ構造、状態遷移系などはF-余代数の言葉で説明される。 F-余代数はF-代数の双対である。あるシグネチャと等式理論に対する代数を全て集めたクラスがバラエティをなすのと同様、所与の等式理論を満たすF-余代数 (Fはそのシグネチャから由来するとする) 全体は余バラエティーをなす。 Fを圏 C {\displaystyle {\mathcal {C}}} 上の自己関手 F : C ⟶ C {\displaystyle F\colon {\mathcal {C}}\longrightarrow {\mathcal {C}}} とするとき、F-余代数とは C {\displaystyle {\mathcal {C}}} の対象  A {\displaystyle A}  と射 α : A ⟶ F A {\displaystyle \alpha \colon A\longrightarrow FA} の組  ( A , α ) {\displaystyle (A,\alpha )} である。 F-余代数  ( A , α ) {\displaystyle (A,\alpha )} から別のF-余代数  ( B , β ) {\displaystyle (B,\beta )}  への(F-余代数としての)準同型とは、 C {\displaystyle {\mathcal {C}}} の射 f : A ⟶ B {\displaystyle f\colon A\longrightarrow B} であって F f ∘ α = β ∘ f {\displaystyle Ff\circ \alpha =\beta \circ f} を満たすものである。 これにより、ある自己関手Fについて、F-余代数全体は圏をなす。 関手 F : S e t ⟶ S e t {\displaystyle F\colon \mathbf {Set} \longrightarrow \mathbf {Set} } として、  X {\displaystyle X}  を ( X × A ) ∪ { 1 } {\displaystyle (X\times A)\cup \{1\}} に送るものを考える。すると F-余代数  α : X ⟶ ( X × A ) ∪ { 1 } = F X {\displaystyle \alpha \colon X\longrightarrow (X\times A)\cup \{1\}=FX}  はアルファベット A {\displaystyle A} 上の有限または無限のストリームをあらわすことになる。このとき  X {\displaystyle X}  は状態集合、  α {\displaystyle \alpha }  は状態遷移関数である。状態遷移関数を状態に適用した場合、2通りの結果が考えられる。ひとつは  A {\displaystyle A} の元とストリームの次の状態が返される場合、もうひとつは単元集合 { 1 } {\displaystyle \{1\}} の元が返される場合である。後者は特別な「終状態」、つまりストリームが打ち止めであることを表す値である。 多くの実用的な例では、このような余代数の状態遷移関数は  X → f 1 × f 2 × … × f n {\displaystyle X\rightarrow f_{1}\times f_{2}\times \ldots \times f_{n}} という形になっていて、「セレクタ」「オブザーバ」「メソッド」のように機能別に X → f 1 , X → f 2 … X → f n {\displaystyle X\rightarrow f_{1},\,X\rightarrow f_{2}\,\ldots \,X\rightarrow f_{n}} と分割して考えることができるようになっている。多くの場合、オブザーバーは何らかの属性値を出力するようになっていて、状態を書き換えるメソッドは  X → X A 1 × … × A n {\displaystyle X\rightarrow X^{A_{1}\times \ldots \times A_{n}}} のように追加のパラメーターを受け取って次の状態を返す形になっている。このような分解は、F-始代数をいくつかの「コンストラクタ」の直和に分解できる現象の双対になっている。 P ( X ) {\displaystyle {\mathcal {P}}(X)} を X {\displaystyle X} の冪集合とし、これを集合の圏の共変関手とみなす。このとき、 P {\displaystyle {\mathcal {P}}} -余代数は二項関係の入った集合と一対一に対応する。さらにここで集合 A {\displaystyle A} を固定する。すると自己関手 P ( A × ( − ) ) {\displaystyle {\mathcal {P}}(A\times (-))} の余代数はラベルつき遷移系と一対一に対応し、余代数の間の準同型は関数双模倣に対応する。 余代数は状態をもつシステム (状態遷移系や、オブジェクト指向プログラミングにおけるクラスなど) や、無限の内容を持ちうるデータ構造 (ストリームなど) などの挙動を、十分に一般的かつ利用しやすい形で記述できることから、計算機科学で広く用いられるようになった。代数的仕様がシステムの動作を関数として (特に、コンストラクタによって生成される帰納的なデータ型を用いて) 記述するのに対し、余代数的仕様はシステムの動作を余帰納的なプロセス、つまりセレクタの出力によって観測される内容として (オートマトン理論のような考え方で) 記述する。このときありえる全ての無限動作を漏れなく重複なく集めてきた集合が終余代数となるため、終余代数も重要な役割を果たす。余代数によって記述されるシステムの性質を記述するのには、余代数的様相論理が適している。 余代数 (代数学における) B. Jacobs and J. Rutten, A Tutorial on (Co)Algebras and (Co)Induction. EATCS Bulletin 62, 1997, p.222-259. Jan J. M. M. Rutten: Universal coalgebra: a theory of systems. Theor. Comput. Sci. 249(1): 3-80 (2000). J. Adámek, Introduction to coalgebra. Theory and Applications of Categories 14 (2005), 157-199 B. Jacobs, Introduction to Coalgebra. Towards Mathematics of States and Observations (book draft) Yde Venema: Automata and Fixed Point Logics: a Coalgebraic Perspective. Information and Computation, 204 (2006) 637-678. CALCO 2009: Conference on Algebra and Coalgebra in Computer Science CALCO 2011