Làm thế nào có thể không kết thúc


14

Tôi đã suy nghĩ về những câu hỏi này:

Có một phép tính lambda đánh máy nào phù hợp và hoàn thành Turing không?

/cs/65003/if-%CE%BB-xxx-has-a-type-then-is-the-type-system-inconsistent

và có một số đã khó để trả lời câu hỏi liên quan trong untyped thiết lập! Cụ thể hơn, tôi tò mò muốn biết liệu chúng tôi có thể phục hồi tính đầy đủ của Turing từ việc không chấm dứt theo cách sau không:

Câu hỏi: Cho một (tinh khiết) λ -term t với không hình thức bình thường đầu yếu, không có lúc nào cũng tồn tại một combinator điểm cố định Yt

Yt (λx.x)=t

Các đẳng thức đều được lấy modulo βη .

Tôi thực sự nghi ngờ phiên bản này của câu hỏi là sai , vì vậy người ta có thể thư giãn các câu hỏi để combinators looping , nơi một combinator looping Y được định nghĩa là một thuật ngữ như vậy mà cho mỗi f

Y f=f (Y f)
nơi Y một lần nữa được yêu cầu là một tổ hợp vòng lặp. Điều này là đủ để xác định các hàm đệ quy như bình thường, tất nhiên.

Tổng quát hơn, tôi đang quan tâm đến việc tìm cách "tự nhiên" để đi từ một tổ chức phi chấm dứt t đến một combinator vòng lặp, ngay cả khi phương trình trên là không hài lòng.

Tôi cũng đang quan tâm đến phiên bản yếu hơn của câu hỏi trên, ví dụ như t có thể được xem là một ứng dụng tt1 t2tn với nhau ti ở dạng bình thường (mặc dù tôi không chắc chắn rằng thực sự giúp).


Cho đến nay: cách tiếp cận tự nhiên là sử dụng các ứng dụng và "pepper" của f trong suốt, vdtf

Ω:=(λx.x x)(λx.x x)

trở thành bình thường

YΩ:=λf.(λx.f (x x)) (λx.f (x x))

Ý tưởng là giảm đầu thành ứng dụng lambda λ x . t ' và thay thế bằng λ x . f t ' , nhưng bước tiếp theo là không rõ ràng (và tôi nghi ngờ rằng điều này có thể dẫn đến bất cứ điều gì).tλx.tλx.f t

Tôi không chắc là tôi hiểu đầy đủ về cây Böhm để xem liệu họ có bất cứ điều gì để nói, nhưng tôi rất nghi ngờ nó, vì cây Böhm 's chỉ đơn giản là , trông không có gì giống như một cho Y Ω : một cây vô hạn của trừu tượng.ΩYΩ


