Đối với những ngôn ngữ đã có một lý thuyết về tương đương quan sát?


10

Để 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 1t1t2vt1vt2vv

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 bt1t2CC[t1]C[t2]C[t1]C[t2]ababđá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 đó.t1t2

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.

1
PQC[]C[P]C[Q]

@MartinBerger: đó là ý tưởng tôi đang ám chỉ, nhưng việc chứng minh nó trực tiếp là cực kỳ khó khăn, bởi vì bạn cần phải làm bằng chứng cho tất cả C (tôi sẽ giải thích điều đó tốt hơn trong câu hỏi). Ngoài ra, nếu tất cả các chương trình chấm dứt, định nghĩa bạn sử dụng, như đã cho, sẽ xác định tất cả các chương trình.
Blaisorblade 6/03/2015

βη

1
C[P]trueC[Q]truevà (2) dễ xử lý, ví dụ như một số khái niệm về tính lưỡng tính hoặc quan hệ logic. Phụ thuộc vào ứng dụng.
Martin Berger

1
@Blaisorblade Có lẽ. Các nhà lý thuyết đồng thời đã làm điều này mạnh mẽ trong một thời gian dài, bởi vì với các quy trình đồng thời, nó không rõ ràng hơn nhiều về khái niệm tương đương để sử dụng. Điều này đã dẫn đến sự phân công lao động: sử dụng ngữ nghĩa dựa trên giảm với định lượng trên các bối cảnh để xác định khái niệm tương đương và sau đó sử dụng phép chia nhỏ hoặc dấu vết trên các chuyển đổi được dán nhãn để chứng minh tính tương đương (hoặc không có). Một câu hỏi nghiên cứu mở lớn trong lý thuyết đồng thời là làm thế nào để đi từ cái trước sang cái sau theo thuật toán.
Martin Berger

Câu trả lời:


3

[[]]

[[t1]]=[[t2]]t1t2.


Cảm ơn câu trả lời, nhưng -1: Trong khi tôi đồng ý, câu hỏi đề cập đến các hệ thống loại thuần túy - AFAICS, một ngữ nghĩa biểu thị cho các hệ thống loại thuần túy là một vấn đề mở, vì vậy tôi nghĩ rằng một câu trả lời nên chỉ ra một số ngữ nghĩa học. (Trên thực tế, nếu tôi có một ngữ nghĩa học biểu thị, tôi sẽ phân phối hoàn toàn với hoạt động, như đã đề cập trong câu hỏi). (Nhưng xin lỗi vì câu hỏi quá dài.)
Blaisorblade

@MartinBerger, tôi không hiểu những lời chỉ trích của bạn. OP yêu cầu các phương pháp hiển thị tương đương quan sát, tôi đề cập đến một phương pháp phổ biến, và sau đó bạn phản đối rằng các cách khác tồn tại mà tránh phương thức này?
Andrej Bauer

2
@Blaisorblade, vậy thì bạn sẽ phải phát minh ra một ngữ nghĩa biểu thị cho các hệ thống loại thuần túy, phải không? :-) Nhưng nghiêm túc hơn, tôi sẽ hỏi Alex Simpson, anh ấy sẽ biết rõ hơn về ngữ nghĩa học biểu thị cho những điều như vậy.
Andrej Bauer

@AndrejBauer Nó không có nghĩa là một lời chỉ trích, nhiều hơn là một phụ lục.
Martin Berger

2

η


1
Tôi không nghĩ rằng Tiến sĩ của Strerich là về PTS. Đó là về ngữ nghĩa của Tính toán công trình và kết quả độc lập thông qua ngữ nghĩa độ tin cậy. Xem ở đây .
Martin Berger

Cảm ơn bạn đã làm rõ! Tôi sợ rằng liên kết bị hỏng mặc dù (và khó khắc phục với liên kết rút gọn).
cody

Các liên kết là bảng nội dung của cuốn sách ở đây . Tôi hy vọng cái này hoạt động tốt hơn.
Martin Berger

λ

@MartinBerger: bạn có nghĩa là ngữ nghĩa thực tế?
Dominique Devriese

0

Câu trả lời này cho thấy một cách tiếp cận vấn đề. (Phản hồi được chào đón).

PFPL chương 49 thảo luận, cùng một lúc, các khái niệm tương đương về tương đương quan sát và tương đương logic. Tương đương logic là cùng một mối quan hệ được sử dụng để tham số hóa trạng thái, vì vậy cốt lõi của chương là một bằng chứng về tham số cho Hệ thống F.

Làm việc trên tham số cho PTS, AFAICT, không thảo luận về mối quan hệ với tương đương quan sát. Trong thực tế, để thậm chí xác định tương đương quan sát, trừ khi bạn không có sự suy giảm, bạn cần một số loại mặt đất tích cực (naturals, booleans) để sử dụng cho các quan sát.

Tuy nhiên, định lý chính (PFPL 47.6, 48.3, 49.2) để liên hệ hai quan hệ được chứng minh độc lập với ngôn ngữ cụ thể:

Tương đương quan sát là sự phù hợp nhất quán trên biểu thức.

Sau đó, để chỉ ra rằng tương đương logic ngụ ý tương đương quan sát, người ta chỉ cần chỉ ra rằng tương đương logic là một sự phù hợp nhất quán. Tuy nhiên, hướng khác đòi hỏi một số công việc nữa: đặc biệt, để chỉ ra rằng sự tương đương logic là một sự phù hợp, người ta tiến hành bằng cách cảm ứng trên các bối cảnh.

n + 1 = 1 + nVecN nnVecNVecNn+1=1+nVec (n + 1)Vec (1 + n)n + 11 + n

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.