実体〈entity | thing | stuff〉に対して、そのアビタ(直接的)とアビタベース(間接的)の区別がついてなかったのではないか? アビタは型インスタンスの型クラスと言っていいが、アビタベースはベース型クラスとは違う概念。
- アビタベース=“指標のターゲット圏”
- ターゲット圏のアビタがアンビエント圏
オブジェクト指向との関係で言えば:
- オブジェクト・インターフェイス=単ソート隠蔽指標=余代数指標
- オブジェクト・インターフェイスの型クラス=モデル圏
- オブジェクト・クラス=“オブジェクト・インターフェイスのモデル”=型インスタンス=モデル圏の対象=余代数
- オブジェクト=オブジェクト・クラスの状態点
- マルチオブジェクト=オブジェクト・クラスの直積の状態点
クラス継承は、型階層とは分離して考えたほうがいい。継承を型システム内で考えると無様な事になる。継承グラフは、型階層グラフの部分グラフであるが別物、型理論では議論しない、out-of-scope。
Jave | 擬似言語 |
---|---|
D extends C | D inherits C |
J extends I | J extends C |
C implements I | C satisfies I, C typeinstanceof I |
オブジェクト・クラスCの、直接のアビタである型クラス達を T1, ..., Tk とすると、これは型クラスのk-コスパンとなる。ファイベー積=余極限で、型クラスを加工・構成する。指標側で余極限なので、モデル側では極限になる。
もう一度区別すべき概念:
- 指標とモデルは違う。
- 指標は余極限で加工・構成され、モデルは極限で加工・構成される。
- 指標はモデル圏を定義する。個別モデルを定義しない(タイト意味論では定義するが)。
- モデル圏の対象は関手である。
- モデルのアビタとアビタベースは違う。
- アビタベースはモデルのターゲット圏である。