2
プログラム翻訳の完全な完全性と完全な抽象化
コンパイラー検証の努力は、多くの場合、コンパイラーが完全に抽象的であることを証明することに帰着します。つまり、(コンテキストの)同等性を保持および反映します。 代わり長谷川[により、いくつかの最近(カテゴリベース)コンパイラ検証作業を完全抽象プルーフを提供する1、2 ]とエッガーら。等 [ 3 ]さまざまなCPS翻訳の完全性を証明します。 質問: 完全な完全性と完全な抽象化の違いは何ですか? 私にとって、完全性は翻訳の等価性の反映のように見え、完全性は等価性の保存の結果であるように見えます。 注:Curien [ 7 ]とAbramsky [ 8 ]はともに、定義可能性、完全な抽象化、およびある程度完全な完全性の間の関係を調査します。これらのリソースには私の質問に対する答えがあるかもしれませんが、表面を読んだ後、私はまだそれを確認していません。 背景:「完全な完全性」という用語は、乗算線形論理のゲームセマンティックモデルの正確さを特徴付けるために、アブラムスキーとジャガディーサン[ 4 ] によって作られました。 Blute [ 5 ]は以下の定義を提供します: してみましょうFF\mathcal{F}無料カテゴリなります。私たちは、カテゴリモデルと言う MM\mathcal{M}あるため、完全に完全に FF\mathcal{F}または我々が持っていること の完全な完成度FF\mathcal{F}に関してMM\mathcal{M}の発電機のいくつかの解釈に関して、場合、ユニークな無料ファンクタ[[−]]:F→M[[−]]:F→M[\![ - ]\!] : \mathcal{F} \rightarrow \mathcal{M}がいっぱいです。 私の知る限り、[ 6 ]の長谷川は、完全な完全性を適用して、カテゴリーの意味モデルではなくプログラムの翻訳を記述する最初の人物です。この場合、ギラード変換は、単純に型指定されたラムダ計算から線形ラムダ計算になります。後に、[ 1 ]で、彼はCPS翻訳の完全性 definesを次のように定義しています(⋅)∘(⋅)∘(\cdot)^\circ。 もしで誘導線形ラムダ計算は、存在Γ ⊢ Mは:σように計算ラムダ計算におけるΓ ○は。∅ ⊢ M ∘ = N :(σ …