Điều khoản Lambda-Tính toán tự giảm


13

Trong hành trình tiếp tục cố gắng học tính toán lambda, "Lambda-Tính toán và Kết hợp giới thiệu" của Hindley & Seldin đã đề cập đến bài báo sau (của Bruce Lercher) chứng minh rằng biểu thức có thể rút gọn duy nhất giống với (chuyển đổi modulo alpha) là: .(λx.xx)(λx.xx)

Trong khi tôi tin vào kết quả, tôi hoàn toàn không tuân theo lập luận.

Nó khá ngắn (ít hơn một đoạn). Bất kỳ lời giải thích sẽ được chào đón nhất.

Cảm ơn,

Charlie

Câu trả lời:


16

Đầu tiên, lưu ý rằng kết quả cho biết rằng beta redex duy nhất trong đó phía bên phải bằng (chuyển đổi modulo alpha) sang phía bên trái là . Có những điều khoản khác làm giảm bản thân họ, có redex này trong một bối cảnh.(λx.xx)(λx.xx)

Tôi có thể thấy hầu hết các bằng chứng của Lercher hoạt động như thế nào, mặc dù có những điểm tôi không thể vượt qua mà không sửa đổi bằng chứng một chút. Giả sử rằng (tôi sử dụng alpha tương đương), và theo ước biến giả sử rằng không xảy ra tự do trong .= x B(λx.A)B=[B/x]A=xB

Đếm số lượng ở phía bên trái và bên phải. Việc giảm loại bỏ một từ REDEX, cộng với những , và cho biết thêm càng nhiều càng có trong lần so với số lần xuất hiện của trong . Nói cách khác, nếu là số 's trong và là số lần xuất hiện miễn phí của trong thì . Giải pháp duy nhất cho phương trình Diophantine đó là (và nhưng chúng tôi sẽ không sử dụng thực tế đó).B B x Một L ( M ) λ M # x ( M ) x M 1 + L ( B ) = # x ( A ) × L ( B ) # x ( A ) = 2 L ( B ) = 1λBBxAL(M)λM#x(M)xM1+L(B)=#x(A)×L(B)#x(A)=2L(B)=1

Tôi không hiểu lập luận của Lercher cho đoạn trên. Anh ta đếm số thuật ngữ nguyên tử và nguyên tử của ; hãy viết cái này . Phương trình là , có hai nghiệm: và . Tôi không thấy một cách rõ ràng để loại bỏ khả năng thứ hai.λ#(M)#(B)+1= =#x(Một)×(#(B)-1)#x(Một)= =2,#(B)= =3#x(Một)= =3,#(B)= =2

Bây giờ chúng ta áp dụng cùng một lý do cho số lượng subterms bằng ở cả hai bên. Việc giảm sẽ loại bỏ một ở gần đỉnh và thêm bao nhiêu lần thay thế của trong , tức là 2. Do đó, một lần xuất hiện nữa của phải biến mất; vì những cái trong vẫn còn (vì không chứa miễn phí ), nên sự xuất hiện thêm của ở phía bên trái phải là .BA B A B x B λ x . MộtxMộtBMộtBxBλx.Một

Tôi không hiểu làm thế nào Lercher suy luận rằng không có dưới dạng con, nhưng thực tế điều này không liên quan đến bằng chứng.BMộtB

Từ giả thuyết ban đầu, là một ứng dụng. Đây không thể là trường hợp nếu , do đó chính nó là một ứng dụng , với . Vì không thể có chính nó như là một subterm, không thể có dạng , vì vậy . Tương tự, .A = x A M N λ x . M N = [ ( λ x . M N ) / x ] M = [ ( λ x . M N ) / x ] N M M λ x . P M = x N = x[(λx.A)/x]AA=xAMNλx.MN=[(λx.MN)/x]M=[(λx.MN)/x]NMMλx.PM=xN=x


Tôi thích một bằng chứng không có đối số đếm. Giả sử rằng .(λx.A)B=[B/x]A

Nếu thì ta có , điều này là không thể vì không thể là một tập con của chính nó. Do đó, vì phía bên phải của giả thuyết bằng với một ứng dụng, phải là một ứng dụng và và .( λ x . A ) B = B B A A 1 A 2 λ x . A = [ B / x ] A 1 B = [ B / x ] A 2A=x(λx.A)B=BBAA1A2λx.A=[B/x]A1B=[B/x]A2

Từ đẳng thức cũ, hoặc . Trong trường hợp thứ hai, , điều này là không thể vì $ A_1 không thể là chính nó.Một 1 = λ x . [ B / x ] Một Một 1 = λ x . ( Λ x . Một 1 Một 2 ) BA1=xA1=λx.[B/x]AA1=λx.(λx.A1A2)B

Từ đẳng thức sau, hoặc không có tự do (nếu không sẽ là một tập con của chính nó). Trong trường hợp sau, .A 2 x B A 2 = BA2=xA2xBA2=B

Chúng tôi đã chỉ ra rằng . Do đó, phía bên phải của giả thuyết ban đầu là và = .B B B = λ x . Một λ x . x xA=xxBBB=λx.Aλx.xx

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.