Martin-Löf 유형 이론 소개


36

타입 이론에 대한 Per Martin-Löfs 아이디어에 대한 가장 좋은 소개는 무엇입니까? 나는 오레곤 PL 여름 학교에서 강의를 보았지만 여전히 다음 질문에 의아해합니다.

유형은 무엇입니까?

일반적인 ZF 공리로 정의 할 수 있고 매우 직관적 인 콘크리트 모델이 있기 때문에 세트가 무엇인지 알고 있습니다. 물건으로 가득 찬 바구니를 생각하십시오. 그러나 나는 유형에 대한 합리적인 정의를 아직 보지 못했고 더미에 대한이 아이디어를 증류시키는 소스가 있는지 궁금합니다.


4
HoTT 책에는 유형과 세트를 비교하는 소개가 있으며, 아마도 도움이 될 것입니다 . homotopytypetheory.org/book 섹션 1.1을 참조하십시오 . 그러나 더 중요한 것은, 우리가 머리에 올바른 유형의 아이디어를 직접 임플란트하는 반면, 세트의 경우 "실제로 무엇인지"알지 않고도 공리로 설명하는 것을 기쁘게 생각합니다. 유형은 유형에 대한 추론 규칙으로 설명됩니다. 레고 블록으로 가득 찬 매우 직관적 인 콘크리트 모델을 가지고 있습니다. 당신이 그들로부터 만들 수있는 것은 유형에 있습니다.
Andrej Bauer

내 두뇌를 정해진 이론에서 벗어나는 것이 가장 큰 문제라고 생각합니다. 그러나 레고 유추가 얼마나 좋은지 잘 모르겠습니다. 블록은 무엇입니까? x : A 및 y : A 인 경우 A가 재귀 화살표 유형이 아닌 한 일반적으로 그들로부터 아무것도 만들 수 없습니다. 물론 종종 다른 유형의 것을 섞어 세 번째 유형의 것을 만들 수 있습니다.
dst

4
레고 블록은 형식 생성자입니다. 지금부터, 예를 들면 Y : A는 경우 작성할 수 ( X , Y )( X , X )I N L ( X를 )R의 예를 L (F) Xλ Z : . x . 예를 들어 I d ( x , y )z 와 같은 새로운 유형을 만들 수도 있습니다.x:Ay:A(x,y)(x,x)inl(x)relfxλz:A.xId(x,y)등. 사람들은 유형에 대한 직관이 다릅니다. 세트는 그중 하나이지만 조잡합니다. 유형도 토폴로지 공간과 같습니다. 또한 프로그래밍에서 구조화 된 데이터와 같습니다. 그들은 또한ω-groupoid와같습니다. 그것이 그 아름다움, 가능성의 풍부함입니다. 하나의 가능성을 선택하고 그것을 실행하십시오. z:AId(x,z)ω
Andrej Bauer

답변:


31

유형은 계산의 속성입니다. 콜론의 오른쪽에 쓴 내용입니다.

그것에 대해 자세히 설명하겠습니다. 용어는 완전히 표준이 아닙니다. 일부 기사 나 책은 특정 개념에 대해 다른 단어를 사용할 수 있습니다.

MN

  • xy
  • λx.M
  • arity 2, 작성된 신청서MN

용어는 구문 구조입니다. 시맨틱 연산 조건에 관한 것이다. 많은 유형의 시맨틱이 있으며, 가장 일반적으로 작동 (용어가 다른 용어로 변환 될 수있는 방법을 설명 함) 또는 부정적 (일반적으로 세트 이론으로 작성된 다른 공간으로 변환하여 용어를 설명 함)입니다.

유형은 용어의 속성입니다. 타입 시스템 이 지정되지 않은 수학에 대한 용어가 어떤 유형이있는 설명합니다. 수학적으로 유형 시스템은 용어와 유형 사이의 관계입니다. 보다 정확하게 말하면, 유형 시스템은 컨텍스트에 의해 색인화 된 관계의 패밀리입니다. 일반적으로 컨텍스트는 변수에 대해 최소한 유형을 제공합니다 (즉, 컨텍스트는 변수에서 유형으로 부분 함수 임). 모든 자유 변수에 대한 유형을 제공하는 컨텍스트에서. 유형이 어떤 수학적 객체인지는 유형 시스템에 따라 다릅니다.

일부 유형 시스템은 교차, 결합 및 이해와 같은 집합 이론 개념을 사용하여 유형으로 세트로 설명됩니다. 이것은 친숙한 수학적 기초 위에 놓는 이점이 있습니다. 이 접근법의 한계는 동등한 유형에 대한 추론을 허용하지 않는다는 것입니다.

