Bài viết này khám phá một ý tưởng về việc tạo ra một hệ thống cơ sở dữ liệu có thể lưu trữ các chứng minh (proof) được tạo ra cho các proof assistant khác nhau, và sau đó sử dụng cơ sở dữ liệu này để xác minh các chứng minh bằng cách truy cập vào kernel của từng proof assistant tương ứng. Chúng ta sẽ xem xét tính khả thi về nguyên tắc của ý tưởng này, cũng như những khó khăn tiềm ẩn có thể phát sinh.
Câu hỏi đặt ra là liệu có thể xây dựng một chương trình cơ sở dữ liệu lưu trữ nhiều chứng minh khác nhau, mỗi chứng minh được tạo ra cho một proof assistant cụ thể. Chương trình này sau đó sẽ sử dụng các kernel của các proof assistant tương ứng để xác minh tính đúng đắn của các chứng minh đó. Về cơ bản, đây là một trình soạn thảo (editor) có khả năng hiển thị các chứng minh từ các hệ thống khác nhau song song và gửi chúng đến các kernel tương ứng để xác minh.
Một trong những thách thức lớn nhất là sự khác biệt giữa các kernel của các proof assistant khác nhau. Các kernel này có thể được triển khai bằng nhiều ngôn ngữ khác nhau, và quan trọng hơn, chúng có thể dựa trên các logic khác nhau. Điều này dẫn đến khó khăn trong việc giao tiếp và chuyển đổi các chứng minh giữa các hệ thống.
Các proof assistant khác nhau sử dụng các logic khác nhau. Một số có thể tương đối gần nhau, nhưng một số khác lại rất khác biệt. Vấn đề nằm ở chỗ để chuyển một định lý giữa các hệ thống, cần phải dịch câu lệnh của nó từ một formalism logic sang formalism logic khác. Điều này có thể không đơn giản, đặc biệt đối với các câu lệnh phức tạp về các đối tượng phức tạp.
"Concept alignment" (sự tương đồng về khái niệm) là một thách thức quan trọng. Ngay cả trong các formalism logic tương đối gần nhau, việc lựa chọn có thể khác nhau rất nhiều trong cách thiết lập các định nghĩa. Cần đảm bảo rằng không đưa ra một câu lệnh sai về một đối tượng khác biệt một cách tinh vi.
Việc chuyển một thư viện chứng minh hoàn chỉnh khó khăn hơn nhiều so với việc dịch một định lý duy nhất. Điều này là do các hệ thống khác nhau có các cách tiếp cận khác nhau để tổ chức thư viện. Các thư viện không chỉ bao gồm các định nghĩa và định lý, mà còn bao gồm các chiến thuật (tactics) và các script chiến thuật. Khả năng làm cho những thứ này giao tiếp được với nhau còn khó hơn nữa.
Mặc dù việc dịch giữa các proof assistant là khả thi, nhưng nó vẫn là một câu hỏi nghiên cứu dài hạn. Một số dự án, đặc biệt là Dedukti, đang cố gắng để xem điều gì là khả thi trong lĩnh vực này.
Việc xây dựng một hệ thống cơ sở dữ liệu chung cho nhiều proof assistant là một mục tiêu đầy tham vọng nhưng cũng đầy thách thức. Sự khác biệt về logic, formalism, và cách tổ chức thư viện giữa các hệ thống khác nhau đặt ra những khó khăn đáng kể. Tuy nhiên, các dự án nghiên cứu như Dedukti đang nỗ lực để giải quyết những thách thức này và mở ra những khả năng mới cho sự hợp tác và tái sử dụng chứng minh giữa các proof assistant.
Bài viết liên quan