Правила логического вывода. Вывод на основе принципа резолюций.
Автоматическое доказательство теорем – краеугольный камень логического программирования, искусственного интеллекта и других современных направлений в программировании.
Постановка задачи.
Алгоритм, который проверяет отношение
для формулы
, множества формул
и теории
, называется алгоритмом автоматического доказательства теорем. В общем случае такой алгоритм невозможен, т.е. не существует алгоритма, который для любых
,
и
выдавал бы ответ «Да», если
,и ответ «Нет», если неверно, что
. Более того, известно, что нельзя построить алгоритм автоматического доказательства теорем даже для большинства конкретных достаточно сложных формальных теорий
. В некоторых случаях удается построить алгоритм автоматического доказательства теорем, который применим не ко всем формулам теории (то есть частичный алгоритм).
Для некоторых простых формальных теорий (например, исчисление высказываний) и некоторых простых классов формул (например, прикладное исчисление предикатов с одним одноместным предикатом) алгоритмы автоматического доказательства теорем известны.
Поскольку для исчисления высказываний известно, что теоремами являются общезначимые формулы, можно воспользоваться простым методом проверки общезначимости формулы с помощью таблиц истинности, а именно достаточно вычислить истинностное значение формулы при всех возможных интерпретациях (их конечное число). Если во всех случаях получится значение И, то проверяемая формула – тавтология, и, следовательно, является теоремой теории
.
Наиболее известный классический алгоритм автоматического доказательства теорем называется методом резолюций. Для любого прикладного исчисления предикатов первого порядка
, любой формулы
и множества формул
теории
метод резолюций выдает ответ «Да», если
, и выдает ответ «Нет» или не выдает никакого ответа (т.е. «зацикливается»), если неверно, что
.
В основе метода резолюций лежит идея «доказательства от противного».
Метод резолюций в логике высказываний.
Очевидно, что формула
является общезначимой тогда и только тогда, т. е.
, когда является противоречием формула
.
Формулу
приводим к конъюнктивной нормальной форме (КНФ). КНФ – это формула, равносильная данной формуле и записанная в виде конъюнкции элементарных дизъюнкций, построенных на пропозициональных переменных, т. е. в данном случае
,
где
есть дизъюнкция конечного числа пропозициональных переменных или их отрицаний. Тем самым мы формируем множество дизъюнктов
.
Два дизъюнкта этого множества
и
,содержащие пропозициональные переменные с противоположными знаками, – контрарные литералы, т. е., например,
и
, и, следовательно,
,
, формируют третий дизъюнкт – резольвенту
, в которой исключены контрарные литералы:
.
В частности, если
,
, то резольвента для них – это дизъюнкция, ничего не содержащая (отсутствуют
и
).Ее называют пустой резольвентой и обозначают знаком □.
———
.
□
Резольвента
– это логическое следствие дизъюнктов
и
, т. е.
╞
. Неоднократно применяя правило получения резольвент к множеству дизъюнктов, стремятся получить пустой дизъюнкт □. Наличие пустого дизъюнкта □ свидетельствует о получении противоречия, поскольку пустая резольвента получается из двух противоречащих друг другу дизъюнктов
и
, каждый из которых – логическое следствие формулы
в соответствии с правилом
.
Получение противоречия с помощью формулы
означает общезначимость формулы
.
Алгоритм метода резолюций:
Шаг 1. Принять отрицание формулы
, т. е.
.
Шаг 2. Привести формулу
к конъюнктивной нормальной форме.
Шаг 3. Выписать множество ее дизъюнктов:
.
Шаг 4. Выполнить анализ пар множества
по правилу: если существуют дизъюнкты
и
, один из которых (
)содержит литерал
, а другой (
) – контрарный литерал
, то нужно соединить эту пару логической связкой дизъюнкции (
) и сформировать новый дизъюнкт - резольвенту, исключив контрарные литералы
и
.
Шаг 5. Если в результате соединения дизъюнктов, содержащих контрарные литералы, будет получена пустая резольвента □, то результат достигнут (доказательство подтвердило противоречие), в противном случае включить резольвенту в множество дизъюнктов
и перейти к шагу 4.
При реализации указанного алгоритма возможны три случая.
1. Среди текущего множества дизъюнктов нет резольвируемых. Это означает, что формула
не является общезначимой.
2. На каком-то шаге получается пустая резольвента. Формула
общезначима.
3. Процесс не останавливается, т. е. множество дизъюнкт пополняется все новыми резольвентами, среди которых нет пустых. В таком случае нельзя ничего сказать об общезначимости формулы
.
Метод резолюций в логике предикатов.
Метод резолюций работает с особой стандартной формой формул, которые называются предложениями. Предложение – это бескванторная дизъюнкция литералов. Любая формула исчисления предикатов может быть преобразована в множество предложений.
Если формула
не содержит предикатов и знаков операций (функций), то фактически имеем формулу исчисления высказываний, поскольку предикаты можно рассматривать как пропозициональные переменные. Следовательно, метод резолюций не требует существенных изменений. В случае, если формула
содержит кванторы, то ее надо привести к предваренной форме, а затем устранить кванторы, вводя сколемовские функции. При этом появятся знаки операций (функций). Затем полученную формулу приводят к конъюнктивной нормальной форме и ищут резольвенты для дизъюнктов, которые в данном случае именуют предложениями.
Для применения правила резолюции нужны контрарные литералы в резольвируемых предложениях. Пусть
и
– два предложения в исчислении предикатов. Правило вывода
называется правилом резолюции в исчислении предикатов, если в предложениях
и
существуют унифицируемые контрарные литералы
и
, т.е.
и
, причем атомарные формулы
и
являются унифицируемыми наиболее общим унификатором
. В этом случае резольвентой предложений
и
является предложение
, полученное из предложения
применением унификатора
.
Пусть два контрарных литерала, в данном случае
и
, содержат два разных терма. Например,
и
. В этом случае проводят их унификацию, т. е. замену термов (символическая запись
означает замену в формуле
терма
на терм
):
,
.
Далее находят резольвенту
.
Сформулируем более строго правила замены термов и понятие унификации.
Замена – это пара вида
, где
– переменная, а
– терм. Применение замены
к терму
, входящему в некоторую формулу, определяется индуктивно:
1)
, если
– переменная;
2)
, если
– константа;
3)
.
Т.о., унификация двух последовательных термов
и
– это замена
такая, что
.
Резольвенту для дизъюнктов
и
находят с помощью унификации термов
и
:
.
Пример: Имеется два дизъюнкта:
,
.
Заменим
,
.
Тогда резольвента для
и
есть дизъюнкт
.
Пример:Для дизъюнктов
,
нет унификации.
Пример: Некоторые студенты любят своих преподавателей. Никто не любит невежественных людей. Следовательно, ни один преподаватель не является невежественным.
Все предикаты заданы на области
.
Пусть
– студент;
– преподаватель;
– невежественный;
–
любит
.
Формализуем посылки:

Следствие:

Для доказательства логического следования можно использовать метод резолюций.
Найдем предваренные нормальные формы (ПНФ) для посылок.


Найдем сколемовскую стандартную форму (ССФ) посылок.
Элиминируем квантор
в формуле
. Положим
, получим ССФ посылки
:
.
находится в сколемовской стандартной форме.
Возьмем отрицание от следствия
:
. 
Это ПНФ. Элиминируем квантор
, положив
:

Получим множество дизъюнктов:
.
Построим резолютивный вывод:
1)
;
2)
;
3)
;
4)
;
5)
;
6)
, резольвента 5, 3;
7)
, резольвента 2, 6;
8)
, резольвента 1, 7;
9)
□ резольвента 4, 8.
| <== предыдущая лекция | | | следующая лекция ==> |
| Понятие выводимости в логике предикатов. | | | Способы задания графов. |
Дата добавления: 2015-12-16; просмотров: 2841;
