モデルの概念と理論
システム全体もひとつの指標を持つから、それをシステム指標と呼び、Ωで表す。システム指標に含まれる名前はso-called大域名で、いつでもどこからでも自由に参照できる。
システム指標Ωの環境(文脈)下にあるトランスフォーマーtを次のように書く。
- Ω| t:Σ→Γ
なにをシステム指標とみなすかは勝手なので、
Ω| t:Σ, Σ'→Γ -------------------- Ω, Σ| t':Σ'→Γ Ω, Ω'| t:Σ→Γ -------------------- Ω| t':Ω',Σ→Γ
これは重要で、システムをライブラリで拡張したり、カーネル機能をユーザーランドで実装したりに相当する。システムとユーザープログラムの境界は動かしてよい。
トランスフォーマーtに対して、それが定義する置換子をt←と書く。次の関係がある。
Ω| t:Σ→Γ
---------------
t←:Γ→(Ω,Σ)◇
(-)◇は、指標=コンピュータッドから圏を作る演算子。
トランスフォーマーと置換子〈サブスティテューター | substitutor〉の違いは:
- トランスフォーマーはシステムに対して相対的だが、置換子は絶対的に記述する。
- 向きが逆である。
よって、次のように考えればよい。
- まず、置換子の圏を考える。対象は指標。
- 指標の順次併置演算#をモノイド積と考えて、モノイド圏とする。
- Ωによるモノイダル・スタンピングモナド Ω#(-) を考える。
- さらに、(Ω#(-))* を考える。(-)*はクリーネ/ストリート・スター。クリーネ/ストリート・スターは、コムキャット随伴性から作られるモナドの台関手。
- Ωごとに、このモナドのクライスリ圏を生やす。
- クライスリ圏は反対圏を取る。
- インデックス付き圏が出来る。
- グロタンディーク射は、クロスプラットフォーム・シミュレーション
ここで、「同義語・類義語・多義語」の問題を述べる。
システム指標は次のように言っても同じ。
- 環境
- 文脈
- 組み込み指標
- コア指標
- カーネル指標
- ニュークリアス
システムとは、システム指標Ωと ω:Ω→Set(厳密には、忘却関手で移したSet)として定義したいが、ωのことは、
- 表示〈denotation〉
- モデル
- 代数(指標Σの代数)
- セマンティクス〈意味〉
- (抽象)実装
- 抽象機械
- 仮想機械
- (抽象)アーキテクチャ
- (抽象)仕様
- (抽象)ランタイムシステム
- (抽象)実行系
- (抽象)エンジン
- 実行環境
- プラットフォーム
などなど、山のような同義語・類義語。組み合わせも考えると
- { | 抽象 | 仮想 | 概念}{ | ランタイム | 実行 | 実行時}{システム | 系 | 実装 | エンジン | 機械 | コンピュータ | ハードウェア | 環境 | 仕様 | アーキテクチャ}
ここでは「モデル」を使用する。システム指標とシステムモデルがシステム(プログラムの実行環境)を定義する。モデルに域・余域の概念は入っているから、「システム=Ωが域であるモデル」。
構文的なインスタンスとは、引数指標を持たない(空である)トランスフォーマーt
- Ω| t:→Σ
tは、Σのインスタンス(instance of Σ)と呼ぶ。tの置換子は、
- t←:Σ→Ω* in Com
置換子は、コンピュータッド圏に働くクリーネ/ストリート・スターのクライスリ射と考える。システム指標Ωにはシステムモデル ω:Ω→Setがあったから、インスタンスの置換子とシステムモデルを結合すると、指標Σ上のモデル ω':Σ→Set が出来る。
- [ω, ω']:Ω#Σ→Set
これは、システムをΣ-インスタンス(基礎ライブラリ)で拡張〈enhance〉したものになる。
別な見方として:
- Σのインスタンスにより、Σ上のモデルが1つ定義される。
この見方から、
- Σのインスタンスとは、Σのモデルである。
とも言える。しかし、インスタンスがモデルそのものではなくて、インスタンス(というトランスフォーマー)の置換子を通じて、システムモデル(決っている)が引き戻される。
ここで、システムモデルを色々と動かしてみると、インスタンスtは、
- Ωのモデルの圏[Ω, Set]からΣのモデルの圏[Σ, Set]への関手を定義する。
この事実により、Standard MLではトランスフォーマーを関手と呼ぶ。
次のモノの相互関係を調べることが大事。
- 指標
- システム指標(ただし、色々と動かす)
- トランスフォーマー(システム指標に相対的)
- システムモデル
- 一般のモデル
- モデル圏(可能なモデルをすべて考える)
- インスタンス(トランスフォーマーの一種、モデルとは区別)
- 指標のスタンピングモナド
- 指標のクリーネ/ストリート(・スター)・モナド
- 指標(コンピュータッド)と置換子の圏に働くモナドと、モナドを利用した初等関手。
- 特殊な射としての値と述語の概念
指標と置換子/トランスフォーマーの理論は、(0,1)-論理のような気がしている。
(-1, 0)-論理 | (0, 1)-論理 |
---|---|
集合 | 指標(圏 and/or コンピュータッド) |
単元集合 | 自明な指標 |
空集合 | 空な指標 |
Xの値=要素=点 | Σのインスタンス |
関数 | 変換子 and/or トランスフォーマー |
関数の大域環境 | トランスフォーマーの環境 |
ブール集合 | 集合圏 |
述語 | モデル |
述語集合 | モデル圏 |
直和スタンピング | マージスタンピング |
ベキ集合モナド | モデル圏モナド |
部分集合ファイブレーション | モデル・ファイブレーション |
ホーア論理 | シミュレーションの理論 |
ラムダ計算 | パラメータ化計算 |