Curry-Howard isomorphism에서 병렬 또는 동시 프로그램의 현재 상태는 무엇입니까?


9

Girard 's Proofs and Types에서 읽을 수있는 내용은 다음과 같습니다.

알고리즘 적 관점에서 볼 때, 연속적인 미적분학은 동일한 증거를 작성하는 다양한 방법으로 인해 Curry-Howard 동형이 없습니다. 이것은 우리가 그것을 타이핑 된 것으로 사용하지 못하게합니다.λ미적분학, 비록 우리는 이런 종류의 깊은 구조를 엿볼 수 있지만 아마도 병렬성과 관련이 있습니다.

증거 및 유형 , JY Girard (페이지 28)

그러나 우리는 또한 (Linear Logic에 대해) 읽을 수 있습니다.

컴퓨터 과학의 관점에서 병렬성에 대한 유망한 응용을 통해 게으름, 부작용 및 메모리 할당 문제 [GirLaf, Laf87, Laf88]에 대한 새로운 접근 방식을 제공합니다.

증명 및 유형 , JY Girard (149 페이지, Yves Lafont 작성)

병렬 프로그램은 Curry-Howard isomorphism과 어떻게 연결되어 있습니까? 그것에 대한 현재 생각은 무엇입니까?

답변:


7

동시 논리 프레임 워크 와 같은 그 자손을 포함하여 하나 개의 흥미로운 지역이다 선형 융합LolliMon . 이것은 직관적 인 선형 논리를 기반으로합니다.

고전 선형 논리는 결과를 Curry-Howard 유형 결과로 명시 적으로 설명하는 Linear Chemical Abstract Machine기반으로 한 Interaction Nets에 대한 계산법에 설명 된대로 CHAM (Linear Chemical Abstract Machine)에 연결되어 있습니다.

내가 읽지 않은 Gentzen-style Classical Logics에 대한 Alexander Summers의 논문 Curry-Howard Term Calculi는 Gentzen 스타일 미적분학에 Curry-Howard 대응을 제공하는 문제를 직접 목표로하는 것 같습니다. 그만큼λμ- 계산의 이중성에 소개 된 Curien과 Herbelin의 미적분학은 고전적 논리에 해당하는 (비선형) 람다 미적분 의이 정맥에서 중요한 작업입니다.

여하튼, 이것은 여전히 ​​활발한 연구 분야입니다. 이 주제에 관한 최근 논문이 많이 있습니다. 위의 내용은 분리 논리의 하위 구조적 측면과 명령형 프로그래밍 언어에 중점을 둔 해당 Hoare Type Theory에 대해서는 언급하지 않았습니다. 예를 들어, 이전 작업에 대한 참조를 추적 할 수있는 트랜잭션 동시성에 대한 유형-이론적 의미론 이 있습니다.

(약간 간단한 메모로서, 대부분 병렬 처리가 아닌 동시성에 중점을 둡니다 .)


확인. 질문 제목을 좀 더 넓게 편집했습니다. 나는 동시성이 Curry-Howard와 관련이 있다는 것을 몰랐다. 그러나 병렬 처리는 어떻습니까?
Boris

Curry-Howard의 기능적 프로그래밍 관점에서, 모든 (순수한) 병렬 처리는 증명 재 작성 수준에서 발생하며 일반적으로 많은 수의 수정이있을 때마다 많은 양이 있습니다. Haskell과 같은 주석을 추가 par하여 제어 할 수 있습니다 (즉, 기본적으로 병렬 감소 순서를 사용하여 선택적으로 더 병렬로 만들 수 있음).하지만 논리적으로 중요하지 않습니다.
데릭 엘 킨스

4

일반적으로 동시성을 위해 매우 활발한 연구 라인이 있습니다. https://cs.stackexchange.com/a/102711/98901

아래에 병렬 처리에 대한 의견을 추가하십시오.


Avron [1996] 은과 순종 의 개념 , 즉 판단에있어서의 연속 된 종목 의 개념을 소개했다 .

에서는 [Kokke 외., 2019] , 우리 hypersequents 선형 로직 보수 확장 프로세스 결석에 병렬 형으로 사용될 수 있음을 보여 주었다. 본질적으로, 당신은 hypersequent의 선형 논리에 두 개의 독립적 인 증거가있는 경우H, 그러면 당신은 파생시킬 수 있습니다 |H, 어디 |hypersequents를 작성하는 연산자입니다. Abramsky의 "Proofs as Processes" [Abramsky, 1996]에 대한 해석에 따라 병렬 처리에 대한 타이핑 규칙을 얻습니다. 두 개의 독립적 인 프로세스가 있다고 가정합니다. 에 의해 입력 H각기; 그런 다음 병렬 구성| (와 독립적) |H.

우리는 이것에 대한 의미 론적 해석의 표면을 긁기 시작했지만 이것이 평 행성이라는 것은 명백한 사실입니다. 병렬 구성의 의미론은 두 프로세스의 동시 동작을 볼 수있게하며, 논문의 어느 쪽도 두 프로세스는 다른 프로세스가 최소한 일부 조치 (준비 정리)를 수행 할 때까지 기다려야합니다. 동시에 두 개 이상의 작업으로의 확장은 간단 해 보입니다. (타이핑은 이미 허용하지만 해당 논문의 의미는 완전히 활용하지 못합니다.)

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