τ

  • AB
  • τ0τ1

단순 유형 람다 미적분을 정의하는 용어와 유형의 관계는 일반적으로 규칙입력하여 정의됩니다 . 타이핑 규칙은 유형 시스템을 정의하는 유일한 방법은 아니지만 일반적입니다. 이들은 구성 유형 시스템, 즉 용어의 유형 (들)이 하위 용어의 유형으로 구성된 유형 시스템에 적합합니다. 타이핑 규칙은 유형 체계를 귀납적으로 정의합니다. 각 타이핑 규칙은 수평 규칙 위의 수식을 인스턴스화 할 때 규칙 아래의 수식도 참임을 나타내는 공리입니다. 입력 규칙을 읽는 방법을 참조하십시오 . 상세 사항은. 튜링 완성형 람다 미적분학이 있습니까? 또한 관심이있을 수 있습니다.

ΓM:τMτΓ

x:τΓΓx:τ(Γ)Γ,x:τ0M:τ1Γλx.M:τ0τ1(I)ΓM:τ0τ1ΓN:τ0ΓMN:τ1(E)

ABλx.λy.xy(AB)AB(I)(E)(Γ)

단순 유형 람다 미적분의 유형을 세트로 해석 할 수 있습니다. 이것은 유형에 대해 의미 론적 의미를 부여합니다. 기본 용어에 대한 좋은 의미 론적 의미는 각 기본 용어에 모든 유형의 표시 멤버를 지정합니다.

직관적 인 유형 이론 (Martin-Löf 유형 이론이라고도 함)은 유형의 미적분학에 더 많은 요소가 있으며 기본 항에 몇 가지 상수를 추가하기 때문에 단순히 람다 미적분학을 입력하는 것보다 더 복잡합니다. 그러나 핵심 원칙은 동일합니다. Martin-Löf 유형 이론의 중요한 특징은 유형이 기본 용어를 포함 할 수 있다는 것입니다 (이들은 종속 유형입니다 ). 기본 용어의 세계와 유형의 세계는 동일하지만 간단한 구문 규칙 (일반적으로 분류, 즉 이론을 다시 쓸 때 용어에 정렬을 할당).

:

대부분의 타입 시스템에는 이론적 인 의미론이 주어졌으며 일반적인 수학의 기초와 묶었습니다. 프로그래밍 언어와 수학 기초는 어떤 관련이 있습니까? 그리고 함수 타입의 의미 론적 관점과 구문 론적 관점의 차이점은 무엇입니까? 여기에 관심이있을 수 있습니다. 유형 이론을 수학의 기초로 사용하는 작업도있었습니다. 이론은 역사적인 기초이지만, 이것이 유일한 선택은 아닙니다. Homotopy 유형 이론 은이 방향에서 중요한 이정표입니다.이 계획의도적 직관 론 유형 이론 의 의미론 을 동위 원소 이론 측면 에서 설명하고이 프레임 워크에서 이론 을 구성합니다.

Benjamin Pierce의 책 유형 및 프로그래밍 언어유형 및 프로그래밍 언어의 주제를 추천 합니다. 공식적인 수학 추론에 대한 기본 지식 외에 다른 전제 조건이없는 학부생도 이용할 수 있습니다. TAPL은 많은 유형 시스템을 설명합니다. 종속 유형은 ATTAPL 2 장의 주제입니다.


TAPL +1 나는 그 책을 읽음으로써 유형에 대해 아주 많이 가르 칠 수있었습니다.
Guy Coder

ATTAPL이 종속 유형에 대해 배우는 좋은 출발점이 확실하지 않습니다.
Martin Berger

15

아마도 집합 이론에서 나온 누군가와 집합 이론과 Martin-Löf 유형 이론이 어떻게 다른지 고민하는 사람에게는 더 좋은 질문 일 수 있습니다. 집합 이론과 수학의 기초에 대한 당신의 직관은 의심 할 여지없이 당신이 당연하게 생각하는 이론적 가정에 감염 될 것입니다. Alas Martin-Löf 유형 이론은 이러한 가정을 공유하지 않습니다.

기존의 이해와는 달리, 집합 이론은 집합 구성원 이 아니라 평등집합 구성원두 가지 관계에 대한 이론입니다 . 그리고이 두 관계는 실질적으로 뚜렷한 단계로 구성됩니다.

  1. 우리는 1 차 논리를 임의의 것 (세트 만이 아닌)의 평등 이론으로 구축합니다. 1 차 논리는 비공식적 인 증거 개념을 사용합니다 . 개념 증명 자체는 1 차 논리에서만 공식적으로 표현할 수있는 것은 아닙니다.

  2. 그런 다음 우리는 1 차 논리 위에 세트 이론을 세트 이론으로 설정하고 멤버십을 설정합니다.

  3. 그런 다음 세트 멤버쉽과 평등은 두 멤버 세트가 동일한 멤버를 가질 때 정확히 같다고 말하는 확장 성 공리와 관련이 있습니다.

  4. 마지막으로, (1)의 비공식 증거 개념은 특정 세트 (나무)로 사후 합리화를 얻습니다.

