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


20

Có một phép tính lambda được gõ trong đó logic tương ứng theo tương ứng Curry-Howard là nhất quán và ở đó có các biểu thức lambda có thể đánh máy cho mọi hàm tính toán?

Đây được thừa nhận là một câu hỏi không chính xác, thiếu một định nghĩa chính xác về "tính toán lambda gõ". Về cơ bản, tôi tự hỏi liệu có (a) ví dụ đã biết về điều này, hoặc (b) bằng chứng không thể biết được cho một cái gì đó trong lĩnh vực này.

Chỉnh sửa: @cody đưa ra một phiên bản chính xác của câu hỏi này trong câu trả lời của anh ấy bên dưới: có hệ thống loại thuần túy logic (LPTS) phù hợp và hoàn chỉnh Turing (theo nghĩa được xác định bên dưới) không?


2
Không có phép tính axiomatizable đệ quy (lambda hay nói cách khác) mà tổng số hàm đệ quy có thể chứng minh là tất cả các hàm đệ quy, do đó phép tính của bạn sẽ phải liên quan đến các thuật ngữ không kết thúc.
Emil Jeřábek hỗ trợ Monica

2
Câu trả lời này có một định lý cho biết bạn không thể có bất kỳ loại phép tính nào cả Turing-đầy đủ tổng.
Andrej Bauer

1
Nó có thể sẽ trả lời câu hỏi của bạn một khi bạn làm cho nó đủ chính xác. Tôi nghĩ rằng bằng chứng của Andrej phức tạp không cần thiết (nhưng nó cho thấy nhiều hơn): vấn đề đơn giản là nếu có một hệ thống được mô tả hiệu quả trong đó tất cả các hàm đệ quy đều có thể biểu diễn theo cách bạn có thể xác nhận một cách tổng hợp rằng một biểu thức là một biểu diễn trung thực của một Hàm đệ quy (ví dụ: bằng cách kiểm tra xem nó được gõ chính xác trong hệ thống), thì bạn sẽ có được một hàm đệ quy tổng quát, điều này là không thể.
Emil Jeřábek hỗ trợ Monica

1
Tất nhiên một câu trả lời cổ điển để loại câu hỏi có thể là: gõ λ -calculus với loại ngã tư , vì nó loại hàng (và chỉ những) điều đó là bình thường hóa mạnh mẽ. Đó là nhiều hơn một câu hỏi triết học để hỏi liệu tính toán có thừa nhận một "giải thích Curry-Howard" hay không.
cody

2
Thật khó để chính xác hơn ở đây vì câu hỏi không chính xác.
Andrej Bauer

Câu trả lời:


21

Được rồi tôi sẽ giải thích về nó: Nói chung đối với một hệ thống loại , điều sau đây là đúng:T

Nếu tất cả các điều khoản tốt gõ vào tính toán là bình thường, sau đó Tphù hợp khi xem như là một logic.TT

Bằng chứng thường tiến hành bằng cách giả sử bạn có một thuật ngữ loại F a l s e , sử dụng giảm chủ đề để có được một hình thức bình thường, và sau đó tiến hành bằng cách cảm ứng trên cấu trúc của một thuật ngữ đó để có được mâu thuẫn.absurdFalse

Đó là tự nhiên để tự hỏi nếu converse giữ, tức là

Đối với bất kỳ loại hệ thống , nếu Thợp lý phù hợp , sau đó mỗi hạn nổi gõ vào T là bình thường.TTT

Vấn đề với điều này là không có khái niệm chung nhất về "hệ thống loại", và thậm chí ít đồng ý hơn về ý nghĩa của tính nhất quán logic đối với các hệ thống như vậy. Tuy nhiên, chúng tôi có thể xác minh bằng thực nghiệm rằng

Đối với hầu hết các hệ thống loại đã biết có một giải thích hợp lý, điều ngược lại thực sự giữ.

Làm thế nào điều này gắn vào Turing Hoàn thiện? Chà, đối với một người, nếu việc kiểm tra kiểu là có thể quyết định , thì đối số của Andrej cho thấy rằng một trong những điều sau đây phải được giữ:

  1. Tập hợp tất cả các chương trình được gõ tốt không phải là Turing Complete.
  2. Có một chương trình đánh máy tốt không kết thúc.

Điều này có xu hướng gợi ý rằng:

Loại hệ thống có một giải thích hợp lý nhất quán có thể liệt kê đệ quy không phải là Turing Complete.

Đưa ra một định lý thực tế chứ không phải là một gợi ý đòi hỏi phải đưa ra khái niệm về hệ thống kiểu và diễn giải logic một cách chính xác về mặt toán học.

