유형 이론에서“긍정적 입장”과“부정적 입장”의 의미?


10

유형 이론의 맥락에서 "긍정적 입장"과 "부정적 입장"은 무엇을 의미합니까?

주제에 대한 Bob Harper의 블로그 게시물 에서 내가 이해 한 것은 유형 이론에서 극성과 논리에서 극성 사이에 연결이 있다는 것입니다. 그러나 그 연결이 무엇인지 모르겠습니다.

답변:


9

불행히도 "극성"은 유형 이론에서 다소 과부하 된 개념입니다. "포지티브 위치"및 "네거티브 위치"는 초점 / 편광에 대해 Bob이 이야기하는 것과 다른 극성 개념을 나타냅니다.

당신의 의미

귀납적 유형을 정의 할 때는 정의하려는 유형의 작업에 해당하는 일련의 규칙이 제공됩니다. 예를 들어 a Nat

  • 가치 zero : Nat
  • 기능 suc : Nat -> Nat

그리고 그 예상 Nat을 반복해서 적용에서 발생 할 수있는 모든 값을 포함 suc다른 Nats와 포함을 zero. 이 유도 구조와 일치하여 우리 Nat는 모든 Nat생성자가 생성 한다는 사실에 따라 작동 하는 재귀 원리를 얻습니다 .

rec : A -> (A -> A) -> Nat -> A

그래서

rec Z S zero = zero
rec Z S (suc n) = S (rec Z S n)

그러나 규칙으로 작성할 수있는 내용에는 몇 가지 제한이 있습니다. 그렇지 않으면 재귀 원리를 정당화 할 수없는 일련의 규칙을 작성할 수 있습니다. D생성자가 하나 인 "유도 형" 을 고려하십시오.

  • d : (D -> D) -> D

여기에 재귀 원리가 없습니다. 그리고 정당한 이유가 있습니다! 우리가 재귀 원리를 가지고 있다면,이를 사용하여 자체 애플리케이션의 버전과 비 종료를 인코딩 할 수 있습니다. 이것은 D유도 형이 반복적으로 생성자를 적용하여 생성 된 유한 구조이기 때문에 "유도"라고 할 수 없습니다!

이를 다루기 위해 우리는 유형 이론에서 귀납적 유형이 재귀하는 방법을 제한합니다. 특히, 우리는 그것들이 "부정적인 장소"에 나타나지 않도록 막습니다. 이것은 당신이 말하는 극성의 개념입니다. 따라서 위치의 극성이 결정됩니다.

  1. 논쟁은 긍정적 인 입장에서 시작된다
  2. 왼쪽으로 화살표를 갈 때마다 극성이 바뀝니다

그래서 X제 두개의 처음 두과 음극에 긍정적

X
Int -> X
X -> Int
(Unit -> X) -> Int

이 아이디어는 재귀 만 긍정적 인 유도 유형이 공변량 펑터를 발생시키는 범주 이론에 대한 의지로 정당화됩니다. 이것이 어떻게 작동하고 왜 흥미로운 지에 대한 세부 사항.

밥 하퍼의 의미

그의 블로그 포스트에서 Harper는 다른 극성의 의미에 대해 이야기했습니다. 이 극성은 논리의 다양한 결합이 의미를 갖는 방법을 나타냅니다. 특히, 결합을 두 가지 방법으로 분류 할 수 있습니다

  • 긍정적 인 연결은 그것들을 소개하는 방법을 정의함으로써 정의 될 수 있습니다 (그들의 소개 규칙)
  • 부정적인 연결은 사용 방법을 정의하여 정의 할 수 있습니다 (제거 규칙).

프로그래밍 언어 용어에서 이것은 게으른 유형과 엄격한 유형의 차이점을 잘 포착합니다. 엄격한 유형은 해당 값으로 정의됩니다. 게으른 것은 패턴 일치 방법에 의해 정의됩니다. 이를 올바르게 처리하기 위해, 우리는 2 가지 주요 구성, 긍정적 유형을 구축하는 방법 및 부정적인 유형을 분해하는 "척추"로 언어를 정의합니다. 이를 사용하여 엄격한 계산과 지연 계산을 하나의 언어로 통합 할 수 있습니다.

이것을 더 잘 이해하기 위해 Bob Harper 's book 38 장을 참조하십시오 .


죄송합니다, @jozefg, 나는 개념을 이해했지만 유형이 긍정적 인 위치에만 나타나는지 보는 방법을 이해하지 못했습니다. 좀 더 지정하고 몇 가지 예를 더 제시해 주시겠습니까?
paulotorrens
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.