Giới thiệu về xác minh logic thứ tự đầu tiên


9

Tôi đang cố gắng dạy cho mình những cách tiếp cận khác nhau để xác minh phần mềm. Tôi đã đọc một số bài viết. Theo như tôi đã học, logic mệnh đề với thời gian thường sử dụng kiểm tra mô hình với các bộ giải SAT (trong các hệ thống phản ứng đang diễn ra), nhưng còn logic thứ nhất với logic tạm thời thì sao? Liệu nó có sử dụng định lý provers? Hoặc nó cũng có thể sử dụng SAT?

Bất kỳ con trỏ đến sách hoặc bài viết cho người mới bắt đầu trong vấn đề này được nhiều đánh giá cao.


2
Trước hết chào mừng đến với CS: SE. Mặc dù tôi không phải là một chuyên gia về vấn đề này, bạn dường như đang nắm bắt một số chủ đề cùng một lúc để lại nhiều lỗ hổng. Đừng lo lắng; Tôi làm nó suốt. Hãy xem Xác minh phần mềm sau đó Xác minh chính thức sau đó Kiểm tra mô hìnhXác minh phần mềm chính thức: Kiểm tra mô hình và Định lý chứng minh
Guy Coder

Câu trả lời:


9

Logic thứ tự đầu tiên là không thể giải quyết được, vì vậy việc giải SAT không thực sự có ích. Điều đó nói rằng, các kỹ thuật tồn tại để kiểm tra mô hình giới hạn của các công thức thứ tự đầu tiên. Điều này có nghĩa là chỉ có thể xem xét một số lượng đối tượng cố định khi cố gắng xác định xem công thức là đúng hay sai. Rõ ràng, điều này không đầy đủ, nhưng nếu tìm thấy một ví dụ phản biện, thì nó thực sự là một ví dụ phản tác dụng.

Công cụ Alloy là một công cụ cho phép các mô hình được mô tả theo logic thứ nhất (mặc dù cú pháp bề mặt dựa trên các mô hình được mô tả tương quan) và sử dụng kiểm tra mô hình giới hạn để tìm giải pháp. Một bộ giải SAT được sử dụng dưới mui xe. Một phần mở rộng hợp kim cho phép các mô hình có đặc tính tạm thời, mặc dù về mặt kỹ thuật, nó không hỗ trợ logic tạm thời.

Nếu bạn muốn khám phá thêm, ví dụ, để xác minh tính chính xác của chương trình, thì bạn có thể xem các công cụ xác minh chương trình. Chúng thường dựa trên logic Hoare (để suy luận về các điều kiện trước và sau), có thể được mở rộng bằng logic Tách (đối với lý do về đống). Những logic này thường không thể giải quyết được, do đó cần một lượng tương tác nhất định giữa con người và công cụ xác minh. Một số công cụ ví dụ là:


10

Sau khi đọc câu hỏi của bạn, cách duy nhất tôi có thể nhìn thấy và có đủ kiến ​​thức để gắn kết các chủ đề lại với nhau là đưa ra một tập hợp các bài viết cấp cao đi sâu vào xác minh phần mềm kết thúc bằng việc cố gắng kiểm tra định lý và kiểm tra mô hình. Hy vọng rằng bình luận của tôi đã làm điều đó:

Hãy xem Xác minh phần mềm sau đó Xác minh chính thức sau đó Kiểm tra mô hìnhXác minh phần mềm chính thức: Kiểm tra mô hình và Định lý chứng minh

Dave đã đưa ra một câu trả lời hay mà tôi không thể làm công lý nhiều hơn cho phần đầu tiên của câu hỏi so với Dave đã làm, vì tôi cũng mới biết điều này.

Vì đây là câu hỏi đầu tiên của bạn tại một trang SE , lý do tôi không đưa ra câu trả lời nhưng nhận xét là vì ở đây câu trả lời không thể chỉ là một tập hợp các liên kết, mà phải đưa ra câu trả lời bằng văn bản và sử dụng liên kết để hỗ trợ câu trả lời; do đó, một nhận xét thay vì một câu trả lời.

Liên quan đến:

Bất kỳ con trỏ đến sách hoặc bài viết cho người mới bắt đầu trong vấn đề này được nhiều đánh giá cao.

