Tại sao các nhà xây dựng dường như không quan tâm quá nhiều về cuộc gọi / cc


15

Vì vậy, một thời gian trước, lần đầu tiên tôi có người nói với tôi rằng cuộc gọi / cc có thể cho phép các đối tượng chứng minh cho bằng chứng cổ điển bằng cách thực hiện luật Peirce. Gần đây tôi đã suy nghĩ về chủ đề này và dường như tôi không thể tìm thấy lỗ hổng nào với nó. Tuy nhiên tôi dường như không thể thấy ai khác nói về nó. Có vẻ như khoảng trống của cuộc thảo luận. Đưa cái gì?

Dường như với tôi rằng nếu bạn có một cấu trúc như trong một số ngữ cảnh thì 1 trong hai điều là đúng. Bạn có quyền truy cập vào một cá thể bằng cách nào đó trong bối cảnh hiện tại trong đó luồng điều khiển trường hợp sẽ không bao giờ đến đây và chúng tôi an toàn khi giả sử bất cứ điều gì HOẶC cho rằng có nghĩa là cách duy nhất có thể trả về là bằng cách xây dựng một thể hiện của và áp dụng hai đối số của nó (một thể hiện của . Trong trường hợp như vậy, đã có MỘT SỐ cách xây dựng một thể hiện củaf : ¬ ( ¬ P ) f : ( P ) f P P ) Pf:¬(¬P)f:¬(¬P)f:(P)fPP)P; có vẻ hợp lý cho cuộc gọi / cc để kéo công trình này ra cho tôi. Lý luận của tôi ở đây có vẻ hơi nghi ngờ đối với tôi nhưng sự nhầm lẫn của tôi vẫn đứng vững. Nếu cuộc gọi / cc không chỉ tạo ra một thể hiện của ngoài không khí (tôi không thấy nó như thế nào) thì vấn đề là gì?P

Do một số thuật ngữ đánh máy tốt không chứa cuộc gọi / cc không có hình thức bình thường? Có một số tài sản khác của các biểu hiện như vậy làm cho họ bị nghi ngờ? Có bất kỳ lý do lưu ý tại sao một nhà xây dựng không thích cuộc gọi / cc?



Câu trả lời:


19

Toán học xây dựng không chỉ là một hệ thống chính thức mà là sự hiểu biết về những gì toán học nói về. Hay nói cách khác, không phải mọi loại ngữ nghĩa đều được chấp nhận bởi một nhà toán học xây dựng.

Đối với một nhà toán học xây dựng call/cctrông giống như gian lận. Xem xét cách chúng tôi chứng kiến bằng cách sử dụng :p¬pcall/cc

  1. Chúng tôi cung cấp một hàm được cho là chứng minh . Trong thực tế là một túi thủ đoạn.¬ p ff¬pf
  2. Nếu ai đã từng áp dụng đến một bằng chứng về , sau đó giải phóng gian cuộn lại, và với một bằng chứng về trong tay, thay đổi ý định của mình về : thời gian này tuyên bố rằng đó là một bằng chứng về .p f p p ¬ p pfpfcall/ccpp¬pp

Sự hiểu biết mang tính xây dựng của sự phân biệt là tính quyết định thuật toán , nhưng ở trên hầu như không đưa ra bất kỳ quyết định nào. Như một bài kiểm tra, một nhà toán học xây dựng có thể hỏi bạn làm thế nào call/ccđể chứng minh rằng mọi máy Turing tạm dừng hoặc phân kỳ. Và chương trình chứng kiến ​​sự thật này là gì? (Nó phải là Oracle dừng lại.)


Ah!! Tôi nghĩ đó là điều tốt đẹp mà tôi đang tìm kiếm.
Jake

9

Như bạn lưu ý, có thể có một cách giải thích mang tính xây dựng của logic cổ điển theo nghĩa này. Thực tế là logic cổ điển tương đương với logic trực giác (giả sử số học Heyting) đã được biết đến từ khá lâu (đã có từ năm 1933, ví dụ Godel ) sử dụng bản dịch phủ định kép.

Bằng một lập luận phức tạp hơn, có thể chỉ ra rằng Số học Peano bảo thủ hơn HA đối với các câu lệnh . Bản chất của kết quả là các bằng chứng cổ điển của liên quan đến có cùng nội dung tính toán như một câu lệnh không có cấu trúc đó (bằng phép biến đổi CPS ). Π 0 2 c a l l / c cΠ20Π20call/cc

