Математическое введение в декларативное программирование. Зюзысов В.М. - 55 стр.

UptoLike

Составители: 

не имеет место, поскольку переменная x свободна в add x.
Более общим понятием, по сравнению с конверсией, является понятие обобщенной
конверсии (по причинам, которые станут понятным позже, она также называется одноша-
говой редукцией). Терм M обобщенно αконвертируется (βконвертируется, η
конвертируется) к терму N, если последний получается из M в результате конверсии како-
го-то подтерма в M, являющегося αредексом (βредексом, ηредексом, соответственно).
Обобщенная конверсии обозначается также как и просто конверсия: M
α
N (аналогично
и для других видов обобщенной конверсии).
В следующих примерах конвертируемые редексы подчеркнуты.
((λx. (λy. (add x y))) <3>)
<4>
β
(λy. add <3> y) <4>
(λy. add <3>y) <4>
β
add <3> <4>
Отметим, что в первой конверсии сам терм ((λx. (λy. (add x y))) <3>)<4> не является ре-
дексом. Мы будем иногда писать последовательность конверсий, подобных двум преды-
дущим как:
((λx. (λy. (add x y))) <3>)
<4>
β
(λy. add <3> y) <4>
β
add <3> <4>
В следующих двух примерах исходное исходное выражение одно и то же, но по-
следовательности конвертируемых редексов различны (используемые редексы подчерк-
нуты):
1) (λf. λx. f <3> x) (λy. λx.add x y)
<0>
β
(λx.(λy. λx . add x y) <3> x) <0>
η
(λz.(λy. λx . add x y) <3> z) <0> выбрали один из двух возможных редексов
β
(λy.λz. add z y) <3> <0>
β
(λz. add z <3>) <0>
β
add <0> <3>
2) (λf. λx .f <3> x) (λy. λx. add x y)
<0>
β
(λx. (λy. λx. add x y) <3> x) <0> – выбрали один из двух возможных редексов
η
(λx.(λx. add x <3>)x ) <0>
β
(λz.(λx. add x <3>)z ) <0>снова делаем произвольный выбор
β
(λz. add z <3>)<0>
β
add <0> <3>
Заметим, что в данном случае независимо от выбора редексов мы пришли к одина-
ковому результату.
9.1.4 Нормальные формы
Если λвыражение E получается из λвыражения E' с помощью последовательно-
сти обобщенных конверсий, то естественно считать, что E' получается в результате «вы-
числения» E, которое более точно выражается через понятие редукции.
Определение отношения редукции
Пусть E и E' есть λвыражения. Говорят, что терм E редуцируется к терму E' (и обознача-
ют как E E'), если E E' или существуют выражения E
1
, E
2
, …, E
n
такие что:
1. E E
1
2. E
n
E'
3. Для каждого i выполнено одно из трех отношений E
i
α
E
i
+1
, E
i
β
E
i
+1
или E
i
η
E
i
+1
.
55