Я пытаюсь научить себя различным подходам к проверке программного обеспечения. Я прочитал несколько статей. Насколько я узнал, логика высказываний с темпоральным обычно использует проверку моделей с помощью решателей SAT (в текущих - реактивных системах), но как насчет логики первого порядка с темпоральным? Использует ли он доказательство теорем? Или он также может использовать SAT?
Любые указатели на книги или статьи для начинающих в этом вопросе очень ценятся.
Ответы:
Логика первого порядка неразрешима, поэтому решение SAT не очень помогает. Тем не менее, существуют методы для ограниченной проверки моделей формул первого порядка. Это означает, что при попытке определить, является ли формула истинной или ложной, можно учитывать только фиксированное количество объектов. Понятно, что это не завершено, но если встречный пример найден, то это действительно контрпример.
Инструмент Alloy - это один инструмент, который позволяет описывать модели в логике первого порядка (хотя поверхностный синтаксис основан на реляционных моделях) и использует ограниченную проверку моделей для поиска решений. SAT решатель используется под капотом. Одно расширение сплава позволяет модели с временным характером, хотя технически это не поддерживает временную логику.
Если вы хотите продолжить изучение, например, проверки правильности программы, вы можете взглянуть на инструменты проверки программы. Как правило, они основаны на логике Хоара (для рассуждений о предварительных и постусловиях), возможно, расширены с помощью логики разделения (для рассуждений о кучах). Эти логики, как правило, неразрешимы, поэтому требуется определенное взаимодействие между человеком и средством проверки. Некоторые примеры инструментов:
источник
После прочтения вашего вопроса единственный способ, которым я мог видеть и обладал достаточными знаниями, чтобы связать темы, состоял в том, чтобы дать набор статей высокого уровня, которые детализируются от проверки программного обеспечения до попытки объединить проверку модели и доказательство теорем. Надеюсь, мой комментарий сделал это:
Посмотрите на Проверка программного обеспечения, затем Формальная проверка, затем Проверка модели и Формальная проверка программного обеспечения: Проверка модели и доказательство теорем.
Дейв дал хороший ответ, и я не могу отдать должное первой части вопроса гораздо больше, чем Дейв, поскольку я тоже новичок в этом.
Поскольку это ваш первый вопрос на сайте SE , причина, по которой я дал не ответ, а комментарий, заключается в том, что здесь ответ не может быть просто набором ссылок, а должен давать письменный ответ и использовать ссылки в поддержку ответа; таким образом, комментарий вместо ответа.
Что касается:
Книги, которые я бы предложил и использовал:
Логика в информатике - моделирование и рассуждение о системах 2-е изд. Хут и Райан Это вводит логику и переходит к проверке модели, но не входит в доказательство теорем. Так что это должно охватывать все ваши основные вопросы, связанные с логикой и проверкой моделей.
Принципы проверки моделей Байером и Катоеном Я только начал читать этот документ, и это гораздо лучше, чем читать много статей и пытаться понять, как они все сочетаются друг с другом. Это одна из самых, если не самая рекомендуемая книга на тему проверки моделей. Он должен ответить на ваши более сложные вопросы по проверке модели.
Временная логика и системы состояний Крогера и Мерца. Мне часто нравятся книги разных авторов при самостоятельном изучении предмета. Этот дополняет / завершает «Принципы проверки моделей»
Харрисон: руководство по практической логике и автоматическому мышлению. Будучи программистом, я не могу рекомендовать эту книгу достаточно. Книга начинается с введения логики и проходит через весь этап создания ядра для проверки теорем, основанного на работе HOL Light . Просто для того, чтобы подчеркнуть, что в книге используется рабочий код OCaml, объясняются теоремы в терминах, которые я считаю дружественными, и дается то, что вам нужно знать, но не настолько, чтобы вы не могли установить соединение или почувствовать, что бежите по сторонам. If - это очень сфокусированная книга о переходе от логики к конкретному типу доказательства теорем.
Как доказать это: структурированный подход Веллемана Чтобы попасть в Доказательство помощников для доказательства теорем, вам понадобятся теоремы жизни и сна.
Введение в Доказательства и Математическое Пространство по дням Это бесплатная книга, которая не только дополняет «Как доказать это», но и выходит за ее пределы в сумме. Я не удивлюсь тому, что этот станет популярным.
В настоящее время я не могу более подробно остановиться на доказательстве теорем, потому что я все еще изучаю плюсы и минусы каждого, но те, на которых я сосредотачиваюсь,
Изабель, потому что она основана на объединении высшего порядка.
Эти помощники по доказательству также обычно имеют книги, являются текущими, популярными, с открытым исходным кодом, поддерживаются и имеют активные сообщества поддержки.
Примечание: я использовал worldcat.org для ссылок на книги, но вы можете просмотреть их, используя функцию поиска Amazon.
источник