부울 대수를 간단히 입력 된 람다 카 클루 어로 표현할 수 있습니까?


15

부울 대수는 이런 식으로 (예를 들어) 형식화되지 않은 람다 미적분학으로 표현 될 수 있습니다 .

true  = \t. \f. t;
false = \t. \f. t;
not   = \x. x false true;
and   = \x. \y. x y false;
or    = \x. \y. x true y;

또한 부울 대수는 다음과 같은 방식으로 시스템 F에서 인코딩 될 수 있습니다 .

CBool = All X.X -> X -> X;
true  = \X. \t:X. \f:X. t;
false = \X. \t:X. \f:X. f;
not   = \x:CBool. x [CBool] false true;
and   = \x:CBool. \y:CBool. x [CBool] y false;
or    = \x:CBool. \y:CBool. x [CBool] true y;

단순히 입력 된 람다 미적분학으로 부울 대수를 표현하는 방법이 있습니까? 나는 대답이 아니오라고 가정합니다. ( 예를 들어, 전임자와 목록은 단순히 입력 된 람다 미적분학으로 표현할 수 없습니다 .) 대답이 실제로 NO가 아니라면 간단한 직관적 인 설명이 있습니까? 왜 간단하게 입력 된 람다 미적분학으로 부울을 인코딩 할 수 없습니까?

업데이트 : 기본 유형이 있다고 가정합니다.

업데이트 : 설명이있는 부정적인 대답은 여기에 있습니다 (코멘트 "제품에 간단하게 유형이 지정된 람다 미적분법과 무한히 많은 기본 유형에 부울이 없음을 보여주는 증거 스케치가 있습니다.") 이것은 내가 찾고있는 것입니다.


2
하스켈에 정의를 입력하고 다양한 표현에 유형을 줄 때 어떤 일이 발생하는지보십시오. 코드가 다형성에 크게 의존한다는 것을 알 수 있습니다.
Dave Clarke

2
유감스럽게도 유감스럽게도,이 표현의 표현에 대한 질문 또는 미적분학에 대한 질문은 "표현 된", "인코딩 된"및 "표현 된"의 의미를 명확하게 이해해야 만 의미를 갖게됩니다. 또한 기본 유형의 존재를 규정하기 때문에 기본 유형과 함께 제공되는 생성자 / 소멸자를 구체적으로 지정해야합니다.
Martin Berger

3
내가 pedantic 아니었다 죄송합니다. 대답은 여기에서 발견되었습니다 : math.andrej.com/2009/03/21/…
Ilya Klyuchnikov

3
내가 :-) 같은 멋진 블로그를 실행하기위한 약간의 신용을 얻어야한다 같은 느낌
안드레이 바우어

7
영형=영형영형영형아르 자형이자형=λ엑스:영형.λ와이:영형.엑스에프에스이자형=λ엑스:영형.λ와이:영형.와이영형=λ:.λ엑스:영형.λ와이:영형.와이엑스=λ:.λ:.λ엑스:영형.λ와이:영형.(엑스와이)와이영형아르 자형=λ:.λ:.λ엑스:영형.λ와이:영형.엑스(엑스와이)
Emil Jeřábek는 Monica를 지원합니다. Monica

답변:


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