Chỉnh sửa : Một người bạn của tôi nhận xét rằng cách tiếp cận ngây thơ này không hoạt động với thuật ngữ: Cách tiếp cận ngây thơ sẽ cho ( λ x

(λx.x x x)(λx.x x x)
Nhưng điều này làkhôngmột điểm combinator cố định! Điều này có thể được sửa chữa bằng cách thay thế các ứng dụng thứ hai của f
(λx.f (x x x))(λx.f (x x x))
f bằng , nhưng sau đó f Tôi không đưa ra thuật ngữ gốc. Không rõ liệu thuật ngữ này có phải là một ví dụ ngược với câu hỏi ban đầu hay không (và chắc chắn nó không phải là một ví dụ đối với câu hỏi chung chung hơn).λyz.f yfI

Tôi tin rằng yêu cầu rằng t không có dạng đầu bình thường nên được tăng cường để loại trừ các dạng bình thường của đầu yếu. Nếu t có thể tạo ra lambda, thì ở vị trí đầu bạn luôn có bộ kết hợp điểm cố định (bắt đầu bằng f = id), nên lambda được sản xuất bởi nó, điều đó là không thể.
Andrea Asperti

@AndreaAsperti bạn đúng, tất nhiên. Tôi sẽ sửa đổi câu hỏi.
cody

Câu trả lời:


7

Có một số khía cạnh cho câu hỏi rất hay này, vì vậy tôi sẽ cấu trúc câu trả lời này cho phù hợp.

1. Câu trả lời cho câu hỏi đóng hộp là không . Thuật ngữ Ω3=(λx.xxx)(λx.xxx) được đề xuất bởi bạn bè của bạn thực sự là một phản ví dụ.

Trước đó nó được chú ý trong các ý kiến mà người ta có counterexamples như "yêu tinh" , cho đến khi câu hỏi được giới hạn với các điều khoản mà không cần hình thức bình thường đầu yếu. Điều khoản này được gọi là điều khoản khôngK=YK . Đây là những điều khoản không bao giờ giảm xuống thành lambda, dưới bất kỳ sự thay thế nào.

Đối với bất kỳ tổ hợp điểm cố định (fpc) , Y I là một thuật ngữ được gọi là câm (AKA "hoạt động gốc"): mọi giới hạn của nó đều giảm xuống mức đỏ.YYI

là không câm; không phải là Ω 3 - như là biểu hiện bằng cách kiểm tra thiết lập của nó reducts, đó là { Ω 3 ( λ x . x x x ) ( λ x . x xKΩ3

{Ω3(λx.xxx)(λx.xxx)kkN}

Thay vì đưa ra một lập luận chính xác tại sao câm cho tất cả các fpc Y (thực sự, đối với bất kỳ tổ hợp lặp nào) - có thể rất tốn công nhưng hy vọng đủ rõ ràng - tôi cũng sẽ xử lý khái quát hóa rõ ràng câu hỏi của bạn, cũng hạn chế các thuật ngữ câm.YIY

Các thuật ngữ tắt là một lớp con của các số hạng bằng 0, là một lớp con của các thuật ngữ không thể giải được. Cùng nhau, đây có lẽ là những lựa chọn phổ biến nhất cho khái niệm "vô nghĩa" hoặc "không xác định" trong phép tính lambda, tương ứng với các cây Berarducci, Levy-Longo và B \ "tầm thường, tương ứng. đã được phân tích chi tiết bởi Paula Severi và Fer-Jan de Vries. [1] Các thuật ngữ câm tạo thành phần tử dưới cùng trong mạng này, nghĩa là khái niệm hạn chế nhất về "không xác định".

Bài 2. Cho là một thuật ngữ câm, và Y là một combinator lặp với những tài sản mà Y tôi = M .MYYI=M

Đầu tiên chúng tôi lập luận rằng, đối với một biến mới , Y zzYz thực sự trông rất giống các bạn mô tả, thu được bằng cách "rắc z xung quanh" một số reduct của M .YMzM

Bởi Giáo Hội-Rosser, M có một reduct chung, M ' . Hãy giảm tiêu chuẩn R : Y Tôi s M ' . Mỗi tập con của M tương ứng với một tập con duy nhất của Y I Y z [ z : = I ] theo mức giảm này. Đối với bất kỳ subterm C [ N ] = M ' , R yếu tố như Y Tôi C [YIMMR:YIsMMYIYz[z:=I]C[N]=MR, với tôi là hậu duệ của sự thay thế [ z : = I ] . , trong đó chân giữa là đầu giảm yếu (và chân cuối cùng là bên trong). N được "bảo vệ" bởi một z iff chân thứ hai này ký hợp đồng một số redex I PYIC[N0]whC[N1]iC[N]NzIPI[z:=I]

Rõ ràng, phải bảo vệ một số subterms của M , nếu không nó cũng sẽ bị tắt tiếng. Mặt khác, phải cẩn thận không bảo vệ các tập hợp con cần thiết cho việc không kết thúc, vì nếu không, nó không thể phát triển cây B \ "ohm vô hạn của một tổ hợp vòng lặp.YM

Do đó, đủ để tìm một thuật ngữ câm trong đó mọi subterm, của mọi redter, là cần thiết cho việc không chuẩn hóa, theo nghĩa là đặt một biến ở phía trước của subterm đó mang lại một thuật ngữ chuẩn hóa.

Cân nhắc , nơi W = λ w . w tôi w w . Đây là như Ω , nhưng tại mỗi lần lặp, chúng ta kiểm tra xem sự xuất hiện của W ở vị trí lý lẽ không phải là "chặn" bởi một biến đầu, bằng cách cho ăn nó một sắc. Đưa một z trước bất kỳ subterm cuối cùng sẽ mang lại một hình thức bình thường của hình dạng z P 1P k , trong đó mỗi P i là một trong haiΨ=WWW=λw.wIwwΩWzzP1PkPi , W hoặc " z -sprinkling" trong số này. Vì vậy, ΨIWzΨ là một ví dụ cho câu hỏi tổng quát.

Định lý. Không có looping combinator như rằng Y tôi = Ψ .YYI=Ψ

BẰNG CHỨNG. Tập hợp các bài reducts của { W W , W Tôi W W , tôi tôi tôi tôi W W , Tôi Tôi Tôi W W , tôi tôi W W , I W W } . Để có thể chuyển đổi với Ψ , Y tôi phải giảm tới một trong số này. Đối số là giống hệt nhau trong mọi trường hợp; cho cụ thể, giả sử rằngΨ{WW,WIWW,IIIIWW,IIIWW,IIWW,IWW}ΨYI .YIIIWW

Bất kỳ giảm tiêu chuẩn có thể là yếu tố như Y Tôi w P N 4 , P w Q N 3 , Q w N 1 N 2 , do đó  Y Tôi w N 1 N 2 N 3 N 4 N 1tôi , N 2tôi , N 3YIsIIWW

YIwPN4,PwQN3,QwN1N2,thus YIwN1N2N3N4N1I,N2I,N3W,N4W

Hãy để chúng tôi đề cập đến mức giảm R 0 , và mức giảm bắt đầu từ N iR i .YIwN1N2N3N4R0NiRi

Những cắt giảm có thể được dỡ bỏ qua sự thay thế để mang lại R z 0 : Y z z k ( M 1 M 2 M 3 M 4 ) N iM i [ z : = I ] để R 0 là thành phần Y tôi R z 0 [ z[z:=I]

R0z:Yzzk(M1M2M3M4)NiMi[z:=I]
R0 .YIR0z[z:=I]Ik(N1N4)wkN1N4

Ri:NiN{I,W}

Riz:MiNizRi:NiRiz[z:=I]Niz[z:=I]IN

RiINiz[z:=I]NNiz

NizzNzNN{I,W}Niz

zk1(λx.zk2(x))zk1(λw.zk2(zk3(zk5(zk7(w)zk8(λx.zk9(x)))zk6(w))zk4(w)))

M1M2M3M4N1zN2zN3zN4zNizzIi=1,2Wi=3,4

N1zN2zN3zN4zz(z(z()))zkjNiz

Nizi4kjj2+7i12

WIIWWWz=λw.z(wIww)

IIWWzIWWzWWzWzIWzWzz(IIII)WzWzzIWzWz

Ω

zMN=λz.MzNI=M

YI=MYMzMYMMYMM

YMz={z(YP[x:=Q]z)M(λx.P)QYNzM is not a redex and MwhN

[1] Severi P., de Vries FJ. (2011) Phân tách mạng tinh thể của các bộ vô nghĩa trong phép tính Lambda vô hạn. Trong: Beklemishev LD, de Queiroz R. (eds) Logic, Ngôn ngữ, Thông tin và Tính toán. WoLLIC 2011. Ghi chú bài giảng Khoa học máy tính, tập 6642.

[2] Richard Statman. Không có tổ hợp S, K siêu dòng. Báo cáo nghiên cứu 91 Cuộc133, Khoa Toán học, Đại học Carnegie Mellon, Pittsburgh, PA, 1991.


YY I=Ω3

Điểm tốt. Tôi vừa cập nhật câu trả lời.
Andrew Polonsky
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.