Mô hình dân gian của logic tuyến tính là gì?


23

Có lẽ ứng dụng phổ biến nhất của các loại tuyến tính trong PL là sử dụng chúng để đưa ra các ngôn ngữ kiểm soát răng cưa (nghĩa là một giá trị tuyến tính có một con trỏ duy nhất cho nó, nhiều hay ít).

Nhưng có một sự không phù hợp nhỏ giữa cách sử dụng này và các mô hình biểu thị logic tuyến tính điển hình. IIRC, Benton đã chỉ ra rằng nếu một thể loại khép kín của Cartesian có một đơn nguyên giao hoán mạnh , thì loại đại số của nó sẽ được đóng đối xứng đơn hình (nghĩa là một mô hình logic tuyến tính). Nhưng định lý này không áp dụng cho việc sử dụng kiểm soát bí danh, vì đơn nguyên trạng thái không giao hoán. Và thực sự, trong vài năm qua, Simpson và đồng nghiệp của anh ta đã đưa ra phép tính cho các đơn nguyên mạnh nói chung, không phải là thuật toán cho logic tuyến tính.

Vì vậy, câu hỏi của tôi là, ngữ nghĩa học của ngôn ngữ tuyến tính với trạng thái là gì? Có một loại không suy biến (nghĩa là tenxơ không phải là một sản phẩm của Cartesian) loại đóng đối xứng đơn hình đối xứng trong đó phân bổ, đọc và cập nhật tuyến tính có thể được mô hình hóa?


6
Đây là loại câu hỏi tôi sẽ mong đợi bạn trả lời Neel, không hỏi. ;-)
Marc Hamann

5
nếu bạn có thể thu hút các nhà nghiên cứu đến cstheory.stackoverflow.com, những người có khả năng trả lời câu hỏi này, thì thế giới sẽ là một nơi tốt hơn cho nó.
Dave Clarke

Câu trả lời:


9

Dường như với tôi rằng hướng bạn nên xem xét xoay quanh ngữ nghĩa trò chơi để tham khảo chung và ngữ nghĩa liên quan cho logic tuyến tính, chẳng hạn như dựa trên trò chơi Conway . Một tài khoản đại số của các tài liệu tham khảo trong ngữ nghĩa trò chơi của Paul-André Melliès và Nicolas Tabareau có lẽ là nơi tốt nhất để bắt đầu. Trong bài báo này, logic tuyến tính được nới lỏng đến cái gọi là logic tenor để làm cho mọi thứ hoạt động, vì vậy nó không hoàn toàn là cài đặt bạn muốn. Nhưng họ dựa vào các trò chơi Conway, vì vậy chắc chắn có mối liên hệ với các mô hình logic tuyến tính. Họ cũng không thực sự khai thác tuyến tính như trong các loại tuyến tính, nhưng máy móc ở đó để làm như vậy nếu bạn muốn, tôi tin.

Công việc của Jim Laird (chẳng hạn như A Game Semantics of Name and Pointers ) và Guy McCusker cũng có thể đóng góp cho nhiệm vụ của bạn. Luận án thú vị gần đây Ngữ nghĩa trò chơi cho một ngôn ngữ hướng đối tượng của Nicholas Wolverson đẩy những ý tưởng này đi xa hơn trong một thiết lập OO. Ông xem xét chi tiết luồng tuyến tính , chỉ có một hoạt động tại một thời điểm và mô tả cách thêm các lớp tuyến tính . Cả hai đều dựa vào gõ tuyến tính. Tuy nhiên, một lần nữa, mô hình cơ bản không hoàn toàn là một mô hình logic tuyến tính, nhưng nó gần.


1
Chỉ tò mò Neel. Đây có phải là bất kỳ sử dụng cho bạn, hoặc bạn đã biết về tất cả những thứ này đã?
Dave Clarke

