Các ứng dụng hàng ngày của lý thuyết loại


10

Tôi muốn hiểu lý thuyết loại nhưng trước tiên tôi phải biết làm thế nào tôi có thể áp dụng nó. Có thể có nhiều ứng dụng không rõ ràng của lý thuyết loại ngoài các hệ thống loại trong lập trình? Có thể có các ứng dụng khác, giả sử trong hồ sơ cá nhân và các lượt thích?


2
Tại sao một cái gì đó phải có các ứng dụng bên ngoài những gì nó được phát minh ra?
Raphael

3
Nền tảng của toán học? Mọi người cũng đã sử dụng lý thuyết loại để chính thức hóa những thứ như lý thuyết miền tổng hợp, cấu trúc liên kết, v.v. Ngoài ra còn có công việc của Chris Martens về việc sử dụng các công cụ lý thuyết loại để mô hình hóa việc kể chuyện. Liên kết luận văn
Daniel Gratzer

1
Có thể làm rõ yoy được tính là một ứng dụng?
Jake

4
Tôi không bị thuyết phục bởi tiền đề của bạn. Giả sử rằng ai đó đã nói, "Tôi muốn hiểu về kỹ thuật ô tô nhưng trước tiên tôi phải biết tôi có thể sử dụng xe hơi để làm gì. Có thể có nhiều ứng dụng không rõ ràng hơn của ô tô ngoài giao thông không?" Họ nhận được câu trả lời rằng một số người ngủ trong xe của họ và Ansel Adams đã sử dụng nó như một nền tảng để chụp ảnh . Chà điều đó thật tuyệt nhưng nó không giúp bất cứ ai hiểu về kỹ thuật và có khả năng sẽ dẫn sinh viên giả định của chúng tôi thiết kế những chiếc xe có ghế siêu ngả và hệ thống treo rất cứng.
David Richerby

3
Thực tế là phần lớn khoa học máy tính lý thuyết (bao gồm cả những thứ tôi làm việc) thực tế là vô dụng, mặc dù về mặt toán học rất đẹp. Thật không may, bạn phải chọn bên.
Yuval Filmus

Câu trả lời:


10

Bạn có thể quan tâm đến công việc trên Ceptre , kết quả nghiên cứu tiến sĩ của Chris Martens , sử dụng lý thuyết loại cho cách kể chuyện tương tác. Trích dẫn dưới đây là tóm tắt luận án :

Kể chuyện tương tác kết hợp các ý tưởng tính toán sâu sắc với lịch sử phong phú của câu chuyện và trò chơi, cung cấp một bối cảnh quan trọng cho các công cụ và ngôn ngữ được xây dựng. Đồng thời, các ngôn ngữ đặc tả chính thức cung cấp một bảng các kỹ thuật biểu diễn và suy luận thường dành cho việc phân tích các ngôn ngữ lập trình và các hệ thống suy diễn phức tạp. Luận án này kết nối các vấn đề trong lĩnh vực kể chuyện tương tác với các giải pháp trong đặc tả chính thức.

Cụ thể, chúng tôi kiểm tra tường thuật từ quan điểm cấu trúc và quan sát rằng các đường dẫn tường thuật thay thế đóng vai trò bổ sung cho các mốc thời gian tương tác đồng thời. Logic tuyến tính cung cấp các công cụ biểu diễn cần thiết để điều tra cấu trúc này và bằng cách mở rộng sự tương ứng với các bằng chứng và xây dựng bằng chứng, chúng tôi tìm thấy một bộ các khả năng tính toán. Chúng tôi trình bày ba nỗ lực nhằm hiện thực hóa những khả năng đó: (1) việc sử dụng lập trình logic tuyến tính để tạo ra các câu chuyện kể; (2) một ngôn ngữ lập trình mới để soạn thảo các câu chuyện, trò chơi và mô phỏng tương tác; và (3) các kỹ thuật để nêu và chứng minh các thuộc tính chương trình cấp thiết kế.

Chúng tôi thấy rằng lập trình logic tuyến tính, được làm giàu với một phần mở rộng tối thiểu cho ngữ nghĩa logic của nó, cho phép một loạt các thành ngữ lập trình và mã hóa miền. Để làm bằng chứng, chúng tôi đưa ra năm nghiên cứu điển hình, bao gồm mô phỏng xã hội, trò chơi phiêu lưu dựa trên chiến đấu và trò chơi trên bàn cờ. Để hỗ trợ lý luận về tính chính xác của thiết kế, chúng tôi trình bày các kỹ thuật để nêu và chứng minh các bất biến chương trình, cũng như bằng chứng có thể quyết định để tự động kiểm tra các bất biến đó cho một đoạn lớn của ngôn ngữ.

Những phát hiện này cho thấy logic tuyến tính là một ngôn ngữ biểu diễn hiệu quả để làm cơ sở cho việc mô hình hóa và thực hiện các thế giới tương tác, và họ mời các cuộc điều tra trong tương lai về việc sử dụng các phương pháp lý thuyết bằng chứng cho các hệ thống sáng tạo.


