Để chứng minh tính chính xác, tôi đang tìm kiếm một khái niệm có thể sử dụng được về tính tương đương của chương trình cho các hệ thống loại thuần túy (PTS) của Barendregt; thiếu điều đó, cho đủ hệ thống loại cụ thể. Mục tiêu của tôi chỉ đơn giản là sử dụng khái niệm, không điều tra nó vì mục đích riêng của nó.
Khái niệm này phải là " phần mở rộng " - đặc biệt, để chứng minh rằng , nó đủ để chứng minh rằng cho tất cả các giá trị của loại thích hợp.t 1v
Tương đương mệnh giá
Tính tương đương của biểu thị dễ dàng thỏa mãn tất cả các bổ đề đúng, nhưng một ngữ nghĩa biểu thị cho PTS tùy ý có vẻ khá khó khăn - nó đã xuất hiện khó khăn cho Hệ thống F.
Tương đương bối cảnh / quan sát
Sự thay thế rõ ràng là các dạng tương đương theo ngữ cảnh khác nhau (hai thuật ngữ tương đương nhau nếu không có bối cảnh cơ bản nào có thể phân biệt chúng), nhưng định nghĩa của nó không thể sử dụng được ngay lập tức; các bổ đề khác nhau không tầm thường để chứng minh. Họ đã được chứng minh cho PTS? Ngoài ra, lý thuyết sẽ là một "phần mở rộng rõ ràng", hay có lý do để tin rằng lý thuyết sẽ khác biệt đáng kể?
EDIT: Tôi đã không nói những gì khó khăn ở trên.
Phần dễ: định nghĩa
Xác định tính tương đương không quá khó và định nghĩa xuất hiện trong nhiều bài báo (bắt đầu từ nghiên cứu về PCF của Plotkin 1975, nếu không sớm hơn - nguồn có thể là luận án tiến sĩ của Morris từ năm 1968). Chúng tôi nếu cho tất cả các bối cảnh mặt đất , - nghĩa là, và cho kết quả tương tự . Bạn có một vài lựa chọn ở đây với rất nhiều lựa chọn thay thế: Ví dụ, trong một ngôn ngữ bình thường hóa mạnh mẽ, nếu bạn có một loại tự nhiên mặt đất, bạn có thể nói rằng bối cảnh mặt đất là những bối cảnh trả về tự nhiên, và sau đó có nghĩa là và C C [ t 1 ] ≃ C [ t 2 ] C [ t 1 ] C [ t 2 ] a ≃ b a bđánh giá đến cùng một số. Với việc không kết thúc, đối với các ngôn ngữ hợp lý, đủ để sử dụng "X chấm dứt" làm quan sát, bởi vì nếu hai chương trình tương đương khi quan sát chấm dứt, chúng cũng tương đương khi quan sát kết quả.
Phần cứng: bằng chứng
Tuy nhiên, những bài báo đó thường không giải thích được việc sử dụng định nghĩa này khó đến mức nào. Tất cả các tài liệu tham khảo dưới đây cho thấy làm thế nào để đối phó với vấn đề này, nhưng lý thuyết cần thiết là khó hơn người ta nghĩ. Làm cách nào để chúng tôi chứng minh rằng ? Chúng ta có thực sự phân tích trường hợp và cảm ứng trên bối cảnh không? Bạn không muốn làm điều đó.
Như Martin Berger đã chỉ ra, thay vào đó, bạn muốn sử dụng, hoặc là chia đôi (như được thực hiện bởi Forge) hoặc mối quan hệ tương đương logic (mà Harper chỉ đơn giản gọi là "tương đương logic").
Cuối cùng, làm thế nào để bạn chứng minh tính mở rộng như được xác định ở trên?
Harper giải quyết những câu hỏi này trong 10 trang cho Hệ thống T, thông qua sự thông minh và quan hệ logic đáng kể. Khai thác mất nhiều hơn. Một số ngôn ngữ phức tạp hơn.
Làm thế nào để đối phó với điều này
Tôi thực sự bị cám dỗ đưa ra bằng chứng của mình một cách có điều kiện dựa trên lý thuyết tương đương được phỏng đoán cho PTS, nhưng các lý thuyết thực tế đòi hỏi những lập luận không cần thiết, vì vậy tôi không chắc khả năng phỏng đoán như vậy sẽ như thế nào.
Tôi biết (mặc dù không chi tiết) về các tác phẩm sau:
- Andrew Pitts (ví dụ trong ATTAPL cho một Hệ thống F mở rộng, và trong một vài bài viết, chẳng hạn như "Các lý thuyết dựa trên hoạt động của chương trình" 58 trang).
- Cơ sở thực tiễn của ngôn ngữ lập trình (chương 47-48), được lấy cảm hứng từ các tác giả (nhưng tuyên bố có bằng chứng đơn giản hơn).
- Một nghiên cứu hợp lý về sự tương đương của chương trình . Tôi không thể tìm thấy một bản tóm tắt tiếng Anh, nhưng nó dường như dành rất nhiều nỗ lực cho các tác dụng phụ (tài liệu tham khảo), có vẻ như là một biến chứng trực giao.