그것은 실현하기 위해 중요한 것은 개념이다입니다 증거 따라서이다 이등 시민 집합 이론이다.

이 설정은 기존의 중소형 수학에서는 잘 작동하지만 이제 모든 유한 단순 그룹의 분류 또는 사소한 컴퓨터 프로그램의 검증과 같은 대규모 증명을 다루고 있기 때문에 별 차이가 없습니다. 쉬운 기계화로 이어지지는 않습니다.

TT

λ


이것은 매우 유용했습니다. 건설적인 수학을하는 사람의 주요한 문제는 많은 것을 배우는 것입니다.
dst

동의한다. 인정되지 않은 집합 이론적 가정을 배우려면 시간이 걸립니다. 많은 Agda 프로그래밍을 수행하면 나를 도왔으며 컴퓨터 과학 배경을 가지고 있다면 도움이 될 수도 있습니다.
Martin Berger

10

나는 Martin-Löf 형 이론으로의 쉬운 길을 모른다. 다음이 소개가 될 수 있습니다.

그러나 "유형이란 무엇인가"라는 질문에 의문이 든다면 먼저 훨씬 간단한 유형 이론에 들어가는 것이 좋습니다. 모든 유형의 프로그래밍 언어가 가능하지만 Ocaml, F # 및 Haskell이 특히 유용합니다. 조금 단순화하면 Martin-Löf 유형 이론이 두 가지 방법으로 위에서 언급 한 언어 뒤의 유형을 확장한다고 말할 수 있습니다.

  1. 으로 의존하는 유형 . 다양한 프로그래밍 언어로 테이머 형식으로 찾을 수 있습니다.
  2. 신원 유형으로. 이것은 Martin-Löf가 이전에 의존했던 유형 이론에 대한 주요 혁신입니다.

종속 유형의 핵심 아이디어는 간단합니다. 유형은 프로그램에 의해 매개 변수화 될 수 있습니다. 위에서 언급 한 것과 같은보다 일반적인 타이핑 시스템에서는 불가능합니다 (비트 단순화). 단순하지만 그 결과는 심오합니다. 종속 유형은 Curry-Howard의 대응 관계를 1 차 구성 논리에 반영합니다. 신원 유형은 약간 특이합니다. Haskell과 같은 언어에 익숙한 경우 기본적으로 Martin-Löf 유형 이론을 가진 Haskell 인 Agda를 배울 수 있습니다. Agda는 위에서 언급 한 책을 읽는 것보다 프로그래머에게 배우기가 훨씬 쉽다고 생각합니다.


나는 실제로 Haskell을 알고있다. 내 문제는 모든 자습서가 유형을 정의하는 방법을 알려주지 만 실제로는 무엇인지 절대 알려주지 않는다는 것입니다. 유형 검사기가 올바른 버전의 다형성 함수를 선택하고 의미가 맞지 않는 방식으로 혼합되지 않았는지 확인할 수 있도록 모든 데이터에 첨부 된 마술 태그 인 것 같습니다. 그들은 여전히 ​​유형이 무엇인지에 대한 질문을 공개합니다. Voevodsky & co가 이것에 모든 수학의 기초를 두려고 노력하고 있기 때문에 나는 이것에 특히 당황합니다. 그러나 나는 정확한 정의를 보지 못했습니다.
dst

2
ΓM:αMαMMΓ

유형은 Haskell, Martin-Löf 유형 이론 및 Voevodsky의 homotopy 유형 이론에서 매우 정확하게 정의됩니다. 모호성이 없습니다. 예를 들어, 부록 A.2는 모든 용어 및 유형의 동종 형 유형 이론에 대한 증명 시스템을 제공합니다. 더 엄격한 정보를 원하면 Coq 또는 Agda 공식화를 볼 수 있습니다 .
Martin Berger

2
어쩌면 당신은 유형을 정의하는 것 외에 본질이 없다는 것을 삼킬 필요가 있습니다. 이것은 예를 들어 세트와 다르지 않으며, 세트 이론의 공리에 의해 주어진다. (이것은 사실이 아니지만 이해하는 것이 중요합니다.)
Martin Berger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.