주요 개찰구 연산자는 무엇을 의미합니까?


12

저자마다 프로그래밍 언어 의미를 나타내는 데 다른 표기법을 사용한다는 것을 알고 있습니다. 사실 Guy Steele은 흥미로운 비디오에서이 문제를 해결했습니다 .

최고의 개찰구 운영자가 잘 알려진 의미를 가지고 있는지 아는 사람이 있는지 알고 싶습니다. 예를 들어 다음 분모 시작 부분에서 선행 연산자를 이해하지 못합니다 .

x:T1t2:T2λx:T1.t2 : T1T2

누군가 나를 이해하도록 도울 수 있습니까? 감사.



와우,이 질문은 "1k"이상의 조회수를가집니다. 이는 29 개의 새로운 질문의 총계보다 더 많습니다! 내가 확인했듯이 "유형 이론"태그 나 "의미 적 의미 론적"태그는 처음 50 개의 인기있는 태그 중 하나가 아닙니다. 이 현상의 원인이 궁금합니다. 오리무중이야. @DW? 메타 질문이 있습니까?
John L.

내가 실수하지 않으면 규칙의 결론에서 λ x : T 1t 2 사이에서 개찰구 연산자 ( ) 를 움직여야합니다 . 태그를 추가하겠습니다λx:T1t2type-checking
mchar

3
@ Apass.Jack 그것은 핫 네트워크 질문으로 끝나기 때문에 더 많은 관심을 받고 있습니다.
JAB

답변:


20

개찰구의 왼쪽에서 변수의 유형에 대한 가정의 유한 목록 인 로컬 컨텍스트를 찾을 수 있습니다.

x1:T1,,xn:Tne:T

위의 은 0 일 수 있으므로 resulting e : T가 됩니다. 이것은 변수에 대한 가정이 없다는 것을 의미합니다. 일반적으로 이는 eT 형을 갖는 닫힌 용어 (임의의 변수없이) 임을 의미합니다 .ne:TeT

종종 언급 한 규칙은보다 일반적인 형태로 작성되며, 질문에 언급 된 것보다 더 많은 가설이있을 수 있습니다.

Γ,x:T1t:T2Γ(λx:T1.t):T1T2

여기서, 임의의 문맥을 나타내고, Γ , X : T 1 추가 가설에 부가함으로써 얻어 확장자 나타내는 X를 : T (1) 리스트에 Γ를 . 확장이 이전 가정과 "충돌"하지 않도록 xΓ에 나타나지 않도록 요구하는 것이 일반적 입니다.ΓΓ,x:T1x:T1ΓxΓ


7

다른 답변을 보완하기 위해 타이핑 파생에는 세 가지 수준의 "시사점"이 있습니다. 그리고 실제로 두 사람 사이에 대응 관계 (Curry-Howard의 대응이라고 함)가 있기 때문에 논리적 인 파생도 마찬가지입니다.

첫 번째 의미는 수식에 나타나는 화살표이며 수식의 논리적 의미 (또는 미적분 의 함수 유형)에 해당합니다 .λ

두 번째 의미는 십자형 회전식 문 기호로 구체화되며 "왼쪽에있는 모든 수식, 오른쪽에있는 수식이 있다고 가정"을 의미합니다. 특히, 당신이주는 규칙이 하나가 암시 증명하는 방법을 알려줍니다 증명하기 위해 B를 , 다음 하나는 증명해야 B를 한다는 가정하에 A가 보유하고 있습니다. λ- 미적분의 관점에서 λ x 를 증명하십시오 . t 는 타입 A B를 가지고 있고 , x 가 타입 A 의 변수 라고 가정 할 때 t 는 타입 B를 가지고 있음을 보여 주어야합니다 (대응? 참조).ABBAλλx.tABtBxA

세 번째 수준의 의미는 가로 막대로 구체화되며 "모든 전제 (상단의 요소)가 유지되면 결론 (하단의 요소)이 유지됨"을 의미합니다. 당신 이 준 abstraction 에 대한 타이핑 규칙의 해석에 이것을 연결할 수 있습니다 (이전 단락의 설명 참조).λ


3

Env×Exp×Typ

t2T2 T1x

ΓΓEnv:VarTyp

운영자는 규칙의 전제 또는 결론에서 표시되는 위치에 관계없이 기능을 보유합니다.


-1

XYYXXY


1
XYXY

1
가로 막대는 맨 아래에있는 것이 맨 위에있는 것을 즉시 공제 함을 의미합니다. 무조건적 진리가 조건부 진리로부터 유래 한 것이 당신의 모범에서 매우 이상하게 보인다는 것에 동의하지만…
David Richerby

x:T1(x:T1)(y:T2)
데릭 엘 킨스가 SE

x:TΓx:TΓ

¬(x:A)(x:A)(y:B)(x:A)(y:B)x:A,y:Bt:Cy:B,x:At:Cx:Ay:Bt:C
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.