このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

圏論とオブジェクト指向:資料編

圏論とオブジェクト指向で:

以下は、説明は全部省略して、単に僕が見ている“景色”を述べるだけです、あしからず。

と書いたのですが、参考になりそうなURLだけ記しておきます。

インスティチューションの中心人物はGoguen(http://www.cs.ucsd.edu/users/goguen/)です。彼のインスティチューション・ページ(http://www.cs.ucsd.edu/~goguen/projs/inst.html)をハブに使えます。

抽象モデル論という発想はバーワイズ(Barwise)が先のようですが、文(sentence、命題、制約)の集合を天下りに“単なる集合SenΣ”にしてしまったところが、Goguen/Burstallの割り切り。バーワイズもGoguenも、分野横断的に精力的な活動をしていて、現代のプチ“ダ・ビンチ”という感じですね。

Maude(http://maude.cs.uiuc.edu/)やCASLhttp://www.cofi.info/CASL.html)などの仕様記述言語では、背後にインスティチューションがあります。例えば、CASLをやっているTill Mossakowski(http://www.tzi.de/~till/)はインスティチューションの具体的な使い方をいろいろ書いています。二木スクールによる国産の仕様記述言語(と実行系)CafeOBJもインスティチューションで解釈されますね。CafeOBJのホームページがどこかよくわからないのだけど、http://www.jaist.ac.jp内を探せば資料はイッパイ。

余代数については、Bart Jacobs(http://www.cs.ru.nl/~bart/)とJan Rutten(http://homepages.cwi.nl/~janr/)が解説・啓蒙的な論文も書いています。例えば、Jacobsの"Coalgebras in Specification and Verification for Object-Oriented Languages" (1999) とかはオブジェクト指向言語が話題。JacobsはJava形式意味論とかも随分やっています。最近は "Introduction to Coalgebra. Towards Mathematics of States and Observations" という本を執筆中だそうです。余代数の教科書的読み物としてRuttenの"Universal coalgebra: a theory of systems" (2000) がよく引用されます。けっこうな量があるので僕は読んでませんけど(苦笑)。

終余代数のまじめな構成では、Aczelが言い出した、基礎の公理を仮定しない(むしろ積極的に否定する)集合論(ZFC - 基礎の公理 + 反基礎の公理)が使われるようですが、僕はよく分かりません。Lawrence C. Paulson "Final Coalgebras as Greatest Fixed Points in ZF Set Theory" (1999) →http://citeseer.ist.psu.edu/paulson99final.html とか(かな?)。([追記]日本語で読める資料がありました。http://web.sfc.keio.ac.jp/~mukai/2003-gainen/zfcafa.pdf[/追記]

マイナーな話ですが、実数を余代数とみなすこともできるそうです。D. Pavlovic, V. Pratt "On Coalgebra of Real Numbers" (1999)→http://citeseer.ist.psu.edu/pavlovic99coalgebra.html、D. Pavlovic, V. Pratt "The Continuum as a Final Coalgebra" (1999)→http://citeseer.ist.psu.edu/pavlovic99continuum.html など。

他に、バーコフ(Birkhoff、Berkoffじゃない)の定理の双対が成立するとか(Steve Awodey, Jesse Hughes "The Coalgebraic Dual Of Birkhoff's Variety Theorem" (2000)→http://citeseer.ist.psu.edu/awodey00coalgebraic.html、Robert Goldblatt "What is the Coalgebraic Analogue of Birkhoff's Variety Theorem?" (2000)→http://citeseer.ist.psu.edu/goldblatt00what.html)、様相論理と相性がいいとか(http://www.cs.le.ac.uk/people/akurz/cml.htmlから色々たどれる)、余代数には良い点がいろいろあります。


隠蔽代数は余代数ほどには盛り上がってないみたいな。とりあえず、Joseph Goguen, Grant Malcolm "A Hidden Agenda" (1997)→http://citeseer.ist.psu.edu/62277.html がハシリでしょうか。隠蔽代数は(僕には)自然に見えますが、余代数に比べると複雑過ぎるのかな? 両代数(dialgebra)という定式化もありますが、これはよく知らない。

モゴモゴな話

インスティチューションに証明系を付けたものは、entailment systemとかπインスティチューションとか呼ばれるもので既にあります。が、これの“証明”とは仕様記述言語(または制約記述言語)レベルの証明で、古典的な“プログラムの証明”とはどうもストレートに結びつかないのです。

プログラムの証明は、厳密なソースコードレビューみたいなもんだけど、ソースコードに対応するフォーマルな概念が見あたらないのね。だから、ソースレベルの変換とか合成とかを記述すべき場所が分からない。ホーア式のような形でSenΣのなかにソース断片を押し込めるけど、なんか気色悪いよ。

で、「ソースコード(構文的対象)に対応する圏論的概念てなによ?」が最近の疑問。