1
Nghe có vẻ giống như việc sử dụng logic tuyến tính, thay vì lý thuyết loại mỗi se .
David Richerby

6
Logic tuyến tính là một chủ đề nền tảng của lý thuyết loại. Công trình này là một phần của lý thuyết loại như một môn học (một số người mô tả công việc của họ là "lý thuyết bằng chứng" khi nó liên quan đến lý thuyết loại, mặc dù các tên không tương đương như một số tác phẩm khác trong "lý thuyết bằng chứng" sẽ được coi là cụ thể hơn đối với lý thuyết bằng chứng hơn là trung tâm của lý thuyết loại).
gasche

9

Đã có những sử dụng thú vị của lý thuyết loại trong ngôn ngữ học. Xem ví dụ các tác phẩm ngôn ngữ của Chung-chieh Shan hoặc Christian Rétoré .

Trích dẫn dưới đây là mô tả cuốn sách của Rétoré về ngữ pháp thể loại:

Cuốn sách này là một giới thiệu đương đại và toàn diện về ngữ pháp thể loại trong truyền thống logic được khởi xướng bởi công việc của Lambek. Nó hướng dẫn sinh viên và các nhà nghiên cứu thông qua các kết quả cơ bản trong lĩnh vực này, cung cấp bằng chứng hiện đại về nhiều định lý cổ điển, cũng như những tiến bộ gần đây ban đầu. Nhiều ví dụ và bài tập minh họa các động lực và ứng dụng của các kết quả này theo quan điểm ngôn ngữ, tính toán và logic. Tính toán Lambek và các biến thể của nó, và các ngữ pháp tương ứng, là trung tâm của các ghi chú bài giảng này. Một chương dành cho một tính năng chính của các ngữ pháp phân loại này: giao diện ngữ nghĩa cú pháp rất thanh lịch của chúng. Ngoài ra, chúng tôi điều chỉnh các mạng bằng chứng logic tuyến tính cho các phép tính này vì chúng cung cấp các thuật toán phân tích cú pháp hiệu quả như được minh họa trong trình phân tích cú pháp Grail.

Trích dẫn sau đây là trong phần giới thiệu của chương sách Tác dụng phụ ngôn ngữ của Shan :

Bài viết này liên quan đến các trường hợp không tuân thủ rõ ràng trong các ngôn ngữ tự nhiên với các trường hợp trong các ngôn ngữ lập trình. Nó có hình dạng như một chiếc đồng hồ cát: Tôi bắt đầu vào §1 với cách tiếp cận giao diện ngữ nghĩa cú pháp giúp chúng ta xây dựng các lý thuyết ngữ nghĩa thành phần. Cách tiếp cận đó là rút ra sự tương đồng giữa các tác dụng phụ tính toán trong các ngôn ngữ lập trình và những gì tôi gọi bằng các tác dụng phụ ngôn ngữ tương tự trong các ngôn ngữ tự nhiên.

Kết nối này có thể mang lại lợi ích cho các nhà khoa học máy tính cũng như các nhà ngôn ngữ học, nhưng tôi tập trung ở đây vào hướng chuyển đổi công nghệ sau này. Tiếp tục là hữu ích để điều trị các tác dụng phụ tính toán. Trong §2, tôi giới thiệu một ngôn ngữ kim loại mới cho các phần tiếp theo trong ngữ nghĩa.

Ngôn ngữ kim loại tôi giới thiệu rất hữu ích để phân tích cả ngôn ngữ lập trình và ngôn ngữ tự nhiên. Để có trực giác, tôi khảo sát việc sử dụng đầu tiên trong §3, sau đó chỉ ra những ưu điểm của phương pháp điều trị này trong §4.

Chuyển sang ngôn ngữ tự nhiên trong §5, tôi mô tả chi tiết cách thức quan điểm này đã giúp Chris Barker và tôi nghiên cứu sự ràng buộc và giao thoa, cũng như các câu hỏi và tính ưu việt. Tôi cũng đã sử dụng các phần tiếp theo để nghiên cứu định lượng và phạm vi không xác định, đặc biệt là tiếng Trung Quốc, nhưng chỉ có chỗ ở đây để phác họa những phát triển tiếp theo này, trong §6.


9

Do sự tương ứng của Curry-Howard , các loại có thể được hiểu là các mệnh đề và các mệnh đề là các loại.

Do đó, lý thuyết loại được áp dụng cho bất kỳ lĩnh vực nào sử dụng logic chính thức cho các bằng chứng của nó. Đây có thể là xác minh mạch, phân tích thực, logic biểu tượng, hình học, v.v.

Ví dụ, một số công cụ kiểm tra bằng chứng tự động hoạt động theo nguyên tắc này: chúng kiểm tra tính hợp lệ của bằng chứng bằng cách kiểm tra loại một thuật ngữ cụ thể trong một số hệ thống loại. Công cụ kiểm tra bằng chứng LF dựa trên phương pháp này, cũng như HOL Light . Như một ứng dụng ví dụ, mã mang theo bằng chứng đã sử dụng LF để kiểm tra bằng chứng về độ an toàn bộ nhớ của mã không tin cậy. Lợi ích của việc sử dụng loại trình kiểm tra bằng chứng này là việc triển khai có thể rất đơn giản và do đó chúng tôi có thể có được sự đảm bảo cao rằng việc triển khai là chính xác. Xem, ví dụ, bài báo sau:

