Kiểm tra xem một bằng chứng tùy ý là thông tư?


13

Tôi đã suy nghĩ về bằng chứng và chạy vào một quan sát thú vị. Vì vậy, bằng chứng tương đương với các chương trình thông qua Đồng phân Curry-Howard và bằng chứng tròn tương ứng với đệ quy vô hạn. Nhưng chúng tôi biết từ vấn đề tạm dừng rằng trong thử nghiệm chung, liệu một chương trình tùy ý có được lặp lại mãi mãi hay không là điều không thể giải quyết được. Bởi Curry-Howard, điều đó có nghĩa là không có "người kiểm tra bằng chứng" nào có thể xác định liệu một bằng chứng có sử dụng lý luận tròn không?

Tôi đã luôn nghĩ rằng bằng chứng được cho là bao gồm các bước dễ kiểm tra (tương ứng với các ứng dụng của quy tắc suy luận) và kiểm tra tất cả các bước giúp bạn tự tin rằng kết luận sau. Nhưng bây giờ tôi đang tự hỏi: có lẽ thực sự không thể viết một trình kiểm tra bằng chứng như vậy, bởi vì không có cách nào để nó khắc phục vấn đề tạm dừng và phát hiện lý luận tròn?

Câu trả lời:


15

Phần lớn các hệ thống bằng chứng không cho phép chứng minh vô hạn, vòng tròn, nhưng họ làm như vậy bằng cách làm cho các langau của họ không hoàn thành.

Trong một ngôn ngữ chức năng bình thường, cách duy nhất để làm cho chương trình diễn ra mãi mãi là đệ quy và về mặt lý thuyết, thông thường chúng ta xem đệ quy là tổ hợp , một chương trình loại : nghĩa là, nó nhận một hàm thực hiện các cuộc gọi đến một số đối số "tự" khác và biến nó thành một hàm đệ quy duy nhất.Ymột.(mộtmột)một

Bây giờ, áp dụng các Curry-Howard đẳng cấu này: Bây giờ chúng ta có một bằng chứng cho thấy, đối với bất kỳ đề xuất , nếu ngụ ý riêng của mình, sau đó chúng ta có thể chứng minh . Chúng tôi có thể chứng minh bất cứ điều gì theo cách này!mộtmộtmột

Chìa khóa ở đây là bộ kết hợp Y được tích hợp sẵn trong một ngôn ngữ, nó được coi là một tiên đề. Vì vậy, nếu bạn muốn nó không gây ra vấn đề cho bạn, hãy loại bỏ nó như một tiên đề!

Hầu hết các hệ thống bằng chứng chính thức, vì điều này, đòi hỏi sự đệ quy của bạn phải có cơ sở. Họ chỉ chấp nhận các chức năng mà họ có thể chứng minh sẽ dừng lại. Và kết quả là, họ từ chối một số chương trình tạm dừng, nhưng họ không thể chứng minh điều đó.

Coq thực hiện điều này theo một cách khá hạn chế: nó chỉ yêu cầu bất kỳ hàm đệ quy nào cũng có một đối số trong đó bất kỳ lệnh gọi đệ quy nào chỉ sử dụng các phiên bản nhỏ hơn của đối số đó. Agda làm một cái gì đó tương tự, nhưng với một chút kiểm tra lạ mắt hơn để chấp nhận một vài chương trình nữa.


1
Coq có loại trừ một số định lý hợp pháp mà bạn có thể chứng minh không? Hoặc luôn có cách giải quyết khi trình kiểm tra tổng thể quá bảo thủ? (Tôi cho rằng câu trả lời là giống nhau đối với các trợ lý chứng minh khác dựa trên lý thuyết loại phụ thuộc?)
stovetop

1
@boyers FWIW, trong Coq người ta có thể sử dụng Functionhoặc Program Fixpointxây dựng để chứng minh một số chức năng là tổng nếu trình kiểm tra tổng thể không thành công. Một ví dụ đơn giản là hàm sắp xếp hợp nhất trong danh sách. Chúng ta cần chứng minh một cách thủ công, chúng tôi chia các danh sách (có độ dài> 1) thành các danh sách con nhỏ hơn.
Anton Trunov

@boyers Vâng, phải có những điều mà bạn không thể chứng minh được ở Coq, theo định lý đầu tiên của Gôdel. Trong thực tế, rất hiếm khi gặp chúng, nhưng luôn có đối số đường chéo: Coq không thể chứng minh Coq, nó chỉ có thể chứng minh một tập hợp con (một tập hợp con rất lớn, bao gồm tất cả các tính năng nhưng với giới hạn thấp hơn về mức độ đệ quy nó có thể xử lý). Tôi nhớ đã đọc rằng lý thuyết của Coq tương đương với các tiên đề Peano cộng với sự tồn tại của một số thứ tự lớn nhất định (và do đó, bằng chứng cho rằng một số thứ tự thậm chí còn lớn hơn không thể phù hợp), nhưng tôi không thể tìm thấy tài liệu tham khảo ngay bây giờ.
Gilles 'SO- ngừng trở nên xấu xa'

@AntonTrunov Trong bối cảnh này, Programvà tương tự là một cá trích đỏ. Họ không thay đổi lý thuyết. Những gì họ làm là đường cú pháp để sử dụng một biện pháp trong một bằng chứng: thay vì lý do rằng đối tượng bạn quan tâm trở nên nhỏ hơn, bạn thêm một mức độ gián tiếp: tính toán một số đối tượng khác trở nên nhỏ hơn (ví dụ như một số kích thước) và chứng minh rằng nó trở nên nhỏ hơn Xem Wfthư viện.
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Tôi giả sử bối cảnh là về khía cạnh thực tế (cụ thể), giống như khi các heuristic của Coq thất bại ... Bạn có thể thử tìm bài báo mà bạn đề cập không? Một liên kết sẽ được nhiều đánh giá cao.
Anton Trunov
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.