공용체 유형을 갖는 람다 용어의 특성


29

많은 교과서는 람다 미적분의 교점 유형을 다룹니다. 교차에 대한 타이핑 규칙은 다음과 같이 정의 할 수 있습니다 (하위 유형이있는 단순 유형 람다 미적분법 상단).

Γ⊢M:T1Γ⊢M:T2Γ⊢M:T1∧T2(∧I)Γ⊢M:⊤(⊤I)

교차점 유형에는 정규화와 관련하여 흥미로운 속성이 있습니다.

  • 람다 용어 는 강력하게 정규화되는 경우 ⊤I 규칙 을 사용하지 않고 입력 할 수 있습니다 .
  • 람다 용어는 함유하지 않는 형식 인정 ⊤ 는 정상 형태를 갖는다 IFF에있다.

교차로를 추가하는 대신 유니온을 추가하면 어떻게됩니까?

Γ⊢M:T1Γ⊢M:T1∨T2(∨I1)Γ⊢M:T2Γ⊢M:T1∨T2(∨I2)

간단한 유형, 하위 유형 지정 및 조합을 가진 람다 미적분학에 흥미로운 유사한 속성이 있습니까? 노조로 대표되는 용어의 특징은 무엇입니까?


흥미로운 질문입니다. OOP의 인터페이스가 이것에 해당한다고 말할 수 있습니까?
— Raphael

답변:


11

첫 번째 시스템에서 서브 타이핑이라고하는 것은 다음 두 규칙입니다.

Γ,x:T1⊢M:SΓ,x:T1∧T2⊢M:S(∧E1)Γ,x:T2⊢M:SΓ,x:T1∧T2⊢M:S(∧E2)

그것들은 제거 규칙에 해당한다 . 그것들이 없으면 결합 은 다소 쓸모가 없습니다.∧∧∧

두 번째 시스템에서 (접속사와 및 우리는 또한 추가 할 수있는에, 규칙이 무관, 나는 당신이 마음에 따르고 있었다 첨부 규칙을 생각 하위 유형 위) :→ ⊥∨→⊥

Γ,x:T1⊢M:SΓ,x:T2⊢M:SΓ,x:T1∨T2⊢M:S(∨E)Γ,x:⊥⊢M:S(⊥E)

가치가있는 것을 위해,이 시스템은 ( 규칙 사용)를 입력 할 수 있습니다. 이것은 간단한 형식으로는 입력 할 수 없으며 정상적인 형식이지만 강력하게 정규화되지는 않습니다 .⊥ E(λx.I)Ω:A→A⊥E


임의의 생각 : (아마도 TCS에 요청할 가치가 있습니다)

이것은 관련 속성이 다음과 같다고 추측하게합니다.

  • λ 기간 형식이 함유되지 인정 IFF에 모두 정상적인 형태 갖는 일반적인 형태를 갖는다. ( 는 두 테스트에 모두 실패하지만 위의 λ- 기간은 통과합니다)⊥ M N N δM⊥MNNδ
  • λ-term 은 규칙 을 사용하지 않고 타이핑 할 수 있습니다. 이 모든 정규화 에 대해 강력히 정규화 됩니다.⊥ E M N NM⊥EMNN

연습 : 틀렸다는 것을 증명하십시오.

또한 그것은 퇴화 된 사건 인 것 같습니다. 아마도 우리는 이 사람 을 그림에 추가하는 것을 고려해야 합니다. 내가 기억하는 한, 을 얻을 수 있습니까?A∨(A→⊥)


하위 유형 지정 규칙에 대한 좋은 점은 조합 유형이 교차점 (화살표에 직교하여 입력 됨)만큼 자연스럽지 않다는 것을 보여줍니다. 두 번째 부분에 대해서는 좀 더 생각해야합니다.
— Gilles 'SO- 악마 그만해'

유니온 유형에 대해 이야기하고 있다면 가 운동에 응답 한다고 생각 합니다. M=(λx.xx)(λy.y)
— jmad

콜 / CC (Call / cc) : 람다 용어 나 다른 프레임 워크와 같은 단순한 람다 용어 이상이 필요하지만 형식 시스템은 더 복잡한 논리 시스템이며 통합 형식과 관련이 없을 수 있습니다.
— jmad

@jmad : 사실, 교차로 유형은이 용어를 입력 :-( 아마도 함께 통합 및 교차을 고려 흥미로운 일이 될 것입니다 필요합니까?
— 스테판 히메네스

나는 λ 용어에 관심이있을 것입니다. 유니온 유형 (교차 유형을 가진 rs)으로 입력 할 수 있지만 간단한 유형 (교차 유형을 가진 rs)으로는 입력 할 수 없습니다.
— jmad

16

교차 유형이 정규화 클래스 (강점, 헤드 또는 약점)를 특성화하는 데 왜 적합한 지 설명하고 싶지만 다른 유형 시스템은 그렇지 않습니다. (간단한 유형 또는 시스템 F).

"내가 입력 할 수있는 경우 : 키 차이가 무슨 말을해야한다는 것입니다 및 그때 입력 할 수 있습니다 ". 항을 복제 할 수 있기 때문에 비교 차 유형에서는 종종 그렇지 않습니다.M 1 → M 2 M 1M2M1→M2M1

(λx.Mxx)N→MNN

을 입력 하면 모두 입력 할 수 있지만 동일한 유형 을 사용하여 입력 할 수는 없습니다 (예 교차 유형을 사용하여 그리고 중요한 단계는 이제 정말 쉽습니다 : 따라서 은 교차 유형으로 유형별로 지정할 수 있습니다.N M : T 1 → T 2 → T 3MNNN

M:T1→T2→T3N:T1N:T2
M:T1∧T2→T1∧T2→T3N:T1∧T2
(λx.Mxx):T1∧T2→T3N:T1∧T2
(λx.Mxx)N

이제 유니온 타입에 대해 : 어떤 유니온 타입으로 를 입력하고 입력 한 다음 타입을 얻을 수 있다고 가정합니다 그러나 여전히 모든 에 대해 가 라고 해도 불가능하다는 것을 증명해야 합니다.λ x . x x S , T 1 , … x : T 1 ∨ T 2 ∨ ⋯ ∨ T n ⊢ x x : S i x : T i ⊢ x x : S S(λx.xx)(λy.y)λx.xxS,T1,…

x:T1∨T2∨⋯∨Tn⊢xx:S
ix:Ti⊢xx:SS

이것이 노동 조합 유형의 정규화에 대한 쉬운 특성화가 없다고 생각하는 이유입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.