Kiểm tra bằng chứng nền tảng với các nhân chứng nhỏ . Đinh Châu Wu, Andrew W. Appel, Aaron Stump. PPDP 2003.


Điều này có thể giúp: math.ucr.edu/home/baez/rosetta.pdf
Bút danh

Tôi không nghĩ rằng điều này trả lời câu hỏi. Những gì về ứng dụng thực tế?
Yuval Filmus

@YuvalFilmus Xác định "thực tế"?
David Richerby

1
Bạn có biết nếu ai đó sử dụng lý thuyết loại để chứng minh điều gì đó mới về xác minh mạch, phân tích thực, logic biểu tượng hoặc hình học không? Hay chúng ta chỉ nói về những trường hợp ai đó sử dụng 20 trang lý thuyết loại để chứng minh một cái gì đó có ba dòng trong sách giáo khoa tiểu học?
David Richerby

@David Câu trả lời này là gì về nguyên tắc bạn có thể sử dụng lý thuyết loại để chứng minh công cụ. Ngoài ra, về nguyên tắc, chúng ta có thể sử dụng automata di động để chứng minh công cụ, vì Quy tắc 110 là Turing-Complete. Tôi nghĩ rằng tuyên bố trước đây là vô nghĩa như sau này.
Yuval Filmus

7

Một bài viết thú vị giải thích các ứng dụng của các loại phụ thuộc, là Sức mạnh của Pi , cho thấy cách Agda có thể được sử dụng để giải quyết các vấn đề thú vị.

Một ví dụ điển hình khác là việc sử dụng các loại phụ thuộc để kiểm soát tài nguyên. Một ví dụ điển hình là API quản lý tệp của Effects of Idris . Chẳng hạn, chức năng đọc một dòng từ một tệp có loại sau

readLine  : { [FILE_IO (OpenFile Read)] } Eff String

trong đó xác định rằng chức năng này chỉ được áp dụng nếu có tệp được mở. Danh sách trong niềng răng chỉ ra những hiệu ứng có sẵn. Trong trường hợp này, chúng ta có chức năng này yêu cầu hiệu ứng mở tệp để đọc.

Thông tin thêm về thư viện hiệu ứng có thể được tìm thấy ở đây .

Một ứng dụng nữa là việc sử dụng các loại phụ thuộc cho đồng thời như được báo cáo trong bài viết sau đây của người tạo ra Idris.


1
Thêm ví dụ.
Rodrigo Ribeiro

3

như đã đề cập trong câu trả lời của jmite, lý thuyết logic / loại thứ tự cao hơn trong xác minh mạch / phần cứng / điện tử đã xuất hiện trong nhiều thập kỷ và bây giờ rất thường xuyên đến nỗi nó thậm chí không được chú ý / coi là "ứng dụng" sau một nỗ lực chuyển giao rõ ràng trong những năm 1990 mặc dù nó vẫn là một lĩnh vực nghiên cứu tích cực. cũng có rất nhiều ứng dụng của Coq và logic loại của nó, đặc biệt là xác minh mạch / phần cứng / điện tử mọi cách từ logic cổng mức thấp đến các cấu trúc / hệ thống con / cấp bậc cao hơn nhiều. Dưới đây là một vài giới thiệu quan trọng


1
Mặc dù vậy, công bằng mà nói, hầu hết xác minh phần cứng thực tế ở quy mô công nghiệp đã được thực hiện bằng cách sử dụng kiểm tra mô hình, một công nghệ xác minh thường không liên quan đến lý thuyết loại (mặc dù các cây cầu đã được rút ra gần đây). Lý thuyết loại đã được sử dụng để xây dựng các ngôn ngữ mô tả phần cứng (không được tìm hiểu nhiều từ các ngôn ngữ lập trình) và hầu hết các ngôn ngữ bạn cung cấp đều thuộc loại này và một số trợ lý chứng minh được thiết kế để xác minh phần cứng (đặc biệt là HOL gốc, nhưng không phải là PVS được sử dụng nhiều nhất) là lý thuyết loại Curry-Howard.
gasche

nếu bạn có kiến ​​thức cơ bản sâu hơn về xác minh phần cứng, sẽ rất thú vị khi nghe thêm chi tiết trong Trò chuyện Khoa học Máy tính nhưng suy nghĩ / nghi ngờ các dòng / khái quát hẹp không dễ dàng rút ra trong lĩnh vực này, ví dụ như giữa kiểm tra mô hình và lý thuyết loại. có thể cần phân tích lịch sử rất tinh tế để phát hiện / kết nối toàn diện các kết nối giữa hai lĩnh vực khác nhau với các mục tiêu khác nhau và đôi khi thậm chí nằm ngoài khả năng của các chuyên gia trong cả hai lĩnh vực ... tổng thể giới thiệu cho thấy các kết nối mạnh mẽ có thể được phân tích thêm. ..
vzn
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.