Bây giờ hai nhận xét đến trong tâm trí:

  1. Có một undecidable hệ thống kiểu, các hệ thống kiểu ngã tư trong đó có một giải thích hợp lý và có thể đại diện cho tất cả các bình thường hóa -term. Như bạn nhận xét, điều này không hoàn toàn giống như Turing Complete, vì loại hàm tổng có thể cần phải được cập nhật (thực tế, trong thực tế) trước khi áp dụng nó vào đối số mong muốn. Các tính toán là một "cà ri kiểu" tính toán và bằng STLC + gamma M : τλgammaM:τσ

    ΓM:τΓM:σΓM:τσ
    Rõ ràng là các "diễn giải"=dẫn đến một sự giải thích hợp lý nhất quán.
    ΓM:τσΓM:τΓM:τσΓM:σ
    =
  2. Có một loại hệ thống loại, Hệ thống loại tinh khiết , trong đó một câu hỏi như vậy có thể được đưa ra chính xác. Tuy nhiên, trong khung này, việc giải thích logic chưa rõ ràng. Người ta có thể bị cám dỗ để nói: "PTS là phù hợp nếu nó có loại không có người ở". Nhưng điều này không hoạt động, vì các loại có thể sống trong các "vũ trụ" khác nhau, trong đó một số có thể nhất quán và một số thì không. Coquand và Herbelin định nghĩa một khái niệm về Hệ thống loại thuần túy hợp lý , trong đó câu hỏi có ý nghĩa và hiển thị

    Mọi LPTS không nhất quán, không phụ thuộc đều có bộ kết hợp lặp (và Turing Complete cũng vậy)

    Mà trả lời câu hỏi theo một hướng (không nhất quán TC) trong trường hợp này. Theo tôi biết, câu hỏi cho LPTS nói chung vẫn còn mở và khá khó.


Chỉnh sửa: Nghịch đảo kết quả Coquand-Herbelin không dễ như tôi nghĩ! Đây là những gì tôi đã đưa ra cho đến nay.

Một logic tinh khiết Loại Hệ thống là một PTS với (ít nhất) các loại T y p đ , (ít nhất) tiên đề P r o p : T y p e và (ít nhất là) sự cai trị ( P r o p , P r o p , P r o p ) , với yêu cầu thêm rằng không có loại P r o p .PropTypeProp:Type(Prop,Prop,Prop)Prop

Bây giờ tôi sẽ đảm nhận một tuyên bố đặc biệt của Turing Đầy đủ: sửa chữa một LPTS và để Γ là bối cảnhLΓ

Γ=nat:Prop, 0:nat, S:natnat

Turing Hoàniff cho mỗi tổng chức năng tính toán f : NN có là một thuật ngữ t f như vậy gamma t f : n một tn một t và cho mọi n N t f ( S n 0 ) * β S f ( n ) 0Lf:NNtf

Γtf:natnat
nN
tf (Sn 0)βSf(n) 0

Bây giờ đối số đường chéo của Andrej cho thấy rằng có loại kết thúc loại n a t .tnat

Bây giờ có vẻ như chúng ta đang ở nửa đường! Với một tổ chức phi chấm dứt hạn , chúng tôi muốn thay thế xuất hiện của n một t bởi một số loại generic Một và thoát khỏi 0S trong Γ , và chúng tôi sẽ có sự mâu thuẫn của chúng tôi ( Một là nơi sinh sống trong bối cảnh A : P r o p )!Γloop:natnatA0SΓAA:Prop

Thật không may, đây là nơi tôi gặp khó khăn, vì nó dễ dàng thay thế bằng danh tính, nhưng 0 khó hơn nhiều để thoát khỏi. Lý tưởng nhất là chúng tôi muốn sử dụng một số định lý đệ quy Kleene, nhưng tôi chưa tìm ra điều này.S0


OK, vì vậy hai làm rõ đầu tiên về nhận xét của bạn (1). Ý bạn là gì khi bạn nói rằng hệ thống các loại giao lộ này không được liệt kê đệ quy? Chắc chắn tập hợp các định lý của hệ thống là do, vì bạn đã đưa ra nó như là một phép tính tuần tự đơn giản. Ngoài ra, kết quả tôi thấy đã được chứng minh trong bài báo mà bạn liên kết là các thuật ngữ có thể đánh máy trong hệ thống chính xác là các thuật ngữ bình thường hóa mạnh mẽ; nhưng không khác gì nói rằng nó có thể gõ chính xác tổng số các hàm tính toán? Ví dụ, không phải là bình thường hóa mạnh mẽ, nhưng không phải là tổng số? λx.xx
Morgan Thomas

Bây giờ một câu hỏi về nhận xét của bạn (2). Đối với tôi, có vẻ như định lý mà bạn trích dẫn không phải là điều chúng tôi quan tâm. Nó nói rằng với mọi LPTS không phụ thuộc, nếu nó không nhất quán thì nó hoàn thành. Nhưng chúng tôi muốn biết liệu với mọi LPTS, nếu Turing hoàn thành thì nó không nhất quán. Tôi có hiểu lầm gì ở đây không?
Morgan Thomas

@MorganThomas: Ah, bạn đã đúng về điểm đầu tiên: điều tôi muốn nói là hệ thống loại không thể quyết định được , nghĩa là, đưa ra , câu lệnh Γ t : A là không thể giải quyết được. Tôi sẽ sửa điều này trong bài viết. Γ,t,AΓt:A
cody