Tôi biết những thứ này (nhưng không tốt), nhưng ngữ nghĩa trò chơi phức tạp hơn nhiều so với những gì tôi đang tìm kiếm. Hầu hết mọi người đều có trực giác về trạng thái tuyến tính, không xa với quan điểm Strachey lỗi thời về tính toán mệnh lệnh là một yếu tố của loại đơn nguyên , và tôi đã hy vọng có một mô hình trạng thái tuyến tính sẽ giống như thế. Về cơ bản, tôi đã hy vọng có một cái gì đó bạn có thể cho thấy một sinh viên năm thứ nhất mà không làm họ sợ hãi. :)T(A)=SA×S
Neel Krishnaswami

1
Có thể trạng thái Toàn cầu của Uday Reddy coi là không cần thiết: Giới thiệu về ngữ nghĩa dựa trên đối tượng, J. Lisp và Tính toán tượng trưng, ​​9 (1996): 7-76.
Dave Clarke

Tôi đang đọc nó bây giờ, thực sự!
Neel Krishnaswami

7

(Trời ạ, Neel, đó là một câu hỏi khó.)

"Mô hình dân gian" của logic tuyến tính chắc chắn là mô hình không gian kết hợp, được thảo luận trong bài viết Logic tuyến tính của Girard (và cả trong "Bằng chứng và loại"). Đây không phải là suy thoái theo nghĩa bạn mô tả.

Cho dù ngữ nghĩa này đưa ra bất kỳ ánh sáng nào về cách ngôn ngữ chức năng tuyến tính có thể được thực hiện, tôi không chắc chắn. Khi bạn đang nói về phân bổ, đọc và cập nhật tuyến tính, bạn thực sự đang nói về việc thực hiện. Vì vậy, có lẽ, câu hỏi của bạn có thể được đặt ra là "làm thế nào để tôi chứng minh chính xác việc thực hiện một ngôn ngữ chức năng tuyến tính sử dụng cập nhật trạng thái?" Tôi không biết câu trả lời cho điều đó, nhưng tôi nghĩ nó phải tồn tại trong các bài viết đề xuất triển khai cập nhật tuyến tính.


Trên thực tế, quá dễ để chứng minh tính đúng đắn của việc triển khai trạng thái tuyến tính - tuyến tính là một ràng buộc cấu trúc mạnh mẽ đến mức bạn hầu như không cần bất kỳ ngữ nghĩa nào để thực hiện các bằng chứng này. Kết quả là, tôi không biết một ngữ nghĩa biểu thị đơn giản của trạng thái tuyến tính. Hai điều gần nhất với những gì tôi muốn là công việc của bạn về ngữ nghĩa dựa trên đối tượng và mô hình "không gian dài" của Hofmann trong công việc của ông về sự phức tạp ngầm.
Neel Krishnaswami

Trên thực tế, tôi sẽ không mô tả ngữ nghĩa dựa trên đối tượng như mô hình hóa "trạng thái tuyến tính". Nó khá là "trạng thái tuần tự" và "đối tượng tuyến tính", pha cà phê được áp đặt bởi SCI. Các mô hình trò chơi của lý tưởng hóa Algol, cũng "dựa trên đối tượng" theo nghĩa tương tự, không có bất cứ điều gì tuyến tính.
Uday Reddy

Bạn có thể một số tài liệu tham khảo cho nơi có thể tìm thấy bằng chứng chính xác như vậy? (Xin lỗi, chuyển câu hỏi lại cho bạn!)
Uday Reddy

1
Bằng chứng âm thanh đơn giản nhất cho một ngôn ngữ tuyến tính với trạng thái mà tôi biết là "L3: Một ngôn ngữ tuyến tính với các vị trí" của Ahmed, Fluet và Morisett. ( ttic.uchicago.edu/~amal/ con / linloc-fi07.pdf ) Trong bài báo, họ đưa ra một mối quan hệ logic đơn giản, nhưng đề cập đến một bằng chứng tiến trình và bảo quản cú pháp cũng đi qua.
Neel Krishnaswami

Đây là một phần khác của công việc mà tôi đã chú ý. Hãy thử CiteSeer cho Stephen Cooper, "Trên tuyến tính các loại và bắt buộc Update" liên kết . Tôi nên biết về điều này, nhưng đã không.
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.