컴파일러 검증 노력은 종종 컴파일러가 완전히 추상적임을 입증하기 위해 내려집니다. 즉, (상황적인) 동등성을 보존하고 반영한다는 것입니다.
완전한 추상화 증명을 제공하는 대신, Hasegawa [ 1 , 2 ] 및 Egger et al.의 최근 (범주 기반) 컴파일러 검증 작업 알. [ 3 ]은 다양한 CPS 번역의 완전성을 증명합니다.
질문 : 완전 완전성과 완전 추상화의 차이점은 무엇입니까?
나에게 완전성은 번역에 대한 동등성 반영처럼 보이고 충만 성은 동등성 보존의 결과 인 것으로 보인다.
참고 : Curien [ 7 ]과 Abramsky [ 8 ] 모두 정의 가능성, 완전 추상화 및 어느 정도 완전한 완전성 사이의 관계를 탐색합니다. 나는이 자료가 내 질문에 대한 답을 가지고 있다고 생각하지만 표면을 읽은 후에는 아직 그것을 확인하지 못했습니다.
어떤 배경 : 용어 "전체 완성도는"Abramsky 및 Jagadeesan [에 의해 만들어졌다 4 곱셈 선형 논리의 게임 - 의미 론적 모델의 정확성을 특성화하기].
Blute [ 5 ]는 다음 정의를 제공합니다.
하자 무료 카테고리합니다. 우리는 범주 형 모델 이 F에 대해 완전히 완성 되었거나 발전기에 대한 일부 해석과 관련하여 고유 한 자유 functor 인 경우 M 과 관련하여 F의 완전 완성도를 가진다고 말합니다 . 이 가득 찼습니다.
내가 알 수있는 한, [ 6 ]의 하세가와 는 범주 적 의미 론적 모델 대신 프로그램 번역을 설명하기 위해 완전한 완성도를 가장 먼저 적용한 것이다. 이 경우 지라드는 단순히 입력 된 람다 미적분에서 선형 람다 미적분으로 변환됩니다. 나중에 [ 1 ]에서 그는 CPS 번역 완전성을 다음과 같이 정의합니다 .
경우 ; ∅ ⊢ N : ( σ ∘ → O ) ⊸ O 에서 유도되는 선형 람다 계산법 후 존재 되도록 계산 람다 계산법에 는 선형 람다 미적분을 유지합니다.
여기서 는 선형 람다 미적분 (대상 언어)의 기본 유형이지만 계산 람다 미적분 (소스 언어)의 기본 유형은 아닙니다.
나에게, 하세가와의 정의는 충만처럼 보이고 완전 완전성을 얻기 위해 완전성과 완전하게 결합되어야합니다.
에거 등. 알. [ 3 ] CPS 번역의 완전성 를 (1) 완전성 및 (2) 완전성 조합으로 정의합니다.
(1) : 및 Θ v | − ⊢ M v = β η N v : ! τ v 그리고 Θ ⊢ M = λ c N : τ
(2) : 다음 용어가 존재 Θ ⊢ M을 : τ 등이 Θ의 V | − ⊢ M v = β η t : ! τ v
(여기서 는 Moggi의 계산 방정식 이론입니다)
[1] " 선형 적으로 사용 된 효과 : 선형 Lambda 미적분학으로의 Monadic 및 CPS 변환 ", Hasegawa 2002
[2] " Hasegawa 2004, 이름 별 선형 연속 통과의 의미 "
[3] " 풍부한 효과 미적분학에서의 선형 사용 CPS 번역 ", Egger et al. 알. 2012 년
[4] " 승리 선형 논리를위한 게임 및 완전성 ", Abramsky 및 Jagadeesan 1992
[5] " 선형 논리학자를위한 범주 이론 ", Blute 2003
[6] " 지라드 번역 및 논리 술어 ", 하세가와 2000
[7] " 정의 및 완전 추상화 ", Curien 2007
[8] " 정의 및 완전성을위한 원칙 ", Abramsky 1999