このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

モデルの概念と理論

システム全体もひとつの指標を持つから、それをシステム指標と呼び、Ωで表す。システム指標に含まれる名前はso-called大域名で、いつでもどこからでも自由に参照できる。

システム指標Ωの環境(文脈)下にあるトランスフォーマーtを次のように書く。

  • Ω| t:Σ→Γ

なにをシステム指標とみなすかは勝手なので、

   Ω| t:Σ, Σ'→Γ
  --------------------
   Ω, Σ| t':Σ'→Γ


   Ω, Ω'| t:Σ→Γ
  --------------------
   Ω| t':Ω',Σ→Γ

これは重要で、システムをライブラリで拡張したり、カーネル機能をユーザーランドで実装したりに相当する。システムとユーザープログラムの境界は動かしてよい

トランスフォーマーtに対して、それが定義する置換子をtと書く。次の関係がある。


Ω| t:Σ→Γ
---------------
t:Γ→(Ω,Σ)

(-)は、指標=コンピュータッドから圏を作る演算子

トランスフォーマーと置換子〈サブスティテューター | substitutor〉の違いは:

  • トランスフォーマーはシステムに対して相対的だが、置換子は絶対的に記述する。
  • 向きが逆である。

よって、次のように考えればよい。

  1. まず、置換子の圏を考える。対象は指標。
  2. 指標の順次併置演算#をモノイド積と考えて、モノイド圏とする。
  3. Ωによるモノイダル・スタンピングモナド Ω#(-) を考える。
  4. さらに、(Ω#(-))* を考える。(-)*はクリーネ/ストリート・スター。クリーネ/ストリート・スターは、コムキャット随伴性から作られるモナドの台関手。
  5. Ωごとに、このモナドのクライスリ圏を生やす。
  6. クライスリ圏は反対圏を取る。
  7. インデックス付き圏が出来る。
  8. グロタンディーク射は、クロスプラットフォーム・シミュレーション


ここで、「同義語・類義語・多義語」の問題を述べる。

システム指標は次のように言っても同じ。

  1. 環境
  2. 文脈
  3. 組み込み指標
  4. コア指標
  5. カーネル指標
  6. ニュークリアス

システムとは、システム指標Ωと ω:Ω→Set(厳密には、忘却関手で移したSet)として定義したいが、ωのことは、

  1. 表示〈denotation〉
  2. モデル
  3. 代数(指標Σの代数)
  4. セマンティクス〈意味〉
  5. (抽象)実装
  6. 抽象機械
  7. 仮想機械
  8. (抽象)アーキテクチャ
  9. (抽象)仕様
  10. (抽象)ランタイムシステム
  11. (抽象)実行系
  12. (抽象)エンジン
  13. 実行環境
  14. プラットフォーム

などなど、山のような同義語・類義語。組み合わせも考えると

  • { | 抽象 | 仮想 | 概念}{ | ランタイム | 実行 | 実行時}{システム | 系 | 実装 | エンジン | 機械 | コンピュータ | ハードウェア | 環境 | 仕様 | アーキテクチャ}

ここでは「モデル」を使用する。システム指標とシステムモデルがシステム(プログラムの実行環境)を定義する。モデルに域・余域の概念は入っているから、「システム=Ωが域であるモデル」。

構文的なインスタンスとは、引数指標を持たない(空である)トランスフォーマーt

  • Ω| t:→Σ

tは、Σのインスタンス(instance of Σ)と呼ぶ。tの置換子は、

  • t:Σ→Ω* in Com

置換子は、コンピュータッド圏に働くクリーネ/ストリート・スターのクライスリ射と考える。システム指標Ωにはシステムモデル ω:Ω→Setがあったから、インスタンスの置換子とシステムモデルを結合すると、指標Σ上のモデル ω':Σ→Set が出来る。

  • [ω, ω']:Ω#Σ→Set

これは、システムをΣ-インスタンス(基礎ライブラリ)で拡張〈enhance〉したものになる。

別な見方として:

この見方から、

とも言える。しかし、インスタンスがモデルそのものではなくて、インスタンス(というトランスフォーマー)の置換子を通じて、システムモデル(決っている)が引き戻される。

ここで、システムモデルを色々と動かしてみると、インスタンスtは、

  • Ωのモデルの圏[Ω, Set]からΣのモデルの圏[Σ, Set]への関手を定義する。

この事実により、Standard MLではトランスフォーマーを関手と呼ぶ。

次のモノの相互関係を調べることが大事。

  • 指標
  • システム指標(ただし、色々と動かす)
  • トランスフォーマー(システム指標に相対的)
  • システムモデル
  • 一般のモデル
  • モデル圏(可能なモデルをすべて考える)
  • インスタンストランスフォーマーの一種、モデルとは区別)
  • 指標のスタンピングモナド
  • 指標のクリーネ/ストリート(・スター)・モナド
  • 指標(コンピュータッド)と置換子の圏に働くモナドと、モナドを利用した初等関手。
  • 特殊な射としての値と述語の概念

指標と置換子/トランスフォーマーの理論は、(0,1)-論理のような気がしている。

(-1, 0)-論理 (0, 1)-論理
集合 指標(圏 and/or コンピュータッド)
単元集合 自明な指標
空集合 空な指標
Xの値=要素=点 Σのインスタンス
関数 変換子 and/or トランスフォーマー
関数の大域環境 トランスフォーマーの環境
ブール集合 集合圏
述語 モデル
述語集合 モデル圏
直和スタンピング マージスタンピング
ベキ集合モナド モデル圏モナド
部分集合ファイブレーション モデル・ファイブレーション
ホーア論理 シミュレーションの理論
ラムダ計算 パラメータ化計算