종속 유형, 개선 유형 및 Hoare Logic의 차이점


18

나는 의존형 이론이 거의 없다. Wikipedia에서 :

종속 유형은 정의가 값에 따라 달라지는 유형입니다.

그리고 내 유형 이론 과정에서 나는 종속 유형이 다음과 같습니다.

유형별로 인덱싱 된 유형의 패밀리입니다.

그러나 나는 의존적 유형과 개선 유형 및 논리에 관한 혼란이 있습니다.

에서하기 때문에 Depenedent 정제 대 입력 호어의 논리와 같은 정제 타입의 외모를. 만족해야 할 조건을 명시하는 것 외에 더 많은 전력 개선 유형이 제공하는 것은 무엇입니까 (Hoare Logic과 거의 같은 모양)?

정제 유형과 비교하여 종속 유형이 제공하는 추가 사항은 무엇입니까? 그리고 구체화 유형 + 토 / 제한 솔버보다 강력한 종속 유형입니다.

누구나 예를 들어 공기를 맑게 할 수 있습니다.

답변:


18

Paul-André Melliès와 Noam Zeilberger의 최근 연구가 이를 탐구합니다. 특히 논문 펑 터는 타입 리파이너먼트 시스템타입 리파이너먼트 시스템대한 Isbell Duality Theorem입니다 . 첫 번째 대화에 대한 비디오도 있습니다.

특정 시스템을 대표로 생각하는 사람들로 인해 세분화 유형에 많은 혼란이 있다고 생각합니다. 특정 시스템의 목표와 세부 사항은 일반적인 아이디어에 기인합니다. 그것의 단점은 유형 정제 시스템이 독립적으로 존재하는 용어를 분류하는 반면에 (비 정제) 유형은 종속적이거나 달리 용어의 일부입니다. 이것은 친숙하고 어쩌면 약간 모순 될 수 있습니다.

잠재적으로 친숙하고 모순적인 것처럼 보이는 부분은 카레 유형 (외부)과 교회 유형 (내부)을 볼 때 발생합니다. La Curry 유형을 생각할 때, 유형은 이미 의미가있는 유형화되지 않은 용어를 분류하는 것으로 생각합니다. 교회에서 유형이 존재하는 유일한 용어는 잘 정의 된 용어입니다. 즉, 유형 제약 조건은 구문의 일부입니다. 카레 스타일 시스템은 실제로 유형화되지 않은 용어를 수정하는 타입 개선 시스템이고, 교회 스타일 타입 시스템은 타입 개선 시스템이 아닙니다. 즉, 예를 들어 단순 유형의 람다 미적분을 유형 개선 시스템 또는 비 정제 유형 시스템으로 생각할 수 있습니다.

물론 아무도 우리의 용어가 유형이 지정되지 않은 용어 여야한다고 말하지는 않습니다. 유형 구체화 시스템을 유형이 지정된 용어에 적용 할 수도 있으며, 역사적으로 이것은 구체화 유형 (해당 이름으로)이 발생하는 상황입니다. 그러나 소프트 타이핑 응용 프로그램은 위에서 설명한 상황에 더 가까운 것을 보여줍니다.

지금까지 나는 종속 유형에 대해 아무 말도하지 않았습니다. 그 이유는 그것이 완전히 직교하는 관심사이기 때문입니다. 나는 전형적인 종속 의존형 시스템은 일반적으로 교회 스타일로 제시되므로 유형 개선 시스템이 아니라 NuPRL ( 가장 전형적인 의존형 이론, Martin-Löf 유형 이론의 변형 인 Computational Type Theory 에 기반을두고 있음) 이라고 말할 것이다. 내가 설명했듯이 엄청나게 유형 정제 시스템입니다. NuPRL의 용어는 에는 유형 있습니다! "PRL"이 "Program Refinement Logic"을 의미한다는 사실도 팁이 될 수 있습니다. 반면 ML 에 대한 구체화 유형은 구체화 유형 시스템, 아마도 용어의 원점을 나타내며, 이는 어떤 방식 으로든 종속 유형 시스템이 아닙니다.

Hoare 트리플은 타입 정제 시스템입니다. 실제로는 첫 번째 논문에서 유형 정제 시스템의 예로 사용됩니다. 하나, Hoare Type Theory 는 Hoare Triples를 가진 언어에 대한 비정형 타입 시스템으로 볼 수있는 것을 제공합니다.

다른 시스템의 "전력"에 대한 답을 얻으려면 특정 (종속) 종속 유형 시스템과 특정 (정제) 정제 유형 시스템을 지정해야합니다. "종속적 유형 시스템"이라는 용어는 매우 광범위한 유형의 유형 시스템을 포괄하며 "유형 정제 시스템"은 훨씬 더 광범위합니다. 그럼에도 불구하고, 용어는 상호 배타적이지 않으므로 "종속 형 시스템"과 "정제 형 시스템"을 비교하지는 않을 것입니다. 그러나 "종속 형 시스템"에 의해 Coq 와 같은 것을 생각 하고 있고, "정제 형 시스템"에 대해서는 Liquid Types 와 같은 것을 생각하고 있습니다그러면 꽤 일방적입니다. Coq는 일반적으로 거의 모든 수학을 실제로 처리 할 수있을 정도로 강력하다고 생각됩니다. Coq 내에서 문자 그대로 SMT 솔버를 구현하고 입증 한 다음 사용할 수 있습니다. 서브 세트 유형과 매우 유사한 아날로그가 공식화 될 수있다. (NuPRL은 말 그대로 부분 집합 유형을가집니다.) 다른 한편으로, SMT 솔버는 일반적으로 Coq가 그러한 제한이없는 결정 가능한 이론으로 제한됩니다. Liquid Types와 같은 많은 시스템에는 술어를 지정하기위한 제한적이고 확장 할 수없는 언어가 있습니다. (물론, "종속 형 시스템"은 종속 ML을 의미 할 수 있으며 다른 방식으로 일방적 인 "유형 정제 시스템"NuPRL (종속 형 시스템이기도 함)을 의미 할 수 있습니다.


1
정말 감사합니다. 예, 실습 프로그래밍 (popl '99)에서 Dependent Types를 읽고 혼란에 빠졌습니다. 건배.
Pushpa

1
이것은 환상적인 답변입니다. 작성해 주셔서 감사합니다.
Jonathan Sterling
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.