символов. Например, утверждение, записанное в виде формулы
и означающее '
Мы будем использовать в качестве операторов следующие символы:
~ отрицание, читается как 'не'
& конъюнкцию, читается как 'и'
v дизъюнкцию, читается как 'или'
=> импликацию, читается как 'следует'
Согласно правилам предпочтения операторов, оператор 'не' связывает утверждения сильнее, чем 'и', 'или' и 'следует'.
Метод резолюции предполагает, что мы рассматриваем отрицание исходной формулы и пытаемся показать, что полученная формула противоречива. Если это действительно так, то исходная формула представляет собой тавтологию. Таким образом, основную идею можно сформулировать так: доказательство противоречивости формулы с отрицанием эквивалентно доказательству того, что исходная формула (без отрицания) есть теорема (т.е. верна всегда). Процесс, приводящий к искомому противоречию, состоит из отдельных шагов, на каждом из которых применяется резолюция.
Давайте проиллюстрируем этот принцип на примере. Предположим, что мы хотим доказать, что теоремой является следующая пропозициональная формула:
(
Смысл этой формулы таков: если из
Прежде чем начать применять процесс резолюции ('резолюционный процесс'), необходимо представить отрицание нашей формулы в наиболее приспособленной для этого форме. Такой формой является
(
& (
Здесь
Любую пропозициональную формулу нетрудно преобразовать в такую форму. В нашем случае это делается следующим образом. У нас есть исходная формула
(
Ее отрицание имеет вид
~((
Для преобразования этой формулы в конъюнктивную нормальную форму можно использовать следующие известные правила:
(1)
(2)
(3)
(4)
Применяя правило 1, получаем
~(~((
Далее, правила 2 и 4 дают
(
Трижды применив правило 1, получаем
(
И наконец, после применения правила 2 получаем искомую конъюнктивную нормальную форму
(
состоящую из четырех дизъюнктов. Теперь можно приступить к резолюционному процессу.
Элементарный шаг резолюции выполняется всегда, когда имеется два дизъюнкта, в одном из которых встретилось элементарное утверждение
Шаг резолюции порождает третий дизъюнкт:
Нетрудно показать, что этот дизъюнкт логически следует из тех двух дизъюнктов, из которых он получен. Таким образом, добавив выражение (
которые явно противоречат друг другу.
Рис. 16.6. Доказательство теоремы (
На рис. 16.6 показан процесс применения резолюций, начинающийся с отрицания нашей предполагаемой теоремы и заканчивающийся пустым дизъюнктом.
На рис. 16.7 мы видим, как резолюционный процесс можно сформулировать в форме программы, управляемой образцами. Программа работает с дизъюнктами, записанными в базе данных. В терминах образцов принцип резолюции формулируется следующим образом:
существуют два таких дизъюнкта