量子計算
非常に興味深い分野の1つは、量子計算へのさまざまなモノイドカテゴリの適用です。これも物理学であると主張する人もいますが、その作業はコンピューターサイエンス部門の人々によって行われています。この分野の初期の論文は、Samson AbramskyとBob Coeckeによる量子プロトコルのカテゴリーセマンティクスです。多くの最近の論文AbramskyとCoeckeと他の人がこの方向で作業を続けます。
この一連の作業では、量子プロトコルは(特定の種類の)コンパクトな閉じたカテゴリとして公理化されています。このようなカテゴリには、文字列(およびリボン)ダイアグラムの観点から見た美しいグラフィカル言語があります。このカテゴリの方程式は、絡み合っているが結び目のないストリングをまっすぐにするなど、ストリングの特定の動きに対応しており、量子テレポーテーションなどの量子力学で意味のある何かに対応しています。
カテゴリカルアプローチは、通常非常に低レベルの計算に関係するものについて、高レベルで論理的なビューを提供します。
システムの理論
Coalgebraは、システム(ストリーム、オートマトン、遷移システム、確率システム)をモデル化するための一般的なフレームワークとして使用されています。その理論はカテゴリ理論に根ざしており、 -coalgebraの概念に基づいています。ここで、
は遷移システムの構造を記述するファンクターです。したがって、基礎となるファンクターによってシステムの種類は変わりますが、バイシミュレーションの概念など、理論の多くはすべてのファンクターに適用できます。カテゴリ理論はまた
、代数として記述されるシステムについて推論するためのモーダルロジックのモジュール構造を可能にします。FF
グラフ変換
グラフ変換は、カテゴリー理論の言語で非常にうまく表現できます。これにより、たとえば、モデル変換(UMLモデルなど)やその他の視覚的モデリングの定式化に用途が見つかりました。このアプローチは、グラフとグラフ準同型のカテゴリで行われます。第一に、押し出しは、接着構造として見ることができる2つのグラフを考える。グラフと2つの射型および
は、2つのグラフに共通する部分を示します。はこれらの部分をし、と残りの部分を追加し、実際にはと
一緒に接着し P e 1:P → G 1 e 2:P → G 2 G 1 G 2 G 1 G 2 PG1,G2Pe1:P→G1e2:P→G2G1G2G1G2P。
二重押し出しは、グラフの変換を説明するために使用されます。ルールはタプルで表されます 。ここで、はルールの前提条件を示し、はルールの事後条件を示し、はルールを適用するグラフの部分を示します。およびからのマップがあり、一方は元のグラフの一部と一致するために使用され、他方は結果のグラフを作成するために使用されます。は、グラフの削除する部分を示します。は、作成されるパーツを記述します。からコンテキスト
へのマップL R K l :K → L r :K → R L ∖ K R ∖ K d K D d l G d k(L,K,R)LRKl:K→Lr:K→RL∖KR∖KdKグラフを提供する必要があり、のプッシュアウト とマップは対象のグラフに等しくする必要があります。とのプッシュアウトにより
、変換を実行した結果が得られます。DdlGdk
プログラミング言語(MathOverflow経由)
プログラミング言語とプログラミング言語理論の設計には、カテゴリー理論の応用がたくさんあります。広範な答えはMathOverflowにあります。https://mathoverflow.net/questions/3721/programming-languages-based-on-category-theory)
https://mathoverflow.net/questions/4235/relating-category-theory-to-programming-language-theory。
Bigraphs-プロセス計算
最後に、相互作用するエージェントのシステムについて説明し、推論するための一般的なフレームワークであるMilnerのbigraphsがあります。それは、プロセス代数とその構造的および行動的理論について推論するための一般的なフレームワークとして見ることができます。このアプローチはプッシュアウトにも基づいています。