Thực hiện các ngôn ngữ trong nội bộ


11

Một trong những hậu quả thiết thực nhất của sự tương ứng "Curry-Howard-Lambek" là cú pháp của nhiều lambda-calucli / logic có thể được sử dụng để thực hiện các công trình trong một thể loại có cấu trúc đầy đủ.

Ví dụ, Hình học vi phân tổng hợp có các mô hình trong topoi có chứa và nhúng danh mục đa tạp trơn, do đó bạn có thể sử dụng logic bậc cao hơn để xây dựng các hàm trơn và giải phương trình vi phân.

Một ví dụ khác, trong bài báo này , họ nhận thấy rằng "lập chỉ mục bước" thực sự chỉ hoạt động với các presheaves so với naturals (một topos khác), vì vậy bạn có thể sử dụng cú pháp của logic bậc cao hơn để xác định quan hệ logic được lập chỉ mục theo bước mà không tẻ nhạt Thao tác các bước.

Cuối cùng, Andrej Bauer cho thấy trong câu hỏi MO này rằng bạn có thể làm được rất nhiều với "ngôn ngữ bên trong" của các biểu đồ hàng đầu.

Câu hỏi của tôi là, có ai nhận ra tầm nhìn này theo nghĩa đen trong một câu tục ngữ định lý không? Chẳng hạn, nếu tôi chỉ ra rằng một danh mục tôi quan tâm là Cartesian Đóng, sau đó tôi có thể chuyển sang "chế độ bên trong" nơi tôi viết cú pháp lambda-tính toán (với một số tiên đề cụ thể của mô hình) và sau đó có thể chuyển về "chế độ bên ngoài" và thao tác chúng như các đối tượng trong mô hình của tôi?

Trong cùng cực, tôi thậm chí sẽ muốn lý thuyết topos và logic bậc cao hơn, vì vậy tôi có thể viết các mối quan hệ logic được lập chỉ mục từng bước của mình mà không cần các bước, hoặc dạy cơ học cổ điển với một người ủng hộ định lý bằng SDG. Đây dường như là một ý tưởng rất mạnh mẽ khi ai đó có thể thực hiện lý thuyết loại phụ thuộc mở rộng một lần và cung cấp công cụ tốt và sau đó sử dụng nó với các ứng dụng cực kỳ khác nhau như được mô tả ở trên.


Chỉ vì mục đích rõ ràng: bạn có hỏi liệu có ai từng viết lại một lý thuyết toán học bằng ngôn ngữ bên trong của phạm trù cơ bản không (vì sử dụng câu tục ngữ định lý để chứng minh các công cụ trên các lý thuyết toán học như vậy)? Hoặc bạn có muốn biết liệu có ai đã thực hiện lý thuyết mô hình trong lý thuyết loại (của một số loại) không?
Giorgio Mossa

Tôi không hỏi về công việc mà mọi người đã thực hiện bằng một ngôn ngữ nội bộ cụ thể trong một câu tục ngữ định lý (mặc dù các tài liệu tham khảo cho điều đó sẽ được hoan nghênh). Tôi đang hỏi liệu ai đó đã thực hiện công việc triển khai "Ngôn ngữ nội bộ" về cơ bản là DSL trong một câu tục ngữ định lý để tôi có thể sử dụng ngôn ngữ bên trong cho bất kỳ mô hình cụ thể nào mà tôi quan tâm và nhận được tất cả lợi ích của một cú pháp hay. Đối với CCC, điều này có vẻ dễ vì cú pháp có thể dễ dàng diễn đạt bằng Coq / Agda, v.v. nhưng Topoi có vẻ khó hơn.
Tối đa mới

Câu trả lời:


7

Trong Lý thuyết mở rộng với sự ép buộc của Guilhem Jaber, Nicolas Tabareau và Matthieu Sozeau, 2012, cưỡng bức trực giác được trình bày như là một sự nội tâm hóa của việc xây dựng presheaf, được thực hiện như một bản dịch bảo tồn kiểu theo phong cách dịch thuật tham số của Bernardy và Lasson .

Điều này có nghĩa là bạn có thể định nghĩa các thuật ngữ trong lý thuyết loại thông thường của mình và sau đó "dịch chúng" thành "lớp buộc" trong đó chúng được hiểu là bản dịch ở một loại dịch khác. Ví dụ, bản dịch được tạo ra bằng cách lập chỉ mục cho việc giảm số tự nhiên cho phép bạn sử dụng các thuật ngữ thông thường của mình trong một lý thuyết sau dịch thuật trong đó một laterphương thức có thể xác định được. Điều này nghe có vẻ khá gần với ý tưởng của bạn về làm việc nội bộ trong các đỉnh cây.