Tuy nhiên, điều này không đúng với các tuyên bố trên : các tuyên bố trong , có thể chứng minh bằng PA, có thể không có dạng bình thường có thể chấp nhận để trích xuất một nhân chứng! Các nhà khoa học máy tính có thể không quan tâm đến việc tính toán với các bằng chứng ở cấp độ này, nhưng nó hơi bất tiện cho những cân nhắc về mặt triết học : chúng ta đã chứng minh sự tồn tại của một cái gì đó hay chưa? Σ 0 3Π20Σ30

Tôi nghĩ rằng điều này tóm tắt lý do tại sao "sửa chữa" logic không mang tính xây dựng bằng cách thêm có thể không đạt yêu cầu.call/cc

Điều đó đang được nói, có rất nhiều công việc khám phá các khía cạnh tính toán của tính toán trong khuôn khổ "Curry Curry cổ điển", ví dụ Máy Krivine, phép tính Parigot ( ) và nhiều khác. Xem ở đây để biết tổng quan.λμ¯μ~

Cuối cùng, có thể hữu ích để lưu ý rằng trong khi tình huống được hiểu khá rõ trong các phép tính vị ngữ và trường hợp số học, các lý thuyết mạnh hơn ít được khám phá hơn. Ví dụ: IIRC, ZFC bảo thủ hơn IZF đối với câu (ZFC bảo thủ so với ZF đối với câu số học và ZF bảo thủ so với IZF), điều này cho thấy có ý nghĩa tính toán cho tiên đề của sự lựa chọn. Tuy nhiên, đây là một lĩnh vực nghiên cứu tích cực ( krivine , Berardi và cộng sự )Π20

Chỉnh sửa: Một câu hỏi rất phù hợp về mathoverflow xuất hiện ở đây: /mathpro/29577/solve-fterent-calculus-as-programming-lingu


1
Là sự tương đương này có đúng về mặt xây dựng?
Geoffrey Irving

3
@GeoffreyIrving: đúng vậy, người ta hoàn toàn có thể "bootstrap" niềm tin vào tính nhất quán cổ điển (nếu không phải là lý luận cổ điển mỗi se ) chỉ sử dụng lý luận trực giác. Đây là động lực ban đầu của Gôdel cho -translation. ¬¬
cody

Điều gì có nghĩa là "có thể không có hình thức bình thường có thể chấp nhận để trích xuất một nhân chứng". Liệu nó chỉ có nghĩa là những thuật ngữ này có đáy cho ngữ nghĩa hay nó có nghĩa là một cái gì đó xa lạ?
Jake

3
@Jake: Điều khoản vẫn có những hình thức bình thường, nhưng có thể không phải là những bạn mong chờ: ví dụ như bằng chứng về là mặc dù Một có thể đúng. A¬Ainr (fun x -> callcc(...))A
cody

Hiểu rồi. Cảm ơn! Tôi vẫn đang tiêu hóa một phần câu trả lời của bạn. Tôi không rành lắm về hệ thống phân cấp số học nên tôi phải xử lý thêm một chút.
Jake

8

Tôi đồng ý với câu trả lời của cả Andrej và Cody. Tuy nhiên, tôi nghĩ cũng đáng đề cập đến lý do tại sao các nhà xây dựng nên quan tâm đến các toán tử điều khiển (cuộc gọi / cc).

Những nhà khai thác thường được kết nối với logic cổ điển bởi vì khi người ta nhìn vào quy tắc gõ của họ (Felleisen, Griffin) họ nhận thấy rằng các loại có hình thức Luật Peirce hoặc loại bỏ đúp phủ định ( ). Tuy nhiên, các toán tử điều khiển đã được phát minh trong cài đặt chưa được chỉnh sửa của ngôn ngữ lập trình Scheme. Mục đích của họ là có thể làm phong phú ngôn ngữ lập trình: thay vì viết chương trình theo kiểu tiếp tục truyền, người ta có thể viết chương trình theo kiểu trực tiếp bằng cách sử dụng các toán tử điều khiển.¬¬PP

Π20

PΣ10

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.