타입과 프로그래밍 언어 는 서브 타이핑에 상당히 중점을두고 있지만, 아시다시피 서브 타이핑은 특히 기본적으로 보이지는 않습니다. 하위 유형 지정은 종속 유형보다 더 많은 것을 제공합니까? 종속 유형 작업은 더 많은 작업이 필요하므로 하위 유형이 실제로 유용한 이유를 이해할 수 있습니다. 그러나 프로그래밍 언어의 기초가 아닌 수학의 기초로 유형 이론에 더 관심이 있습니다. 하위 유형에 많은주의를 기울여야합니까?
타입과 프로그래밍 언어 는 서브 타이핑에 상당히 중점을두고 있지만, 아시다시피 서브 타이핑은 특히 기본적으로 보이지는 않습니다. 하위 유형 지정은 종속 유형보다 더 많은 것을 제공합니까? 종속 유형 작업은 더 많은 작업이 필요하므로 하위 유형이 실제로 유용한 이유를 이해할 수 있습니다. 그러나 프로그래밍 언어의 기초가 아닌 수학의 기초로 유형 이론에 더 관심이 있습니다. 하위 유형에 많은주의를 기울여야합니까?
답변:
서브 타이핑 및 종속 유형은 직교 개념입니다.
Subtyping에는 일반적으로 Subsumption이라는 개념이 장착되어 있으므로 수퍼 타입이 예상되는 곳에 한 가지 유형의 표현이 나타날 수 있습니다.
서브 타이핑은 결정 가능성이 높으며 구현시 관리하기가 더 쉽습니다.
의존적 인 타이핑은 훨씬 더 표현력이 좋습니다. 그러나 그룹을 단일체로 간주하려면 추가 구조를 잊어 버릴 수있는 개념이 필요합니다. Coq를 사용할 때와 같이 종종 이러한 종류의 강압을 처리하기위한 사소한 증거 의무가 생성되므로 실제로 하위 유형 지정은 아무 것도 추가하지 않을 수 있습니다. 더 중요한 것은 그룹에 대해 이야기 할 때 모노 이드 이론을 재사용하는 것과 같이 재사용이 가능하도록 다양한 이론을 함께 포장하는 방법을 갖는 것입니다. Coq의 유형 클래스는 최근 이러한 작업을 수행하기위한 혁신입니다. 모듈은 오래된 접근법입니다.
"subtyping dependent types"에 대한 빠른 구글을한다면 대부분 2000 년경에 의존형에 하위 유형을 추가하는 작업을 발견 할 수 있습니다. 증거 조수.
그러나 프로그래밍 언어의 기초가 아닌 수학의 기초로 유형 이론에 더 관심이 있습니다. 하위 유형에 많은주의를 기울여야합니까?
subtyping이 제공하는 한 가지 추가 사항은 subsumption이 많은 일관성 속성을 보유한다는 것을 의미합니다. 종속 유형 이론은 하위 유형으로 수행 할 수있는 모든 것을 모델링하기 위해 증거 관련성이 없다는 개념도 필요합니다. 예를 들어, 종속 유형 이론에서 종속 레코드를 사용하여 서브 세트를 구성하는 것을 근사 할 수 있습니다.
그런 다음 종속 유형 이론에 대한 하위 분류를 체계적으로 정교하게 만들 수 있습니다. 종속 형 이론 (이 경우에는 Twelf)에 하위 유형을 추가하는 예는 William Lovas 의 논문을 참조하십시오 .