베타 확장의 합류


10

하자 될 에서 - 환원 -calculus. -expansion 를 정의하십시오 .ββλββtβttβt

가 합류는? 즉, 에 대해 이면 와 같은 가 있습니다. ?βl,d,rlβdβrulβuβr

키워드 : 상향 합류, 거꾸로 CR 속성


나는 더 약한 속성 인 로컬 합류 (즉, 이면 )를 . 이것이 사실 이더라도 -expansion이 종료되지 않기 때문에 합류를 암시하지는 않지만 장애물을 이해하는 데 도움이 될 것이라고 생각했습니다.lβdβrlβuβrβ

(맨 위) 두 축소가 모두 최상위 수준 인 경우 가설은 . 최대 -renaming까지, 우리는 라고 가정 할 수 있으며, 이나 는이 용어에서 자유롭지 않다고 가정 할 수 있습니다 .(λx1.b1)a1b1[a1/x1]=b2[a2/x2](λx2.b2)a2αx1x2x1x2

(던지기) 하면 무료 아니다 우리가 따라서이 .x1b1b1=b2[a2/x2](λx1.b1)a1=(λx1.b2[a2/x2])a1(λx1.(λx2.b2)a2)a1(λx2.b2)a2

사례 (Top)에 대한 유도 ( 및 ) 에 의한 순진한 증거 는 다음과 같습니다.b1b2

  • 경우 변수의입니다 ,b1y1

    • 경우 , 가설된다 , 우리는이 사실 .y1=x1(λx1.x1)a1a1=b2[a2/x2](λx2.b2)a2(λx1.x1)a1=(λx1.x1)(b2[a2/x2])(λx1.x1)((λx2.b2)a2)(λx2.b2)a2

    • 경우 , 우리는 단순히 (던져)를 사용할 수 있습니다.y1x1

  • 가 변수 인 것과 동일한 증거가 적용됩니다 .b2

  • 들면 및 가설이된다 및 인덕션 가설 제공 되도록 되는 내포 그 . 불행히도 . (이것은 -reduction을 생각하게 만듭니다 .)b1=λy.c1b2=λy.c2(λx1.λy.c1)a1λy.c1[a1/x1]=λy.c2[a2/x2](λx2.λy.c2)a2d(λx1.c1)a1d(λx2.c2)a2λy.(λx1.c1)a1λy.dλy.(λx2.c2)a2λy.(λx2.c2)a2(λx2.λy.c2)a2σ

  • 응용 프로그램에서도 비슷한 문제가 발생합니다. 는 어디에 있지 않습니다.λ


1
@chi 착각하지 않으면 작동합니다. (λb.yb)y(λa.(λb.ab)y)y(λa.ay)y
xavierm02

1
나는 당신이 그것에 대해 생각하고 몇 가지 반례를 보았을 때 혼란스러워 보이는 @chi에 다소 동의합니다. 그러나 실제로 ? (λx.xxy)yyyy(λx.yxx)y
Rodolphe Lepigre

2
그것이 사실이라면 나에게 편리하지만, 나는 조금 더 비관적입니다. 내 동료가 다음과 같은 말을했을 것 같지 않습니다. 같은 (교회) 정수를 계산하는 임의의 두 프로그램을 결합 할 수 있음을 의미합니다.
xavierm02

2
대답은 '아니오. Barendregt의 연습 3.5.11은 Plotkin에 대한 반격 예제를 제공하지만 및 . 증거를 찾아 볼게요. ( λ x . x x ) ( b c )(λx.bx(bc))c(λx.xx)(bc)
Gilles 'SO- 악마 그만

1
나는 증거로 생각되는 것과 함께 반례를 답변으로 게시했지만 이해할 수없는 단계가 있습니다. 누군가 알아낼 수 있으면 답변을 게시하면 삭제하겠습니다.
Gilles 'SO- 악마 그만

답변:


7

두 가지 반례는 다음과 같습니다.

  • (λx.bx(bc))c 및 (Plotkin).(λx.xx)(bc)
  • (λx.a(bx))(cd) 및 (Van Oostrom).a((λy.b(cy))d)

아래의 자세한 예는 Lambda Calculus : Syntax and Semantics by HP Barenredgt, 개정판 (1984), 연습 3.5.11 (vii)에 나와 있습니다. Plotkin (정확한 참조가 아님)에 기인합니다. 나는 Take Five : Easy Expansion Exercise (1996) [ Voltage van Oostrom]의 다른 반례에 대한 증거로 수정 된 불완전한 증거를 제시 한다 .

