Tại sao một số công cụ suy luận cần sự trợ giúp của con người trong khi những người khác thì không?


16

Tôi đang tự mình tìm hiểu Định lý tự động / Trình giải quyết SMT / Trợ lý chứng minh và đăng một loạt câu hỏi về quy trình, bắt đầu từ đây .

Tại sao các trình giải thích định lý tự động, ví dụ như ACL2 và bộ giải SMT không cần sự trợ giúp của con người trong khi các trợ lý chứng minh, ví dụ như IsabelleCoq , làm gì?

Tìm câu hỏi tiếp theo của loạt bài ở đây .

Câu trả lời:


14

Hiệu lực của các công thức bậc cao nói chung là không thể quyết định và không gian tìm kiếm là rất lớn , vì vậy tất cả những gì bạn có thể làm là cố gắng tìm một bằng chứng - giả sử nó tồn tại - bằng cách liệt kê một cách khéo léo không gian chứng minh (nghĩ là búa tạ , được đặt tên một cách khéo léo) nhưng đó là thô. Con người có thể chơi lời sấm truyền, cung cấp lemmata chính để hướng dẫn bằng chứng.

Mặt khác, các máy chủ tự động thường chỉ xử lý các logic (tập hợp con) có thể quyết định, ví dụ logic mệnh đề hoặc các lớp con của logic thứ nhất, vì vậy chúng có thể chạy trong một thời gian dài nhưng cuối cùng bạn biết rằng chúng sẽ thành công.

Lưu ý rằng có các cách tiếp cận để cho phép những người hỗ trợ bằng chứng tìm thấy những lemmata quan trọng đó, ví dụ như IsaPlanner . Công cụ đoán lemmata (quy nạp) bằng cách liệt kê và thử nghiệm ngẫu nhiên và sau đó cố gắng chứng minh chúng. Bằng cách lặp lại quá trình, nhiều lemmata của các định nghĩa kiểu dữ liệu điển hình có thể được tìm thấy tự động.


ABC nhỏ

  • tính hợp lệ - một công thức hợp lệ, nó chứa bất cứ thứ gì bạn gán cho các biến miễn phí.
  • các biến miễn phí - những biến không bị ràng buộc bởi các bộ lượng hóa nhưvà
  • khả năng quyết định - một thuộc tính (boolean) là (Turing) có thể quyết định nếu có một thuật toán trả lời "có" hoặc "không" (chính xác) sau một khoảng thời gian hữu hạn.
  • logic mệnh đề - logic không thứ tự ; không cho phép định lượng.
  • logic thứ tự đầu tiên - định lượng chỉ được phép đối với các cá nhân, tức là bạn có thể làmnhưng không.x.P(x)f.f(4)>0
  • logic bậc cao hơn - bạn có thể định lượng qua (và "xây dựng") các đối tượng phức tạp tùy ý, ví dụ: các hàm bậc cao hơn (các hàm có chức năng).

@GuyCoder: Tuy nhiên, tôi không chắc điều đó là khả thi. Chúng tôi không thể viết mọi câu trả lời sao cho dễ tiêu hóa mà không có kiến ​​thức trước. ATP những thứ tiên tiến; Tôi sẽ không đề nghị bất cứ ai học chúng mà không có nền tảng vững chắc về logic. Viết câu trả lời theo cách bạn dường như muốn chúng chỉ có thể tạo ra ảo tưởng về sự hiểu biết nhưng không thực sự giúp ích, imho. Vì vậy, mọi người quan tâm đến loạt bài của bạn nên thực hiện một số logic trước tiên, chúng tôi cũng có thể trợ giúp - trong các câu hỏi khác.
Raphael

7

Tôi muốn nói rằng sự phân biệt cổ điển của "chứng minh định lý tự động" (ATP) so với "chứng minh định lý tương tác" (ITP) cần phải được xem xét lại. Nếu bạn sử dụng một hệ thống ITP nổi tiếng như Isabelle / HOL ngày hôm nay (Isabelle2013 từ tháng 2 năm 2013), thì nó tích hợp khá nhiều công cụ bổ trợ từ danh mục ATP:

  • Các công cụ chứng minh tự động chung trên tàu: các công cụ cũ của Isabelle như fastblast(của L. Paulson) và các công cụ tự động mới hơn như metis(của J. Hurd).

  • Các ATP bên ngoài cho Logic bậc nhất được gọi thông qua Sledgehammer: E prover, SPASS, Vampire. Bằng chứng được tìm thấy được phân tích để tìm ra những bổ đề đã đóng góp cho nó, giảm 10000 đến 10 giây và cho kết quả metis.

  • Các SMT bên ngoài với sự tái cấu trúc một phần bằng chứng, đáng chú ý là Z3 (bởi S. Boehme).

  • Các công cụ để tìm các ví dụ phản biện của các tuyên bố chưa được chứng minh: Nitpick / Kodkodi (J. Blanchette) và Quickcheck (L. Bulwahn).

Có phải tất cả những thứ tự động đó làm cho Isabelle trở thành một người hoạt động theo định lý tự động?

Cuối cùng, tôi nghĩ rằng sự khác biệt của "ATP" so với "ITP" chỉ là một loại "nhãn" cho biết cách bạn muốn định vị hoặc "bán" hệ thống của mình: ATPs tuyên bố là "công cụ nhấn nút", nhưng trong thực hành bạn sẽ phải tương tác (gián tiếp), bằng cách cung cấp các tham số hoặc gợi ý, hoặc cải cách vấn đề của bạn. Điều đó thực sự có thể khá khó khăn, do thời gian chạy dài là điểm chung trong cộng đồng ATP.

Ngược lại, một hệ thống ITP được tạo ra cho những người chờ đợi tại chỗ, với quyền truy cập một nửa vào các trạng thái bằng chứng nội bộ, để xem những gì còn thiếu để hoàn thành bằng chứng. Một hệ thống ITP kết hợp các công cụ ATP theo cách của Isabelle có thể trở nên hấp dẫn hơn đối với nhiều người dùng và nhiều ứng dụng hơn là chỉ riêng ITP hoặc ATP.


Đã được một thời gian, nhưng nếu tôi nhớ chính xác thì cũng không fastphải blastlà provers; về cơ bản chúng là các heuristic sử dụng các quy tắc nhất định có thể tìm thấy một bằng chứng. (Tất nhiên, họ là những người ủng hộ một tập hợp nhỏ các công thức phù hợp, điều này đúng với bất kỳ phương pháp liệt kê bằng chứng nào.)
Raphael

2
Khi bạn nói "prover", bạn thực sự có nghĩa là "thủ tục quyết định" cho một ngôn ngữ cố định nhất định? Hầu hết các "provers" ATP là các thủ tục bán quyết định, theo cách bạn đặc trưng fastblast. Lưu ý blastđược trình bày bởi L. Paulson là "A Pro Tableau Prover và sự tích hợp của nó với Isabelle" tại một số hội thảo CADE - bài báo xuất hiện sau đó trong J. UCS 1999. Isabelle có nhiều "provers" hơn và ý nghĩa đó, ví dụ như metis, nhưng cũng quyết định thủ tục cho một số ngôn ngữ đặc biệt (tập hợp số học).
Makarius
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.