Chỉnh sửa: dự đoán của tôi trong đoạn đầu tiên dưới đây là sai! Ugo Dal Lago đã chỉ cho tôi một bài báo sau của Martin Hofmann (xuất hiện trong POPL 2002), trong đó tôi không biết, cho thấy (như một hệ quả của kết quả tổng quát hơn) rằng hệ thống từ cuốn sách ATTPL trên thực tế đã hoàn thành cho ( mặc dù không thể tính toán mọi hàm trong F P ). Vì vậy, tôi ngạc nhiên, câu trả lời cho câu hỏi chính là có.PF P
Liên quan đến hệ thống mà bạn đang đề cập đến (từ cuốn sách ATTPL), tôi khá chắc chắn nó không thể quyết định tất cả các ngôn ngữ trong . Nó chắc chắn không thể tính toán mọi hàm trong F P : như đã đề cập trong phần ghi chú của chương đó, hệ thống đó được lấy từ bài báo LICS 1999 của Martin Hofmann ("Kiểu tuyến tính và tính toán thời gian đa thức không tăng kích thước"), trong đó nó được hiển thị các hàm đại diện là đa thời gian và không tăng kích thướcPF P, loại trừ rất nhiều hàm polytime. Nó dường như cũng đưa ra một giới hạn nghiêm trọng về kích thước băng của các máy Turing mà bạn có thể mô phỏng bằng ngôn ngữ đó. Trong bài báo, Hofmann cho thấy bạn có thể mã hóa tính toán không gian tuyến tính; Tôi đoán là bạn sẽ không thể làm được gì nhiều, tức là , lớp tương ứng với hệ thống đó đại khái là các vấn đề có thể giải quyết đồng thời trong không gian đa tuyến và tuyến tính.
Về câu hỏi thứ hai của bạn, có một số -calculi rằng có thể giải quyết một cách chính xác các vấn đề trong P . Một số trong số họ được đề cập trong các ghi chú của chương ATTPL bạn đang đề cập đến (phái 1.6.): Leivant của tầng λ -calculus (xem giấy POPL 1993 của mình, hoặc các giấy với Jean-Yves Marion "Lambda Calculus tả những đặc điểm của Poly-Time ", Fundamenta Informaticae 19 (1/2): 167-184, 1993), liên quan đến đặc tính của F P của Bellantoni và Cook ; và λ -calculi bắt nguồn từ logic ánh sáng tuyến tính của Girard ( Thông tin và tính toán , 143: 175-204, 1998) hoặc từ logic tuyến tính mềm Lafont của ( lý thuyết Khoa học Máy tínhλPλF Pλ318 (1-2): 163-180, 2004). Loại hệ thống phát sinh từ hai hệ thống logic sau này và đảm bảo chấm dứt đa thời gian (trong khi vẫn tận hưởng tính đầy đủ) có thể được tìm thấy trong:
Patrick Baillot, Kazushige Terui. Các loại ánh sáng để tính toán thời gian đa thức trong phép tính lambda. Thông tin và tính toán 207 (1): 41-62, 2009.
Marco Gaboardi, Simona Ronchi Della Rocca. Từ logic nhẹ đến bài tập loại: một trường hợp nghiên cứu. Tạp chí Logic của IGPL 17 (5): 499-530, 2009.
Bạn sẽ tìm thấy rất nhiều tài liệu tham khảo khác trong hai bài báo.
Để kết luận, hãy để tôi mở rộng về nhận xét của Neel Krishnaswami. Tình hình hơi tinh tế. Tất cả những điều trên -calculi có thể được xem như những hạn chế của sỏi tổng quát hơn, trong đó bạn có thể tính toán nhiều hơn chỉ là chức năng polytime, nói cho hệ thống ví dụ F. Nói cách khác, bạn xác định một tài sản Φ của hệ thống F chương trình P : chuỗi → bool sao cho:λΦP:string→bool
lành mạnh: ngụ ý rằng ngôn ngữ bằng cách quyết định P là P ;Φ(P)PP
tính đầy đủ: với mỗi , có một hệ thống F chương trình P quyết định L sao cho Φ ( P ) .L∈PPLΦ(P)
Sự quan tâm là tài sản thể hiện bởi là hoàn toàn cú pháp và, đặc biệt, decidable. Do đó, tính đầy đủ chỉ có thể giữ theo nghĩa mở rộng: nếu L là ngôn ngữ yêu thích của bạn trong P và nếu P là thuật toán yêu thích của bạn để quyết định L được biểu thị trong hệ thống F, thì có thể là Φ ( P ) không giữ. Tất cả những gì bạn biết là có một số chương trình F hệ thống khác P ′ quyết định L và sao cho Φ ( P ′ ) giữ. Thật không may, nó có thể xảy ra rằng P 'ΦLPPLΦ(P)P′LΦ(P′)P′là nhiều hơn so với của bạn . Trên thực tế, đầy đủ được chứng minh bằng cách mã hóa máy Turing đa thức-tốc độ xử lý như về hệ thống F thỏa mãn Φ . Do đó, cách duy nhất để đảm bảo giải L bằng thuật toán yêu thích của bạn là triển khai thuật toán đó trên máy Turing và sau đó dịch nó trong hệ thống F bằng cách sử dụng mã hóa được đưa ra trong bằng chứng hoàn chỉnh (mã hóa của riêng bạn có thể không hoạt động!). Không hẳn là giải pháp thanh lịch nhất về lập trình ... Tất nhiên, trong nhiều trường hợp chương trình "tự nhiên" P không thỏa mãn Φ . Tuy nhiên, trong nhiều trường hợp khác thì không: trong bài báo LICS 1999 đã đề cập ở trên, Hofmann đưa ra cách sắp xếp chèn làm ví dụ.PΦLPΦ
Các hệ thống loại hoàn toàn có chủ ý , có thể nhập chính xác các chương trình đa thời gian của ngôn ngữ rộng hơn (hệ thống F trong ví dụ của tôi ở trên) tồn tại. Tất nhiên, họ là không thể nói chung. Xem
Ugo Dal Lac, Marco Gaboardi. Các loại phụ thuộc tuyến tính và tính đầy đủ tương đối. Phương pháp logic trong khoa học máy tính 8 (4), 2011.