Пример (применение правила замены термов).
К терму succ(succ(pred(succ(zero)))) может быть применено правило
предыдущего примера, Тогда получим
succ(succ(pred(succ(zero)))) → succ(succ(zero)).
Аналогом алгоритмов в виде подстановки текстов являются алгоритмы в
виде систем подстановки термов.
3.5.10. Системы подстановки термов
Множество (в общем случае конечное) R правил подстановки термов на сиг-
натуре Σ называется системой подстановки термов (СПТ) над Σ. Если для
последовательности термов (t
i
) 0 ≤ i ≤ n справедливо для i = 0, . . . , n − 1
t
i
→ t
i+1
есть применение правила из системы подстановки термов R, то
последовательность термов является вычислением в R для t
0
.
Терм t называется терминальным для системы R, если не существует
терма r такого, что t → r есть применение правила из R.
Если в вычислении, заданном с помощью термов (t
i
) 0 ≤ i ≤ n, терм t
n
является терминальным, то вычисление называется терминированным (за-
вершающимся), a t
n
— результатом или выходом вычисления для входа t
0
.
Бесконечная последовательность (t
i
) i ∈ N термов, удовлетворяющих
условию t
i
→ t
i+1
, i ∈ N есть применение правила из системы подстановки
термов R, называется нетерминированным (незавершающимся) вычислени-
ем в R для t
0
. Система R называется терминированной, если не существует
незавершающихся вычислений.
Терминальные основные термы определяют нормальную форму. Они ча-
сто также называются термами в нормальной форме относительно R. Над
системой R мы можем терму t поставить в соответствие терминальный терм
r в качестве нормальной формы, если r есть результат вычислений с входом
t. Как правило, система нормальных форм, индуцированных через СПТ, не
является ни однозначной, ни полной. Термы, для которых существуют толь-
ко бесконечные вычисления, не имеют нормальных форм. Для определенных
термов могут существовать вычисления с различными результатами.
Пример (СПТ для вычислительной структуры BOOL). Ниже символы
функций ¬, ∨ будут использоваться в скобочной префиксной и инфиксной
формах записи. Правила подстановок термов гласят:
(¬true) → false,
(¬false) → true,
(false ∨ x) → x,
(x ∨ false) → x,
(true ∨ true) → true.
Эта СПТ редуцирует каждый основной терм типа bool к терму true или
false. Повторное применение ППТ из заданного множества правил можно
трактовать как алгоритм, работающий с термами в качестве входа и выхода.
39