Điểm thứ hai: bạn cũng đúng rằng người ta có thể có một hàm không tổng được gõ tốt (mặc dù người ta có thể không nhất thiết phải áp dụng nó cho một đối số đã cho). Tôi sẽ sửa đổi câu trả lời.
cody

1
Điểm thứ ba. Bạn lại đúng! Tuy nhiên, điều ngược lại (trong trường hợp đặc biệt của LPTS) là khá nhỏ. Tôi sẽ phác thảo lập luận.
cody

11

Đây là câu trả lời cho một biến thể của câu hỏi của tôi về câu hỏi của tôi. Có một LPTS phù hợp mà Turing hoàn thành trong khoảng @ cảm giác cody, nếu chúng ta cho phép sự ra đời của các tiên đề bổ sung và -reduction quy tắc. Do đó, nói đúng ra hệ thống không phải là LPTS; nó chỉ đơn thuần là một cái gì đó giống như một.β

Xem xét tính toán của các công trình (hoặc thành viên yêu thích của bạn trong -cube). Đây là LPTS, nhưng chúng tôi sẽ thêm các công cụ bổ sung khiến nó không phải là LPTS. Chọn các ký hiệu không đổi nat , 0 , S và thêm các tiên đề:λnat,0,S

0 : nat S : nat nat

nat:
0:nat
S:natnat

Index chương trình máy Turing bởi số tự nhiên, và đối với mỗi số tự nhiên , chọn một biểu tượng liên tục f e , thêm tiên đề f e : nat nat , và cho tất cả e , x N , thêm β quy tắc -reductionefefe:natnate,xNβ

fe(x)βΦe(x),

trong đó như thường lệ là đầu ra của chương trình máy Turing thứ e trên x . Nếu Φ e ( x ) phân kỳ thì quy tắc này không làm gì cả. Lưu ý rằng khi thêm các tiên đề và quy tắc định lý của hệ thống vẫn còn một cách đệ quy đếm được, mặc dù bộ của β quy tắc -reduction không còn decidable, nhưng chỉ đơn thuần là một cách đệ quy đếm được. Tôi tin rằng chúng ta có thể dễ dàng kiểm soát các thiết lập của β -reduction quy tắc decidable bởi đánh vần ra một cách rõ ràng các chi tiết của một mô hình tính toán trong cú pháp và các quy tắc của hệ thống.Φe(x)exΦe(x)ββ

Bây giờ, lý thuyết này rõ ràng là Turing hoàn chỉnh theo nghĩa đại khái của @ cody, chỉ bằng vũ lực; nhưng tuyên bố là nó cũng phù hợp. Hãy xây dựng một mô hình của nó.

Đặt là ba bộ, sao cho:U1U2U3

  • (nơi S là hàm kế).,N,0,SU1S
  • Mỗi bộ là bắc cầu; nếu , sau đó một U i .abUiaUi
  • A,BUiBAUi
  • AUif:AUiaAf(a)Ui

Ui

vU2vIv

  • Iv(x)=v(x)x
  • Iv()=U1,Iv()=U2
  • Iv(nat)=N,Iv(0)=0,Iv(S)=S
  • Iv(fe)=ΦeNNe
  • Iv(AB)=Iv(A)(Iv(B))Iv(A)Iv(B)Iv(AB)=0
  • Iv(λx:A.B)aIv(A)Iv[x:=a](B)
  • Iv(Πx:A.B)=aIv(A)Iv[x:=a](B)

AIv(A)U3vA:BvA:BIv(A)Iv(B)ΓA:Bvvx:C(x:C)ΓvA:B

ΓA:BΓA:Bx,yy:x:yy

β


2
Đây là một câu trả lời hay, nhưng tôi không chắc bạn cần phải trải qua tất cả những điều đó để chứng minh tính nhất quán: một thuật ngữ thuộc loại Một trong bối cảnh trống có thể "khử đường" thành một thuật ngữ trong CoC: Tôi sẽ gọi fe(x)Φe(x) rules ι-rules and keep β for the usual ones. Perform all β-reductions (this terminates since you have only added constants), and replace every term of the form fe(x) by its reduct if it has one. The idea here is that the ι-rules only operate on ground terms, so you can do all the β-reductions first to get them out of the way.
cody

Tôi nghĩ bạn đúng. Đây không phải là lĩnh vực của tôi, vì vậy tôi hơi vụng về khi làm việc. :-) Tôi nghĩ rằng bằng chứng của bạn hoạt động, và một hậu quả thú vị, nếu tôi đúng, là lý thuyết này không có nhiều sức mạnh nhất quán. Nó trông giống như một lý thuyết có khả năng rất mạnh, vì nó có các loại và số tự nhiên, điều này sẽ cho phép bạn diễn giải lý thuyết tập hợp; nhưng rõ ràng là bạn không thể, bởi vì bạn có thể chứng minh nó phù hợp mà không cần sử dụng lý thuyết tập hợp mạnh mẽ!
Morgan Thomas
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.