Phân loại của Lambda Typed / Untyped


18

Bất cứ ai cũng có thể giải thích ngắn gọn (nếu có thể!) Hoặc giới thiệu cho tôi một tài liệu tham khảo, tóm tắt sự khác biệt giữa phép tính lambda chưa được đánh dấu và phép tính lambda được gõ phổ biến hơn?

Tôi đặc biệt tìm kiếm các tuyên bố về sức mạnh biểu cảm của chúng, tương đương với các hệ thống logic / số học hoặc phương pháp tính toán và tương tự với các ngôn ngữ lập trình nếu có.

Trong khi tôi chắc chắn có ý định đọc, một cái gì đó giống như một bảng tham chiếu phác thảo các phép tính và sự tương đương / khác biệt / vị trí của chúng trong hệ thống phân cấp sẽ là một tài liệu tham khảo LỚN để giúp tôi sắp xếp chúng.

Không nói những điều dưới đây là chính xác, chỉ cần cố gắng phác thảo một số ấn tượng tôi phải xem liệu chúng ít nhất đóng vai trò là điểm khởi đầu (hoặc một cái gì đó để sửa!)

Phép tính lambda chưa được xử lý - eq. theo logic thứ tự đầu tiên - không thể làm X

Đơn giản chỉ cần gõ phép tính lambda - eq để ... logic, liên quan đến Lisp?

'Đa hình' lambda calc - v.v.

Tính toán các công trình - logic tích cực?

Kết hợp logic - so sánh với ??? đánh máy tính toán lambda, liên quan đến loại ngôn ngữ APL / J

Nếu điều này liên kết với khối lambda và ba trục của nó thì tốt hơn.

Mặc dù tôi đã quen thuộc với các kiến ​​thức cơ bản về tính toán lambda và lập trình với các ngôn ngữ chức năng, tôi chưa bao giờ quấn đầu, hoặc thực hiện bất kỳ kết nối quan trọng nào với các hệ thống loại liên quan và các hương vị khác nhau của lambda (và có thể là pi?).

Khi tôi cố gắng nghiên cứu điều này, tôi không thể giúp mình nhưng thấy mình bị lạc lõng, mở ra nhiều tab trình duyệt và phân nhánh theo nhiều hướng mà tôi không bao giờ đi vào bất kỳ trong số chúng với bất kỳ chiều sâu nào!

Tôi không chắc những gì tôi yêu cầu có hợp lý hay không, nhưng hy vọng ít nhất tôi đã vẽ đủ một bức tranh để gợi ý một số cách đọc có thể giải thích những gì tôi đang tìm kiếm?


1
một hình ảnh trực quan của khối lambda, nếu có lẽ đề cập đến nó có thể giúp giải thích rbjones.com/rbjpub/logic/cl/tlc001.htm
jon_darkstar

3
Một câu chuyện cá nhân: khi tôi lần đầu tiên học tính toán đánh máy và đánh máy, tôi luôn bối rối về lý do tại sao tôi nên quan tâm đến phép tính hoàn chỉnh không gõ Turing. Điều này thường làm tôi mất hứng thú. Mặt khác, tôi không bao giờ bị làm phiền bởi điều này khi nghĩ về sự phức tạp và tính toán hiệu quả. Cuối cùng, ai đó đã kết nối hai sợi dây cho tôi trong câu trả lời này và bây giờ tôi có thể hiểu rõ hơn tại sao lại dành quá nhiều thời gian để dạy tôi đánh máy tính toán lambda.
Artem Kaznatcheev

tôi thấy một lo.logicthẻ đã được thêm vào. có lẽ là một câu hỏi ngớ ngẩn, nhưng chính xác thì nó đại diện cho cái gì?
jon_darkstar

"Khi tôi cố gắng nghiên cứu điều này, tôi không thể giúp mình nhưng thấy mình bị lạc lõng, mở ra nhiều tab trình duyệt và phân nhánh theo nhiều hướng mà tôi không bao giờ đi vào bất kỳ trong số chúng với bất kỳ chiều sâu nào!" <- Đây là tôi, mọi lúc! Cảm ơn bạn đã hỏi những gì tôi đã nghĩ ...
agam