증명의 기초는 표준화 정리이며, 특정 형식의 베타 확장 만 고려할 수 있습니다. 직관적으로 말하면 표준 축소 는 모든 축소를 왼쪽에서 오른쪽으로 만드는 축소입니다. 보다 정확하게는, 감소는 비표준이며, 단계 이의 레 덱스가 이전 단계 의 레 덱스의 좌측에 대한 레 독스의 잔류 ; redex에 대한 "left"와 "right" 는 redex가 계약 될 때 제거 되는 의 위치에 의해 정의됩니다 . 표준화 정리는 이면 에서 표준 축소가 있음 을 나타 냅니다.MiMjλMβNMN

이고 이라고하자 . 두 가지 용어 모두 한 단계 로 로 줄어 듭니다 .L=(λx.bx(bc))cR=(λx.xx)(bc)bc(bc)

과 같은 공통 조상 가 있다고 가정합니다 . 표준화 정리 덕분에 두 감소가 모두 표준이라고 가정 할 수 있습니다. 일반성을 잃지 않고 가 이러한 감소가 다른 첫 번째 단계 라고 가정하십시오 . 이 두 감소 중에서 첫 단계의 redex가 다른 쪽의 왼쪽에있는 것으로하고 쓰십시오 여기서 은이 수축의 맥락입니다. 은 redex입니다. 다른 감소로 보자 .ALβAβRAσA=C1[(λz.M)N]C1(λz.M)Nτ

는 표준이고 첫 번째 단계는 의 구멍 오른쪽에 있기 때문에 이나 왼쪽 에서 수축 할 수 없습니다 . 따라서 최종 용어 양식이다 의 부분 및 그들의 구멍의 왼쪽이 동일, 및 입니다. 이후 에서 감소시킴으로써 시작 상기 좌측 줄이고 결코 최종 기간은 형태이어야 의 위치를 부분τC1C1τC2[(λz.M)N]C1C2MβMNβNσC1C3[S]C3C 1 C 2 M [ z N ] β S구멍의 왼쪽에있는 및 의 왼쪽 부분 과 합니다.C1C2M[zN]βS

과 각각 에는 최상위 수준에서 응용 연산자 왼쪽에 단일 람다가 포함되어 있습니다. 는 의 람다를 보존 하기 때문에 ,이 람다는 또는 이 의 최종 항 중 어느 하나 이고,이 항에서 감소에 의해 적용의 인수가 얻어진다 . redex는 최상위 수준에 있으며 이는 입니다.LRτλz.MLRτNC1=C2=C3=[]

  • 만약 만료 , 다음 , 및 . 경우 있는 하위 갖는 다음이 자손은 또한 줄여야 의 정상적인 형태 . 특히, 어떠한 하위 람다는 그렇게 할 수 없다 형태의 수축 subterm 수 의 하위 . 감소하는 의 유일한 하위 항 이후τRMβzzNβbcM[zN]β(λx.bx(bc))cNLbcNNσN P N N의 L의 B c b c N L b cNˇPNˇNLbc인 , 유일한 가능한 하위 의 전적으로 발생 인 자체.bcNLbc

  • 만약 만료 , 다음 , 및 . 에 의 자손이 있으면 이 자손도 합류에 의해 로 감소해야합니다 .τLMβbz(bc)NβcM[zN]β(λx.xx)(bc)NRc

이 시점에서 van Oostrom에 따르면 결론은 쉽게 따라야하지만 뭔가 빠졌습니다 의 자손을 추적하면 대한 정보를 얻는 방법을 알 수 없습니다 . 불완전한 게시물에 대한 사과, 나는 그것을 하룻밤 생각합니다.NM


0

참고 - 환원 어떤 용어가 사라질 수 있습니다. 변수 가 용어 에서 자유롭지 않다고 가정하면 , 및 항에 대해 및 가 있습니다. 결과적으로, 역방향 사실 - 환원이 합류가이 다소 동등한 모든 용어 및 , 용어가 되도록 및 . 이것은 나에게 매우 잘못된 것 같습니다!βxv(λx.v)t1βv(λx.v)t2βvt1t2βt1t2uuβt1uβt2


2
내가 실수하지 않는 한, 는이 두 용어에 대해 작동합니다. (λx.v)t1(λx.(λx.v)t1)t2(λx.v)t2
xavierm02

젠장, 네 말이 맞아! 나는 나중에 다른 것을 생각하려고 노력할 것이다. 나는 지금 시간이 없다.
Rodolphe Lepigre
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.