Tham số đơn phương so với tham số nhị phân


15

Gần đây tôi đã trở nên khá quan tâm đến tham số sau khi xem bài báo LICS 2012 của Bernardy và Moulin ( https://dl.acm.org/citation.cfm?id=2359499 ). Trong bài báo này, họ nội tâm hóa tham số đơn nguyên trong một hệ thống loại thuần túy với các loại phụ thuộc và gợi ý về cách bạn có thể mở rộng việc xây dựng thành các hương liệu tùy ý.

Tôi chỉ thấy thông số nhị phân được xác định trước đó. Câu hỏi của tôi là: một ví dụ về một định lý thú vị có thể được chứng minh bằng cách sử dụng tham số nhị phân, nhưng không phải với tham số đơn phương là gì? Cũng rất thú vị khi xem một ví dụ về một định lý có thể chứng minh được với tham số bậc ba, nhưng không phải với nhị phân (mặc dù tôi đã thấy bằng chứng rằng n-parametricity tương đương với n> = 2: xem http: //www.sato.kuis .kyoto-u.ac.jp / ~ Takeuti / art / par-tlca.ps.gz )

Câu trả lời:


12

Thông thường, bạn sử dụng tham số nhị phân để chứng minh tương đương chương trình. Thật không tự nhiên khi làm điều này với một mô hình đơn nguyên, vì nó chỉ nói về một chương trình tại một thời điểm.

Thông thường, bạn sử dụng mô hình unary nếu tất cả những gì bạn quan tâm là một thuộc tính unary. Ví dụ, xem dự thảo gần đây của chúng tôi, Các loại cấu trúc siêu bề mặt , trong đó chúng tôi chứng minh một kết quả âm thanh loại bằng cách sử dụng một mô hình đơn nguyên. Vì soundness nói về hành vi của một chương trình (nếu thì nó sẽ phân kỳ hoặc giảm xuống giá trị v : A ), một mô hình đơn nguyên là đủ. Nếu chúng ta muốn chứng minh sự tương đương của chương trình, chúng ta sẽ cần một mô hình nhị phân.e:Mộtv:Một

EDIT: Tôi chỉ nhận ra rằng nếu bạn nhìn vào bài báo của chúng tôi, nó trông giống như một mô hình quan hệ logic / khả năng thực hiện cũ đơn giản. Tôi nên nói thêm một chút về những gì làm cho nó (và các mô hình khác) tham số. Về cơ bản, một mô hình là tham số khi bạn có thể chứng minh bổ đề mở rộng danh tính cho nó: nghĩa là, đối với bất kỳ biểu thức kiểu nào, nếu tất cả các biến loại tự do bị ràng buộc với quan hệ nhận dạng, thì biểu thức kiểu là quan hệ nhận dạng. Chúng tôi không chứng minh rõ ràng đó là một bổ đề (tôi không biết tại sao, nhưng bạn hiếm khi cần khi thực hiện các mô hình hoạt động), nhưng tính chất này rất cần thiết cho sự lành mạnh trong ngôn ngữ của chúng tôi.

Định nghĩa về "quan hệ" và "quan hệ danh tính" trong tham số thực sự hơi khó hiểu và sự tự do này thực sự cần thiết nếu bạn muốn hỗ trợ các loại ưa thích như loại cao hơn hoặc loại phụ thuộc hoặc muốn làm việc với các cấu trúc ngữ nghĩa fancier. Tài khoản dễ tiếp cận nhất mà tôi biết là trong bản nháp của Bob Atkey về Thông số quan hệ cho các loại cao hơn .

Nếu bạn có hứng thú với lý thuyết thể loại, điều này lần đầu tiên được Rosolini xây dựng theo một cách trừu tượng trong bài viết Đồ thị phản xạ và đa hình tham số của bài báo . Nó đã được Dunphy và Reddy phát triển hơn nữa trong các Giới hạn Tham số của bài báo của họ , và bởi Birkedal, Møgelberg và Petersen trong Các mô hình lý thuyết miền của đa hình tham số .


5

Đây sẽ là một nhận xét cho câu trả lời của Neel, nhưng nó hơi dài. Được thúc đẩy bởi một gợi ý từ Rasmus Petersen, tôi đã tìm thấy những điều sau đây trong luận án của Møgelberg (nhấn mạnh của tôi):

Ivar Rummelhoff [36] đã nghiên cứu mã hóa số tự nhiên theo từng mô hình trên các PCA khác nhau và cho thấy trong một số mô hình này, mã hóa chứa nhiều hơn số tự nhiên. Vì vậy, các mô hình không thể là tham số. Mặc dù ông không đề cập đến nó, nhưng điều này cho thấy rằng tham số đơn nguyên khác với tham số nhị phân (quan hệ), vì người ta có thể dễ dàng chỉ ra rằng mã hóa các số tự nhiên trong bất kỳ mô hình nào là tham số đơn phương.

Bài viết được trích dẫn là Polynat trong các mô hình PER .


3

nnR(n+1)R'(x,y)R(x)y= =xTôiTôi[1 ..n]nn+1n+1n , và điều này diễn ra trên ad infinitum. Vì nhiều mối quan hệ hơn có nghĩa là tham số mạnh hơn và các họ chức năng ít hơn sẽ được coi là "tham số", chúng tôi hiểu rằng "tham số thực" là những gì chúng tôi đạt được trong giới hạn và mỗi tham số hữu hạn là một xấp xỉ với nó.

Những mối quan hệ không thường xuyên này đã được chính thức hóa thành "mối quan hệ logic của Kripke với sự khác biệt", còn được gọi là quan hệ Jung-Tiuryn. Jung và Tiuryn ​​đã chỉ ra rằng thông số vô hạn như vậy là đủ để mô tả tính xác định của lambda, và O'Hearn và Riecke đã chỉ ra rằng nó đủ để mô tả các mô hình trừu tượng hoàn toàn cho các ngôn ngữ lập trình, bao gồm cả PCF tuần tự. Đây là những kết quả cơ bản và đẹp!

Do đó, tham số đơn phương là đơn giản nhất và ít biểu cảm nhất, gần đúng về tham số thực, và tham số nhị phân trở nên tốt hơn một chút. Câu hỏi của bạn là "tốt hơn bao nhiêu"? Ấn tượng của tôi là nó rất nhiều tốt hơn . Lý do là, ở cấp độ đơn nguyên, "quan hệ danh tính" là mối quan hệ hoàn toàn đúng, không có nghĩa gì nhiều. Ở cấp độ nhị phân, "quan hệ danh tính" là bình đẳng. Vì vậy, bạn có một bước nhảy đột ngột trong sức mạnh của tham số trong việc đi từ cấp độ đơn nhất sang nhị phân. Sau đó, nó ngày càng được tinh chế.

Kurt Sieber đã nghiên cứu những vấn đề này ở một số chiều sâu: về tính tuần tự và cho các ngôn ngữ giống như Algol .


2

Có lẽ bài báo dễ đọc nhất cho các ứng dụng của tham số nhị phân là Định lý miễn phí của Wadler ! .

Trên thực tế, tôi hơi ngạc nhiên bởi câu hỏi bởi vì tham số nhị phân là những gì thường được đề cập nhất trong các bài báo tham số. Ngay cả bài báo gốc Reynold "Các loại, trừu tượng và đa hình tham số" cũng đề cập đến nó ở khắp mọi nơi. Nó đúng hơn là thông số đơn phương không được biết đến rộng rãi.


Đó là một bài báo hay, nhưng tôi quen thuộc với tham số nhị phân - điều tôi muốn là một lời giải thích rõ ràng về lý do tại sao tham số nhị phân lại mạnh hơn tham số đơn nguyên.
Christopher Monsanto

Bây giờ tôi đã thêm một số chi tiết, mà tôi nghĩ có thể đã rõ ràng, nhưng nó không được biết đến rộng rãi. Vì vậy, nó có vẻ tốt để tài liệu ở đây.
Uday Reddy
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.