Câu trả lời:


26

Bảng của bạn có một chút nhầm lẫn; đây là một cái tốt hơn

  • Phép tính lambda không được đánh dấu - không có giải thích logic, như Andrej lưu ý
  • Đơn giản chỉ cần gõ tính toán lambda - logic mệnh đề trực giác
  • Phép tính lambda đa hình - logic thứ hai thuần túy (nghĩa là không có bộ định lượng bậc nhất)
  • Các kiểu phụ thuộc - khái quát hóa logic thứ nhất
  • Tính toán các công trình - khái quát hóa logic bậc cao

Kiểu phụ thuộc chung hơn so với định lượng bậc một, vì nó biến bằng chứng thành các đối tượng bạn có thể định lượng hơn. Lambda tính toán tương ứng với FOL trực giác thông thường tồn tại, nhưng không được sử dụng rộng rãi đủ để có một tên đặc biệt - mọi người có xu hướng đi thẳng đến các loại phụ thuộc.

Bạn cũng có thể liên kết hình thức cú pháp của một phép tính với các hệ thống logic.

  • Công cụ tính toán kết hợp (ví dụ: tổ hợp SKI) - Hệ thống kiểu Hilbert
  • Dạng A-bình thường - tính toán tuần tự
  • Tính toán lambda gõ thông thường - khấu trừ tự nhiên

tuyệt diệu! cảm ơn. giúp tôi nhận ra động lực / sự khác biệt cho các phép tính khác nhau này và chắc chắn sẽ giúp tôi giữ được sự hiểu biết cơ bản khi tôi đọc thêm về nó
jon_darkstar

Tôi cũng sẽ bao gồm các phép tính lambda đã gõ mà không có giải thích logic, chẳng hạn như PCF. Ngoài ra, có rất nhiều phép tính lambda thú vị tương ứng với logic khác, chẳng hạn như phép tính lambda tuyến tính.
Sam Tobin-Hochstadt

@Sam: Điểm tốt. "Không diễn giải logic" thực sự quá mạnh, vì nó thực sự có nghĩa là "cho phép tự tham chiếu không hạn chế", kết hợp với tái sử dụng biến dẫn đến sự không nhất quán. Nhưng một số lý thuyết đặt dựa trên logic tuyến tính hỗ trợ các sơ đồ hiểu ngây thơ mà không có sự không nhất quán.
Neel Krishnaswami

chắc chắn, một số cách bạn có thể thêm một số thứ vào phép tính lambda mà không nhất quán. Nhưng có rất nhiều phép tính lambda thú vị, được đánh máy, không có sự giải thích logic theo nghĩa chính xác của phép tính lambda chưa được đánh dấu.
Sam Tobin-Hochstadt

20

Tinh khiết untyped -calculus là Turing hoàn thành, tức là một phần sơ đồ số lý thuyết là tính toán nếu, và chỉ nếu, đó là định nghĩa trong untyped λ -calculus. Sức mạnh tính toán của gõ λ -calculus là nhỏ hơn nhiều. Ví dụ, nếu chúng ta thêm một loại số tự nhiên đến gõ λ -calculus, cùng với 0 , người kế vị, và đệ quy nguyên thủy, chúng ta có được những gì thường được gọi là Godel của T . Nó chỉ tính các hàm đệ quy nguyên thủy (và tất cả chúng đều là tổng số).λλλnatλ0T

Các untyped -calculus không có một giải thích hợp lý dưới sự Curry-Howard thư từ, trong khi đánh máy λ -calculus tương ứng một cách chính xác để tính toán mệnh đề intuitionistic.λλ

Các mô hình đánh máy -calculus là chính xác các loại Descartes-khép kín. Mô hình của untyped λ -calculus ít well-behaved. Mặc dù có thể nói về chúng, nhưng chắc chắn chúng không được nghiên cứu rộng rãi như các thể loại đóng cartesian.λλ

λλλUlambda : U -> (U -> U)gamma : (U -> U) -> UλUλCUU[Cop,Set]UUU

Người giới thiệu:


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.