
326
ГЛАВА 11. ЕСТЕСТВЕННЫЙ ВЫВОД
Композиция подстановок
σ, $
определяется следующим образом:
σ$ = {(x, $t) | (x, t) ∈ σ}.
σ ≥ ϑ ⇔ ∃$ ϑ = σ$
(читается:
σ
накрывает
ϑ
). Если каждая из двух
подстановок накрывается другой, то они эквивалентны. Подстановка
σ
унифицирует последовательности термов
t
1
, . . . , t
n
и
r
1
, . . . , r
n
, если
для всех
i t
i
σ = r
i
σ.
Легко доказать, что отношение эквивалентности подстановок дей-
ствительно является эквивалентностью и что отношение накрытия —
предпорядок, согласованный с нею.
Теорема 11.5. (Теорема об унификации) Для каждых двух унифициру-
емых последовательностей термов существует унифицирующая под-
становка, накрывающая любую другую такую подстановку.
Доказательство. Проведем построение, которое за конечное число ша-
гов даст такую подстановку
σ либо выяснит, что ее нет.
Шаг 0.
Вначале положим подстановку пустым множеством.
Шаг 1.
Ищем в последовательностях пару термов, каждый из которых
начинается с функционального символа. Если соответствующие функ-
циональные символы различны, то две последовательности неуни-
фицируемы, если же они совпадают, заменяем члены f(s
1
, . . . , s
k
)
и g(q
1
, . . . , q
k
) на последовательности s
1
, ..., s
k
и q
1
, ..., q
k
, соответ-
ственно.
После этого шага во всех парах соответствующих друг другу термов
хотя бы один член является переменной либо константой.
Шаг 2.
Удаляем из последовательностей все одинаковые члены, нахо-
дящиеся на одинаковых местах. Если после этого хотя бы в одном ме-
сте встретятся две соответствующие друг другу (различные) константы,
унификация невозможна.
Теперь в каждой из пар термов хотя бы один является переменной.
Шаг 3.
Если первой парой является пара (x, t), то если t содержит x,
заключаем, что унификация невозможна, а если t не содержит x, то до-
бавляем к σ пару (x, t), выбрасываем первые члены из двух последова-
тельностей и заменяем остальные r на r{(x, t)}. Если после этого по-
явились пары, оба компонента которых не являются переменными, то
возвращаемся к шагу 1. Симметрично действуем в случае, когда пере-
менной является второй компонент пары.