2014-07-13 2 views
12

Wadler의 논문 "Theorems for Free!"의 의미에서 "자유 ​​이론" 특정 값에 대한 방정식은 유형에 따라 결정됩니다.무료 정리를 명제 동등성으로 유지할 수 있습니까?

(f : {A : Set} → List A → List A) {B C : Set} (g : B → C) (xs : List B) 
    → f (map g xs) ≡ map g (f xs) 

또는 그렇다면/: 예를 들어,

f : {A : Set} → List A → List A 

자동

f . map g = map g . f 

나는 다음과 같은 유형의, 그리고, AGDA 기간 내 손에 얻을 수있는 만족, 너무 그렇지 않다면 좀 더 일반적인 것을 할 수 있을까요?

나는 Lightweight Free Theorems library의 존재를 알고 있지만 원하는대로하지 않는다고 생각합니다. 그렇지 않으면 잘 할 수 없습니다.

는 (예 활용 사례 내가 펑 F : Set → Set을 가지고 다형성 기능 F A × F B → F (A × B)가 자동으로 자연의 변화임을 증명하고 싶은 것입니다.)

+0

컴퓨터 과학 사이트에 더 적합합니다. –

+2

나는 동의하지 않는다. 이것은 추상적으로나 이론적으로 가능한 것이 아니라 오늘날 Agda에서 구체적으로 달성 가능한 것에 관한 질문이다. –

+2

누구나 인터넷에서 무료 정리를 얻고 싶어합니다. 그것이 정리 출판 사업을 죽인 이유입니다. ; ( –

답변

11

아니, AGDA 빌드되는 유형 이론은 강하지 않다 이것을 증명하기에 충분합니다.

이 GUILHEM으로 작업을 참조하십시오 "내면화 parametricity"라는 기능이 필요

이렇게하면 "(A : Set) → A → A"의 모든 주민이 (다형성) ID 함수와 동일하다는 것을 증명할 수 있습니다. 지금까지 내가 아는 한, 아직 어떤 언어로도 구현되지 않았다.

+0

당신의 링크 404'd, 그래서 나는 제목을 봤고 그것들을 새로운 것으로 바 꾸었습니다. –

+0

사실, 처음 발견 한 것은 "매개 변수의 계산적 해석을 향한 것"이었습니다. 맞습니다. –

4

Chantal Keller와 Marc Lasson은 (닫힌) 유형에 해당하는 파라 메트릭 관계를 생성하고이 유형의 주민들이 생성 된 관계를 만족시키는 것을 증명하는 전술을 개발했습니다. 이 작업에 대한 자세한 내용은 Keller's website에서 확인할 수 있습니다.

Agda의 경우 반사라는 기술을 사용하여 순수한 Agda에서 전술을 구현하여 동일한 종류의 작업을 이론적으로 수행 할 수 있습니다.

+0

Agda에 관해서는 당신의 의견입니다. –

+0

Coq는 매개 변수화를 내부화하지 않습니다 : 그것은 작업을 수행하는 전술입니다. 마찬가지로 Agda와 Coq도 귀납적 유형에 대해 'fold'함수가 없지만 이러한 유형의 시스템에 제한이 주어지면, (모든 메타 타입은 파라 메트릭과 마찬가지로 메타 이론이다.) 모든 유도 형에는 초기 대수가있다. – gallais

관련 문제