Những cuốn sách tôi muốn đề xuất và sử dụng là:

  • Logic trong khoa học máy tính - Mô hình hóa và lý luận về hệ thống 2nd Ed. bởi Huth và Ryan Điều này giới thiệu logic và chuyển sang kiểm tra mô hình, nhưng không đi vào chứng minh định lý. Vì vậy, điều này sẽ bao gồm tất cả các câu hỏi cơ bản của bạn liên quan đến logic và kiểm tra mô hình.

  • Nguyên tắc kiểm tra mô hình của Baier và Katoen Tôi mới bắt đầu đọc cái này, và nó tốt hơn nhiều so với việc đọc nhiều giấy tờ và cố gắng xem tất cả chúng khớp với nhau như thế nào. Đây là một trong những cuốn sách hay nhất, nếu không phải là cuốn sách được đề xuất nhất về chủ đề kiểm tra mô hình. Nó sẽ trả lời các câu hỏi nâng cao hơn của bạn về kiểm tra mô hình.

  • Logic tạm thời và hệ thống trạng thái của Kroger và Merz Tôi thường thích có những cuốn sách của các tác giả khác nhau khi tự học một chủ đề. Điều này là để bổ sung / làm tròn "Nguyên tắc kiểm tra mô hình"

  • Sổ tay logic thực tế và lý luận tự động của Harrison Là một lập trình viên Tôi không thể giới thiệu cuốn sách này đủ. Cuốn sách bắt đầu với việc giới thiệu logic và di chuyển tất cả các điểm thông qua việc tạo ra hạt nhân cho một người hoạt động theo định lý dựa trên công việc của HOL Light . Chỉ cần nhấn mạnh rằng cuốn sách sử dụng mã OCaml đang hoạt động, giải thích các định lý theo thuật ngữ tôi thấy thân thiện và cung cấp cho bạn những gì bạn cần biết nhưng không nhiều đến mức bạn không thể thực hiện kết nối hoặc cảm thấy như bạn đang chạy xuống đường bên. Nếu là một cuốn sách rất tập trung vào việc đi từ logic đến một loại câu tục ngữ cụ thể.

  • Làm thế nào để chứng minh điều đó: một cách tiếp cận có cấu trúc của Velleman Để tham gia vào các trợ lý Proof cho định lý chứng minh bạn sẽ cần phải sống và định lý giấc ngủ.

  • Giới thiệu về bằng chứng và ngôn ngữ toán học theo ngày Đây là một cuốn sách miễn phí không chỉ bổ sung cho "Làm thế nào để chứng minh điều đó", nó còn vượt xa nó. Tôi sẽ không ngạc nhiên khi thấy cái này trở nên phổ biến.

Hiện tại tôi không thể mở rộng thêm về chứng minh định lý bởi vì tôi vẫn đang tìm hiểu những ưu điểm và sự khác biệt của từng loại, nhưng những cái tôi đang tập trung vào là

  • HOL Lightcuốn sách của John Harrison.
  • Coq vì nó dựa trên tính toán công trình
  • Isabelle vì nó dựa trên sự thống nhất bậc cao.

    Các trợ lý chứng minh này thường có (các) sách, hiện tại, phổ biến, nguồn mở, được duy trì và có các cộng đồng hỗ trợ tích cực.

Lưu ý: Tôi đã sử dụng worldcat.org để tham khảo các cuốn sách, nhưng bạn có thể xem lại chúng bằng tính năng nhìn bên trong của Amazon.


Để tránh nhiều chỉnh sửa cho câu trả lời, tôi sẽ bỏ thông tin bổ sung dưới dạng nhận xét và sau đó trong tương lai sẽ đưa chúng vào câu trả lời. Để cố gắng sắp xếp nhiều điểm tương đồng và khác biệt giữa các trợ lý chứng minh. Google cho Freek Wiedijk; Tôi thấy giấy tờ của anh ấy khá hữu ích.
Guy Coder

Rất cám ơn cho câu trả lời chi tiết và kỹ lưỡng của bạn. Để thêm nhận xét của bạn về sách và cung cấp một liên kết đến cuốn sách miễn phí. Một lần nữa, tôi không thể cảm ơn đủ :-)
FELIPE N.
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.