Введення в логічну перевірку першого порядку


9

Я намагаюся навчити себе різним підходам до перевірки програмного забезпечення. Я прочитав деякі статті. Наскільки я дізнався, пропозиційна логіка з тимчасовою загалом використовує перевірку моделі за допомогою розв'язувачів SAT (у постійних - реактивних системах), а як щодо логіки першого порядку з тимчасовою? Він використовує докази теореми? Або він також може використовувати SAT?

Будь-які вказівки на книги чи статті для початківців у цьому питанні високо оцінені.


2
Перш за все, ласкаво просимо до CS: SE. Хоча я не експерт у цьому, ти, схоже, захоплюєш декілька тем одразу, залишаючи безліч дір. Не хвилюйтесь; Я роблю це постійно. Погляньте на перевірку програмного забезпечення, потім на офіційну перевірку, потім на перевірку моделі та офіційну перевірку програмного забезпечення: перевірка моделі та доказ теореми
Гай Кодер

Відповіді:


9

Логіка першого порядку не визначена, тому рішення SAT насправді не допомагає. З огляду на це, існують методи для перевірки обмеженої моделі формул першого порядку. Це означає, що при спробі визначити, чи є формула правдивою чи помилковою, може враховуватися лише фіксована кількість об'єктів. Зрозуміло, що це не є повним, але якщо знайдеться зустрічний приклад, то він справді є протилежним прикладом.

Інструмент Сплав - це один інструмент, який дозволяє описувати моделі в логіці першого порядку (хоча синтаксис поверхні заснований на реляційно описаних моделях) і використовує обмежену перевірку моделі для пошуку рішень. Під капотом використовується розв'язувач SAT. Один розширення сплаву дозволяє моделям з тимчасовим характером, хоча технічно це не підтримує часову логіку.

Якщо ви хочете вивчити далі, наприклад, щоб перевірити правильність програми, тоді ви можете переглянути засоби перевірки програми. Вони, як правило, ґрунтуються на логіці Хоара (для міркувань про до- та після умови), можливо, розширені логікою розділення (для міркувань про купи). Ці логіки, як правило, не можна визначити, тому потрібна певна кількість взаємодії між людиною та інструментом перевірки. Деякі приклади інструментів:


10

Прочитавши ваше запитання, єдиним способом я бачив і мав достатньо знань, щоб зв'язати теми, - це дати набір статей на високому рівні, які переходять від перевірки програмного забезпечення, що закінчується спробою об'єднати перевірку моделі та підтвердження теорем. Сподіваюся, мій коментар зробив це:

Погляньте на перевірку програмного забезпечення, потім на офіційну перевірку, потім на перевірку моделі та офіційну перевірку програмного забезпечення: перевірка моделі та доказ теореми.

Дейв дав хорошу відповідь, за яку я не можу зробити набагато більше справедливості на першу частину питання, ніж Дейв, оскільки я теж новачок у цьому.

Оскільки це ваше перше питання в SE сайті , я не дав відповіді, а коментар, тому що тут відповідь не може бути просто набором посилань, а повинна дати письмову відповідь та використовувати посилання на підтримку відповіді; таким чином коментар замість відповіді.

По відношенню до:

Будь-які вказівки на книги чи статті для початківців у цьому питанні високо оцінені.

Книги, які я б запропонував і використали:

В даний час я не можу розширити більше доказів теореми, тому що я все ще вивчаю плюси та мінуси кожної з них, але ті, на яких я зосереджуюсь увагу, - це

  • HOL Light завдяки книзі Джона Харрісона.
  • Кок, тому що він заснований на обчисленні конструкцій
  • Ізабель, оскільки вона заснована на об'єднанні вищого порядку.

    Ці кореспонденти також мають книги (книги), вони є поточними, популярними, відкритим кодом, підтримуються та мають активні спільноти підтримки.

Примітка. Я використовував worldcat.org для посилання на книги, але ви можете переглянути їх, використовуючи функцію Amazon заглянути всередину.


Щоб уникнути великої кількості правок у відповіді, я додаю інформацію як коментарі, а потім надалі їх згортаю у відповідь. Для спроб розібратися у багатьох подібності та відмінності між асистентами. Google for Freek Wiedijk; Я вважаю його документи досить корисними.
Гай Кодер

Велике спасибі за вашу детальну та ретельну відповідь. Для додавання ваших коментарів до книг та надання посилання на безкоштовну книгу. Знову ж таки, я не можу вам подякувати достатньо :-)
FELIPE N.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.