Dường như họ có một plugin Coq mới, đơn giản hơn đang thực hiện những ý tưởng này tại CoqHott / coq-forcing , và đặc biệt SI.v xây dựng bản dịch buộc này để lập chỉ mục bước. Thật không may, trong khi nó thực hiện công việc xây dựng mô hình, không có ví dụ nào về việc sử dụng nó cho các định nghĩa được lập chỉ mục theo bước trong thực tế (điều duy nhất được dịch thay vì được định nghĩa trong lớp cưỡng bức Forcing Translate eq, không phải là thông tin khủng khiếp). Bạn có thể thử trải nghiệm để xem cách sử dụng tiện lợi.


5

Nếu bạn chỉ làm việc bằng ngôn ngữ nội bộ thì bạn chỉ có thể sử dụng trợ lý chứng minh. Có một kỹ thuật nhỏ là có hoặc không có quyền hạn, vì trợ lý chứng minh thường là loại lý thuyết, nhưng Coq Propphù hợp với cách giải thích Coq trong topos.

Tuy nhiên, bạn đang đề xuất sử dụng máy như một công cụ dịch thuật sẽ đưa bạn từ ngôn ngữ nội bộ sang phiên dịch trong mô hình. Đây là một ý tưởng tốt, ngoại trừ tôi nghĩ nó sẽ không hữu ích như người ta có thể mong đợi. Đúng là việc dịch từ ngôn ngữ bên trong sang mô hình là cơ học, nhưng thật không may, nó tạo ra các bản dịch phức tạp cần nhiều sự xoa bóp trước khi chúng hữu ích. (Nếu bạn đã từng thử sử dụng cách diễn giải Lawvere-Tierney về logic topos trong một topos sheaf bạn sẽ biết.)

Có một vấn đề nữa, đó là dịch ngược . Chúng ta thường bắt đầu với một khái niệm hoặc đối tượng đã biết trong mô hình, và muốn một mô tả hay hoặc axomatization của nó trong ngôn ngữ bên trong. Đây thường là công việc khó khăn và toán học thực sự. Tôi không thấy các trợ lý bằng chứng hiện tại có thể giúp đỡ như thế nào.

Về mặt kỹ thuật, người ta sẽ phải lo lắng về việc chính thức hóa:

  • cú pháp và các quy tắc của ngôn ngữ nội bộ
  • ngươi mâu
  • giải thích

Đó là rất nhiều công việc, quá. Một số dự án dọc theo các dòng này đã được thực hiện (ví dụ: việc giải thích -calculus trong danh mục đóng cartesian). Tôi không nhận thức được bất cứ ai chính thức hóa các ví dụ, ví dụ.λ

Tóm lại, sử dụng trợ lý bằng chứng để giúp kiểm tra xem bạn không làm gì sai trong ngôn ngữ nội bộ là một ý tưởng hay (thực tế, đó là một ý tưởng rất tốt, được chứng thực bởi lý thuyết loại đồng luân, nơi chúng tôi đã sử dụng Coq và Agda để phát triển các định lý mới mà sau này không được định dạng thành tiếng Anh), nhưng sử dụng nó để nhận được các tuyên bố về các mô hình dường như không hoạt động nếu không có nhiều công việc phụ. Điều đó không có nghĩa là bạn không nên thử!


Bạn có tài liệu tham khảo cho Lý thuyết loại + Prop ~ ~ topos không? Đây là trực giác của tôi nhưng tôi chưa thấy ai khác nói điều đó cho đến bây giờ.
Tối đa mới

Ngoài ra, đối với các logic cụ thể của mô hình, các tiên đề cụ thể sẽ dành riêng cho các mô hình nhưng cấu trúc của logic tổng thể vẫn chỉ là logic bậc cao, phải không? Tôi đang tưởng tượng rằng bạn sẽ mô tả bên ngoài các đặc điểm của mô hình của bạn (như functor thời gian tiếp theo trong bài viết lập chỉ mục bước) và sau đó chỉ phản ánh chúng như các tiên đề trong ngôn ngữ bên trong của bạn. Đến với các tiên đề tốtđầy đủ vẫn sẽ là một bài toán khó nhưng tôi hy vọng rằng máy có thể tự động hóa một số hệ thống ống nước.
Tối đa mới

Đối với lập chỉ mục bước cụ thể, sẽ rất hợp lý khi mở rộng logic topos với toán tử phương thức. Nói chung, đây sẽ là một tính năng của bất kỳ tình huống nào bạn quan tâm đến một bảng con hoặc bạn có một (đồng) đơn vị mà bạn muốn nghiên cứu, v.v.
Andrej Bauer

Đối với lý thuyết Loại + Prop, bạn chỉ cần nhìn chằm chằm vào mọi quy tắc và thấy rằng nếu bạn diễn giải Prop là trình phân loại phụ, tất cả đều hợp lệ trong một topos.
Andrej Bauer
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.