정확성 증명, 나는 프로그램 등가의 가능한 개념을 찾고 있어요 Barendregt의 순수 타입 시스템 (PTS 값)에 대한; 충분한 특정 유형 시스템의 경우 누락되었습니다. 내 목표는 단순히 개념을 사용하는 것이지, 그 자체로 조사하지 않는 것입니다.
이 개념은 " 확장 적 " 이어야합니다 . 특히 임을 증명하려면 t 1 을 증명하기에 충분해야합니다. 적절한 유형의모든 값 v .
등가
Denotational equivalence는 모든 올바른 정리를 쉽게 만족시킬 수 있지만, 임의의 PTS에 대한 denotational semantics는 다소 도전적인 것처럼 보입니다. 이미 System F에서는 어려워 보입니다.
맥락 / 관찰 적 동등성
명백한 대안은 다양한 형태의 문맥 상 등가이다 (두 가지 용어가 문맥을 구별 할 수 없다면 동등하다). 그 정의는 즉시 사용할 수 없다. 다양한 정리는 증명하기 쉽지 않다. 그들은 PTS에 대해 증명 되었습니까? 또는 이론이 "분명한 확장"이거나 이론이 크게 다를 것이라고 믿을만한 이유가 있습니까?
편집 : 나는 위의 어려운 말을하지 않았다.
쉬운 부분 : 정의
동등성을 정의하는 것은 그리 어렵지 않으며, 그 정의는 많은 논문에서 나타나고 있습니다 (최소한이 아니라면 Plotkin 1975의 PCF 연구에서 시작한 것이지만 그 출처는 1968 년 Morris의 PhD 논문 일 수 있습니다). 모든 접지 상황 C , C [ t 1 ] ≃ C [ t 2 ] , 즉 C [ t 1 ] 및 C [ t 2 ]에 대해 동일한 결과를 제공하는 경우 우리는 . 당신은 대안의 많은 여기에 몇 가지 선택이있다 : 당신은 원주민의 땅 유형이있는 경우 예를 들어, 강력하게 정상화 언어로, 당신이 그 지상의 상황이 그들이다 말할 수를 돌려 원주민 다음 ≃ B의 의미 와 B는 같은 숫자로 평가합니다. 비 종료의 경우 합리적인 언어의 경우 "X 종료"를 관찰로 사용하면 충분합니다. 종료를 관찰 할 때 두 프로그램이 동일하면 결과를 관찰 할 때도 동일하기 때문입니다.
어려운 부분 : 증거
그러나이 논문들은 종종이 정의를 실제로 사용하는 것이 얼마나 어려운지를 설명하지 않습니다. 아래의 모든 참고 문헌은이 문제를 해결하는 방법을 보여 주지만 필요한 이론은 생각보다 어렵습니다. 우리는 어떻게 증명합니까 ? 실제로 상황에 대한 사례 분석 및 유도를 수행합니까? 당신은 그렇게하고 싶지 않습니다.
Martin Berger가 지적한 바와 같이, 대신 (Pitts가 수행 한 것처럼) bisimulation 또는 논리적 동등성 관계 (Harper는 단순히 "논리적 동등성"이라고 함)를 사용하려고합니다.
마지막으로 위에서 정의한 확장 성을 어떻게 증명합니까?
Harper는 상당한 영리함과 논리적 관계를 통해 System T의 10 페이지에서 이러한 질문을 해결합니다. 피츠가 더 많이 걸립니다. 일부 언어는 아직 더 복잡합니다.
이것을 다루는 방법
나는 실제로 PTS에 대해 추측 된 동등성 이론에 근거하여 내 증거를 조건부로 시험하고 싶지만 실제 이론에는 사소한 논증이 필요하기 때문에 그러한 추측이 얼마나 될지 확신 할 수 없다.
다음 작품에 대해 잘 알고 있습니다.
- Andrew Pitts (예 : 확장 시스템 F의 경우 ATTAPL 및 58 페이지의 "작동 기반 프로그램 동등성 이론"과 같은 몇 가지 논문).
- Pitts에서 영감을 얻은 실용적인 프로그래밍 언어 기초 (제 47-48 장) (단순한 증거가 있다고 주장함).
- 프로그램 동등성에 대한 논리적 연구 . 나는 영어 초록을 찾을 수 없지만 부작용 (참조)을 위해 많은 노력을 기울이는 것 같습니다. 이는 직교 합병증처럼 보입니다.