Có lý thuyết eta trung gian cho tính toán lambda?


15

Có hai lý thuyết chính, được nghiên cứu về phép tính lambda, lý thuyết beta và phần mở rộng sau khi hoàn thành của nó, lý thuyết beta-eta.

Liệu hai lý thuyết này có một giữa, một loại quy tắc eta trung gian đưa ra một lý thuyết viết lại hợp lưu? Có một số khái niệm thú vị về tính mở rộng một phần mà nó tương ứng với?

Đây là câu hỏi thứ hai tôi đã hỏi khi theo đuổi eta trung gian, phần trước là phần mở rộng của lý thuyết beta của phép tính lambda , dẫn đến câu hỏi về một khái niệm trực giao của phần mở rộng, Đặc trưng các tương đương vô hình bằng các quy tắc viết lại hợp lưu , tìm cách làm rõ trả lời cho câu hỏi trước đó

Câu trả lời:


10

Đối với phép tính đã nhập, nếu bạn xem xét các loại âm ( , × , ), bạn có thể bật hoặc tắt các quy tắc eta về cơ bản theo ý muốn mà không ảnh hưởng đến hợp lưu.1×

Đối với các loại tích cực (tổng và các cặp với loại bỏ khớp mẫu), tình huống phức tạp hơn nhiều. Về cơ bản, câu hỏi là liệu thuật ngữ này có hình thức loại bỏ phạm vi khép kín hay không, cho phép các bối cảnh tương tác theo những cách phức tạp với mở rộng eta. Ví dụ: nếu có loại A × B , thì mở rộng eta của nó là l e teA×B . Nhưng để có được những lý thuyết equational một loại lý luận mong đợi, bạn cần phải xem xét bối cảnh C [ - ] , và khái quát phương trình là C [ e ] l đ tlet(a,b)=ein(a,b)C[] (với các giới hạn phạm vi dự kiến).C[e]let(a,b)=einC[(a,b)]

Tôi nghĩ rằng bạn vẫn có thể chứng minh kết quả hợp lưu nếu bạn không cho phép chuyển đổi đi lại. Nhưng đây là tin đồn - tôi chưa bao giờ thử nó, cũng không nhìn vào các tài liệu ghi lại nó.

Mặc dù vậy, tôi thực sự không biết bất cứ điều gì về phép tính lambda chưa được kiểm tra.

EDIT: Charles hỏi về giảm eta. Điều này đầy hứa hẹn cho loại ví dụ mà anh ta tìm kiếm, bởi vì tôi nghĩ nói chung họ sẽ không đủ mạnh để mô hình hóa lý thuyết bình đẳng đầy đủ, mà tôi sẽ minh họa bằng một ví dụ đơn giản liên quan đến booleans. Các eta-mở rộng cho các phép toán luận là . (Tất nhiên, giảm eta là hướng khác.)C[e]if(e,C[true],C[false])

Bây giờ, hãy xem xét thuật ngữ . Cho thấy thuật ngữ này tương đương với i f ( e , fif(e,f,g)if(e,x,y) cần phải đi qua một eta-mở rộng, bởi vì chúng ta phải thay thế các điện tử trong một trong những if-then-elses với t r u e f một l s e để lái β -reduction. if(e,fx,gy)etruefalseβ


Tôi nên nói rõ rằng đây là về phép tính lambda chưa được xử lý: logic sang một bên có thể làm cho điều đó không rõ ràng. Trong trường hợp đánh máy, tôi hy vọng rằng tính đầy đủ của Post phù hợp với lý thuyết 〈→, ×, nhưng tôi không chắc chắn ở các loại khác. bối cảnh tương tác theo những cách phức tạp với mở rộng eta - đó là trường hợp để xem xét giảm eta, phải không, bởi vì bạn không cần phải hạn chế viết lại?
Charles Stewart

4

Theo John C. Mitchell trong Tổ chức Ngôn ngữ lập trình, cả trong STLC và tính toán lambda chưa được xử lý, quy tắc rút gọn pair (proj₁ P, proj₂ P) → Psẽ phá vỡ hợp lưu khi kết hợp với fixgiảm (hoặc, tôi giả sử không nhìn vào bằng chứng), mà không có điều kiện như vậy đối với trường hợp chưa được xử lý. Đây là định lý 4.4.19 (trang 272).


2
Tôi đoán đây là một nhận xét mở rộng về câu trả lời của Neel. Klop & De Vrijer (1989) khảo sát lý thuyết về phép tính lambda chưa được ghép nối với cặp ghép so sánh: trường hợp giảm eta thực sự không hợp lưu, nhưng lý thuyết này phù hợp (nó có mô hình trong xây dựng D_inf của Scott), và chúng cung cấp kết quả đề xuất một lý thuyết viết lại hợp lưu, bảo thủ cho các cặp tính từ có thể được đưa ra (vẫn là một vấn đề mở, AFAIK).
Charles Stewart
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.