2012-11-01 26 views
17

Đọc qua this questionthis blog post giúp tôi suy nghĩ thêm về đại số loại và cụ thể cách lạm dụng nó.Loại đại số và ký hiệu mũi tên lên Knuth

Về cơ bản,

1) Chúng ta có thể nghĩ đến loại Either A B như bổ sung: A+B

2) Chúng ta có thể nghĩ về cặp ra lệnh (A,B) như phép nhân: A*B

3) Chúng ta có thể nghĩ của hàm A -> B là lũy thừa: B^A

Có một mô hình rõ ràng đang diễn ra ở đây: Phép nhân ion được lặp lại, và lũy thừa là phép nhân lặp lại. Điều này dẫn đến Knuth to define the up arrow ↑ là lũy thừa, ↑↑ là lũy thừa lặp lại, ↑↑↑ lặp lại ↑↑, v.v. Do đó, 10 ↑↑↑↑ 10 là số HUGE.

Câu hỏi của tôi là: làm cách nào chức năng ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ được thể hiện trong dữ liệu đại số loại? Dường như ↑ nên là một hàm có số lượng đối số vô hạn, nhưng điều đó không có ý nghĩa gì nhiều. A↑B chỉ đơn giản là [A] -> B và do đó A↑↑↑↑B[[[[A]]]]->B?

Điểm thưởng nếu bạn có thể giải thích những gì Ackerman function sẽ trông như thế nào hoặc bất kỳ số nào khác trong số hypergrowth functions.

+0

Tôi không nghĩ rằng điều này có thể được thực hiện một cách thực sự kinh điển. Việc xác định 'aˣ' với' x-> a' đã là một chút đặc biệt, chỉ thay vì _happens_ có isomorphy giữa 'a'' và' aˣ + a'' cũng như 'a'' và' (aˣ) ʸ' . Nhưng những đẳng thức này không chính xác về mặt kinh điển. – leftaroundabout

Trả lời

8

Ở cấp rõ ràng nhất, bạn có thể xác định một ↑↑ b với

((...(a -> a) -> ...) -> a) -- iterated b times 

và ↑↑↑ b chỉ là

(a↑↑(a↑↑(...(a↑↑(a↑↑a))...))) -- iterated b times 

để mọi thứ có thể được biểu diễn dưới dạng một số dài loại chức năng (do đó là một số loại tuple dài vô cùng ...). Nhưng tôi không nghĩ rằng có một biểu thức thuận tiện cho một biểu tượng mũi tên lên tùy ý về (các cardinality của) các loại Haskell quen thuộc (ngoài những cái được viết ở trên với ... hoặc ), vì tôi không thể nghĩ ra bất kỳ toán học phổ biến nào các đối tượng có các phụ thuộc tổ hợp lớn hơn hàm mũ trên kích thước của các bộ cơ bản (không đi đến các kiểu dữ liệu đệ quy, quá lớn) ... có thể có một số đối tượng như vậy trong lý thuyết tập hợp tổ hợp? (Câu hỏi của bạn dường như [với tôi] thêm về kích thước của bộ hơn bất cứ điều gì cụ thể để loại.)

(The Wikipedia page you linked đã kết nối các đối tượng này đến chức năng Ackermann.)

Các vấn đề liên quan