Specialization, Feature Typing, Redefinition, and Interpretation #
Specialization(preorder)、FeatureTyping(置換補題)、
Redefinition(型のリファイン)、Interpretation(モデル理論的意味論)、
および健全性定理を定義する。
Specialization: A が B を特殊化する ⟺ A の任意のインスタンスは B のインスタンスでもある。
注: 現時点の Specialization は (specific, general) のみを保持する syntactic な
構造体であり、chain の証拠は specializes 側の命題でのみ保持する。将来 witness を
構造体に埋め込む拡張を行う場合は、本注記を更新すること(F3 参照)。
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Specialization は反射的。
Equations
- VerifiedMBSE.Core.Specialization.refl t = { specific := t, general := t }
Instances For
specializes は推移的。
Specialization は現時点では witness を持たない pair 構造体であるため、a ≤ c の
証拠は ⟨⟨a, c⟩, rfl, rfl⟩ として直接構成できる。仮説 hab, hbc は API 上は
受け取っているが、本体では使用しない(将来 Specialization に chain の witness を
追加する拡張に備えた API フック)。旧 Specialization.trans は仮説を受け取りながら
使わないデータ関数だったため削除した(F3)。
Preorder インスタンス。
Equations
- One or more equations did not get rendered due to their size.
FeatureTyping: feature に型を割り当てる関係。 型付け判断 f : A に対応する。
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
TypedFeature: Feature と FeatureTyping の整合性を保証する束。
- feature : Feature
- typing : FeatureTyping
整合性: typing は同じ feature を参照する
Instances For
置換補題による型の拡張(subsumption)。 A ≤ B, f : A ⊢ f : B
Instances For
widen は feature そのものを変えない。
widen 後の型は指定した b に一致する。
widen は推移的に合成できる(coherence)。
Redefinition: サブタイプ文脈で feature を再定義する関係。 redefining.featureType ≤ redefined.featureType という refinement 条件を要求する。
- redefining : FeatureTyping
再定義する feature(サブタイプ側)
- redefined : FeatureTyping
再定義される feature(スーパータイプ側)
型の refinement 条件
Instances For
Redefinition から widen 経由で FeatureTyping を復元する。
Equations
- r.toWidened = r.redefining.widen r.redefined.featureType ⋯
Instances For
widen 後の型は redefined の型に一致する。
feature 本体は widen 後も redefining のまま。
Redefinition の推移律。
Equations
Instances For
意味論的解釈: 各 KerMLType に担体型を割り当てる関数。 denotational semantics: ⟦ T ⟧_I := I T
Equations
Instances For
意味論的 specialization: I の下で A ≤_sem B ⟺ I A → I B の単射が存在する。
Equations
- VerifiedMBSE.Core.semanticSpecializes I a b = ∃ (f : I a → I b), Function.Injective f
Instances For
意味論的 specialization は反射的。
意味論的 specialization は推移的。
意味論的 specialization は preorder を成す。
単一点解釈(自明モデル)。
Equations
Instances For
文字列解釈(デバッグ用)。
Equations
Instances For
自明モデル下では specialization は常に成立する。
解釈がモデル条件を満たす(すべての Specialization を尊重する)。
Equations
Instances For
健全性定理: 統語的 specialization ⇒ 意味論的 specialization。
自明解釈はモデル条件を満たす。
系: 自明モデルでは統語的 specialization は常に意味論的にも成立する。