Например. допуская, что «⎤ (темно, зима, холодно) и что зима» выводим,
что «⎤ (темно, холодно)».
Рассмотренные выше правила могут быть применены и к большему
количеству родительских предложений. Например, для следующих знаний:
S
11
: получает (студент, стипендию) ← сдает (успешно, сессию, студент)
S
12
: сдает (успешно, сессию, студент)
нужно ответить на вопрос «Получает ли студент стипендию?». Для решения
данной проблемы можно воспользоваться доказательством от противного, т.е.
представить вопрос в виде отрицания «Студент не получает стипендию», тогда
получив в качестве резольвенты пустое множество мы опровергнем это
отрицание (соответственно докажем противоположное). Тогда решение можно
задать следующими шагами (используя последовательную подстановку):
1) S
1
: ⎤ получает (студент, стипендию)
S
11
: получает( студент, стипендию) ← сдает (успешно, сессию, студент)
Резольвента: S`: ⎤ сдает (успешно, сессию, студент).
2) S
2
: ⎤ сдает (успешно, сессию, студент)
S
12
: сдает (успешно, сессию, студент)
Резольвента: S`: (пустое множество)
Таким образом за два шага была доказана противоречивость отрицания «⎤
получает (студент, стипендию)», что означает ответ «да» на заданный вопрос
(или подтверждение высказывания «получает (студент, стипендию)»).
Подобный логический вывод, который порождает последовательность
отрицаний, называется резолюцией сверху вниз.
В общем виде резолюция сверху вниз записывается не только с помощью
констант, но и с использованием переменных и функций. Тогда для
выполнения метода резолюций необходимо использовать унификаторы, иначе в
левой части импликации и в отрицании может не оказаться одинаковых
предикатов. Унификатором называется множество присваиваний вида
Θ = {X
1
:= t
1
, ..., X
n
:= t
n
}
231