удовлетворяет спецификации, сводится к проверке формулы ψ φ.
Это означает, что любое поведение реализации, удовлетворяющее ψ,
является возможным поведением спецификации системы, и поэтому
удовлетворяет φ. Заметим, что спецификация системы может
позволять и другое поведение, которое не реализуется. Для
доказательства ψ φ используются программы автоматического
доказательства теорем.
Проверка доказательств – это область, тесно связанная с
доказательством теорем. Пользователь может передать доказательство
теоремы программе для проверки доказательств. Программа отвечает,
верно ли это доказательство. Программы проверки доказательств
выполняют более простую задачу, чем программы автоматического
доказательства теорем. Поэтому они могут работать с более
сложными доказательствами.
Для того чтобы уменьшить объем поиска при доказательстве теорем,
имеет смысл осуществлять взаимодействие с пользователем, который
может быть хорошо осведомлен о наилучшей стратегии построения
доказательства. Обычно такие интерактивные системы помогают в
поиске доказательства за счет сохранения списка действий, которые
должны быть проделаны, и предоставления подсказок, как еще не
доказанные теоремы могут быть доказаны. Более того, каждый шаг
доказательства верифицируется системой. Как правило, для
доказательства должно быть сделано много мелких шагов, и требуется
высокий уровень взаимодействия с пользователем. Обычно люди
пропускают небольшие части доказательств («тривиально»,
«аналогично»), тогда как программа требует явного присутствия этих
частей. Процесс верификации с использованием программ
автоматического доказательства теорем является медленным и
трудоемким. Кроме того, используемые инструменты обычно требуют
довольно высокой квалификации пользователей.
Логика, используемая программами доказательства теорем и
программами проверки доказательств, обычно является вариантом
логики предикатов первого порядка. В этой логике имеется
неограниченное множество переменных, множества функциональных
и предикатных символов заданной арности. Арность означает число
аргументов функционального или предикатного символа. Терм – это
переменная или строка вида f(t
1
, …, t
n
), где f – функциональный
символ арности n и t
i
– термы. Константы могут быть рассмотрены
как функции арности 0. Предикат имеет форму P(t
1
, …, t
n
), где P –
предикатный символ арности n, а t
i
– термы. Предложения в логике
первого порядка – это предикаты, логические комбинации
предложений или предложения, снабженные квантификацией