指標のパラメータ化とグロタンディーク構成 - 檜山正幸のキマイラ飼育記 (はてなBlog)の応用。
次の3つは同値。
- B inherits A where interfaceOf(A) = Δ, interfaceOf(B) = Σ = Δ +> Σ'
- B implements (A)Σ'
- B realizes (Δ)B' by A where (Δ)B':〚Δ〛→〚Σ〛
別な言い方をすると、次の3つの手法は(原理的には)同値:
上で使った書き方:
- ナニヤラ where アーダコーダ : ナニヤラに含まれる未定義語・記号をアーダコーダと後から説明・定義。
背後の定義:
- B inherits A :⇔ B implements Σ, A implements Δ, Σ = Δ +> Σ'
- A implements Δ :⇔ A ∈0 〚Δ〛 where 〚Δ〛はインターフェイスΔのクラス圏=Δの型クラス
- B realize F by A :⇔ B = F(A)
呼び名:
- Δ, Σ : インターフェイス。意味はクラス圏。
- Σ' : インターフェイス断片
- A, B : クラス定義またはクラス実体。A と 〚A〛 の区別を曖昧化している。意味はクラス実体=クラス圏の対象。
- B' : クラス定義断片。意味は定義できない。
- (Δ)Σ' : パラメータ付きインターフェイス。意味はインデックス付き圏。
- (A)Σ' : パラメータを具現化したインターフェイス。意味は、インデックス付き圏の値としての圏。
- (Δ)B' : パラメータ付きクラス、抽象クラス。意味はクラス圏のあいだの関手。
- (A)B' : 関手の値としてのクラス。
オマケ:
- 集合圏=集合を対象とする圏
- 行列圏=行列を射とする圏
- しりとり圏=しりとり結合を結合とする圏
- モノイド圏=モノイド構造を持つ圏
- モノイドの圏=モノイドを対象とする圏