Tôi sẽ đưa ra một câu trả lời, tôi hy vọng những người khác sẽ điền vào chỗ trống.
Trong kiểu gõ -calculi, người ta có thể đưa ra một kiểu cho các biểu diễn dữ liệu thông thường ( N a t cho các số nguyên Church (unary), S t r cho các chuỗi nhị phân, B o o l cho Booleans) và tự hỏi sự phức tạp của các hàm là gì / vấn đề đại diện / quyết định bởi các điều khoản đánh máy. Tôi biết một asnwer chính xác chỉ trong một số trường hợp, và trong trường hợp được gõ đơn giản, nó phụ thuộc vào quy ước được sử dụng khi định nghĩa "đại diện / có thể quyết định". Nhưng dù sao, tôi không biết về bất kỳ trường hợp nào có giới hạn trên theo cấp số nhân.λNatStrBool
Đầu tiên, một bản tóm tắt ngắn gọn về Lambda Cube. 8 phép tính của nó có được bằng cách bật hoặc tắt 3 loại phụ thuộc sau trên đầu trang -calculus (STLC) được nhập đơn giản :λ
- đa hình : các thuật ngữ có thể phụ thuộc vào các loại;
- loại phụ thuộc : loại có thể phụ thuộc vào các điều khoản;
- thứ tự cao hơn : các loại có thể phụ thuộc vào các loại.
(Sự phụ thuộc của các điều khoản luôn luôn có).
Thêm polymorphism sản lượng hệ thống F. Ở đây, bạn có thể gõ các số nguyên Giáo Hội với , và tương tự cho các chuỗi nhị phân và Booleans. Girard đã chứng minh rằng các thuật ngữ Hệ thống F loại N a t → N a t đại diện chính xác cho các hàm số có tổng số có thể chứng minh được theo số học Peano thứ hai. Đó là toán học hàng ngày khá nhiều (mặc dù không có bất kỳ hình thức lựa chọn nào), vì vậy lớp học rất lớn, hàm Ackermann là một loại vi khuẩn nhỏ trong đó, chứ đừng nói đến hàm 2 2Nat:=∀X.(X→X)→X→XNat→Nat . Tôi không biết bất kỳ hàm số "tự nhiên" nào không thể biểu diễn trong Hệ thống F. Các ví dụ thường được xây dựng bằng đường chéo hoặc mã hóa tính nhất quán của PA bậc hai hoặc các thủ thuật tự tham chiếu khác (như quyết địnhβ-equality trong Hệ thống Bản thân F). Tất nhiên trong Hệ thống F, bạn có thể chuyển đổi giữa các số nguyên đơn vịNatvà biểu diễn nhị phân của chúngStr, và sau đó kiểm tra xem bit đầu tiên có phải là 1 hay không, do đó, loại vấn đề có thể quyết định (theo thuật ngữ loạiStr→Bool) cũng lớn không kém.22nβNatStrStr→Bool
Do đó, 3 sỏi khác của Lambda Cube trong đó bao gồm đa hình là ít nhất là biểu cảm như hệ thống F. Chúng bao gồm hệ thống F ω (polymorphism + bậc cao), có thể diễn tả chính xác tổng provably chức năng trong bậc cao PA, và Calculus của Cấu trúc (CoC), là phép tính biểu cảm nhất của Cube (tất cả các phụ thuộc đều được bật). Tôi không biết một đặc điểm của tính biểu cảm của CoC về mặt lý thuyết số học hoặc lý thuyết tập hợp, nhưng nó phải khá đáng sợ :-)ω
Tôi không biết nhiều về các phép tính thu được bằng cách chỉ cho phép các loại phụ thuộc (về cơ bản là lý thuyết loại Martin-Löf không có đẳng thức và số tự nhiên), các loại bậc cao hơn hoặc cả hai. Trong các phép tính này, các loại rất mạnh nhưng các thuật ngữ không thể truy cập vào sức mạnh này, vì vậy tôi không biết bạn nhận được gì. Về mặt tính toán, tôi không nghĩ bạn có được tính biểu cảm cao hơn nhiều so với các kiểu đơn giản, nhưng tôi có thể bị nhầm.
Vì vậy, chúng tôi còn lại với STLC. Theo như tôi biết, đây là phép tính duy nhất của Cube với giới hạn trên phức tạp thú vị (nghĩa là không lớn). Có một câu hỏi chưa được trả lời về vấn đề này trên TCS.SE, và trên thực tế tình hình hơi tinh tế.
Đầu tiên, nếu bạn sửa một nguyên tử và xác định N a t : = ( X → X ) → X → X , có kết quả của Schwichtenberg (tôi biết có bản dịch tiếng Anh của bài báo đó ở đâu đó trên web nhưng tôi không thể tìm thấy nó bây giờ) cho bạn biết rằng các hàm của loại N a t → N a t chính xác là các đa thức mở rộng (với if-then-other). Nếu bạn cho phép một số "chùng", tức là bạn cho phép tham số X được khởi tạo theo ý muốn và xem xét các điều khoản của loại N a t [XNat:=(X→X)→X→XNat→NatX với A tùy ý, có thể biểu diễn nhiều hơn nữa. Ví dụ: bất kỳ tháp hàm mũ nào (vì vậy bạn có thể vượt xa hàm mũ đôi) cũng như hàm tiền thân, nhưng vẫn không có phép trừ (nếu bạn xem xét các hàm nhị phân và cố gắng nhập chúng bằng N a t [ A ] → N a t [ A ′ ] → N a t ). Vì vậy, lớp các hàm số có thể biểu thị trong STLC hơi lạ, nó là một tập hợp con nghiêm ngặt của các hàm cơ bản nhưng không tương ứng với bất kỳ thứ gì được biết đến.Nat[A]→NatANat[A]→Nat[A′]→Nat
MNat[A]→BoolAMnM
22⋮2n,
StrMM
CSTStr[A]→BoolACSTCST⊊LINTIME(thời gian tuyến tính xác định). Cả sự ngăn chặn và thực tế là nghiêm ngặt có thể được thể hiện bằng các đối số ngữ nghĩa rất gọn gàng (sử dụng ngữ nghĩa biểu thị tiêu chuẩn của STLC trong danh mục các tập hữu hạn). Cái trước được Terui thể hiện gần đây . Thứ hai về cơ bản là một sự cải tổ các kết quả cũ của Statman. Một ví dụ về vấn đề trong là MAJORITY (được cung cấp một chuỗi nhị phân, cho biết liệu nó có chứa đúng 1s hơn 0 không).LINTIME∖CST
(Phần lớn) Sau đó add-on: Tôi vừa phát hiện ra rằng cuộc gọi lớp I trên thực tế không có một đặc tính chính xác, đó là hơn nữa cực kỳ đơn giản. Trong bài báo tuyệt đẹp năm 1996 này , Hillebrand và Kanellakis chứng minh, trong số những thứ khác, rằngCST
Định lý. (ngôn ngữ thông thường trên ).CST=REG{0,1}
(Đây là Định lý 3.4 trong bài báo của họ).
Tôi thấy điều này đáng ngạc nhiên gấp đôi: Tôi ngạc nhiên với chính kết quả đó (tôi chưa bao giờ nghĩ rằng có thể tương ứng với một cái gì đó "gọn gàng") và bởi nó ít được biết đến. Điều thú vị là bằng chứng của Terui về giới hạn trên sử dụng các phương pháp tương tự được sử dụng bởi Hillebrand và Kanellakis (diễn giải -calculus được gõ đơn giản trong danh mục các tập hữu hạn). Nói cách khác, Terui (và bản thân tôi) có thể dễ dàng phát hiện lại kết quả này vì thực tế là chúng tôi không hài lòng với việc là một lớp "kỳ lạ" :-)CSTLINTIMEλCST
(Tình cờ, tôi đã chia sẻ sự ngạc nhiên của mình trong câu trả lời này cho câu hỏi MO về "các định lý chưa biết").