コンパイラー検証の努力は、多くの場合、コンパイラーが完全に抽象的であることを証明することに帰着します。つまり、(コンテキストの)同等性を保持および反映します。
代わり長谷川[により、いくつかの最近(カテゴリベース)コンパイラ検証作業を完全抽象プルーフを提供する1、2 ]とエッガーら。等 [ 3 ]さまざまなCPS翻訳の完全性を証明します。
質問: 完全な完全性と完全な抽象化の違いは何ですか?
私にとって、完全性は翻訳の等価性の反映のように見え、完全性は等価性の保存の結果であるように見えます。
注:Curien [ 7 ]とAbramsky [ 8 ]はともに、定義可能性、完全な抽象化、およびある程度完全な完全性の間の関係を調査します。これらのリソースには私の質問に対する答えがあるかもしれませんが、表面を読んだ後、私はまだそれを確認していません。
背景:「完全な完全性」という用語は、乗算線形論理のゲームセマンティックモデルの正確さを特徴付けるために、アブラムスキーとジャガディーサン[ 4 ] によって作られました。
Blute [ 5 ]は以下の定義を提供します:
してみましょう無料カテゴリなります。私たちは、カテゴリモデルと言う あるため、完全に完全に または我々が持っていること の完全な完成度に関しての発電機のいくつかの解釈に関して、場合、ユニークな無料ファンクタがいっぱいです。
私の知る限り、[ 6 ]の長谷川は、完全な完全性を適用して、カテゴリーの意味モデルではなくプログラムの翻訳を記述する最初の人物です。この場合、ギラード変換は、単純に型指定されたラムダ計算から線形ラムダ計算になります。後に、[ 1 ]で、彼はCPS翻訳の完全性 definesを次のように定義しています。
もしで誘導線形ラムダ計算は、存在Γ ⊢ Mは:σように計算ラムダ計算におけるΓ ○は。∅ ⊢ M ∘ = N :(σ ∘ → O )⊸ O線形ラムダ計算に保持します。
(は線形ラムダ計算(ターゲット言語)の基本型ですが、計算ラムダ計算(ソース言語)ではありません。)
私にとっては、長谷川の定義は完全性のように思えるので、完全性を得るには完全性と組み合わせる必要があります。
Egger et。等 [ 3 ] CPS変換の完全な完全性を(1)完全性と(2)完全性の組み合わせとして定義する:
(1):もしとΘのV | - ⊢ MのV = β η N V:!τ V次にΘ ⊢ M = λ C N :τ
(2):もし、その後用語が存在 Θ ⊢ M :τようΘのVは| - ⊢ MのV = β η T :!τ V
(ここで Moggiの計算等式理論です)
[1]「線形に使用される効果:線形ラムダ計算への単項およびCPS変換」、長谷川2002
[2]「名前による連続継続受渡しの意味論」、長谷川2004
[3]「強化効果計算における線形使用CPS翻訳」、Egger et。等 2012
[4]「乗法線形論理のゲームと完全な完全性」、アブラムスキーとジャガディーサン1992
[5]「線形論理学者のカテゴリー理論」、Blute 2003
[6]「ジラール翻訳と論理述語」、長谷川2000
[7]「定義可能性と完全な抽象化」、Curien 2007
[8]「定義可能性と完全な完全性の公理」、アブラムスキー1999