
-
Чисто функциональный язык.
Язык
-исчисления
(множество
-термов)
есть подмножество термов языка
,
построенных без использования символов
присваивания, конструкций блоков и
рекурсивных процедур. Другими словами,
-
пустая строка есть
-терм,
-
если
–
-терм, то
,
(для всех
) –
-термы,
-
если
и
–
-термы, а
, то
и
–
-термы,
-
других
-термов, не определенных п.п. 1-3, нет.
Практически
более удобным является другое определение
множества
-термов:
-
пустая строка есть
-терм,
-
и
(для всех
) –
-термы,
-
если
–
-терм, а
, то
и
–
-термы,
-
если
и
–
-термы, то
–
-терм,
-
других
-термов, не определенных п.п. 1-4, нет.
Для
-исчисления
определены правила
-редукции,
-редукции
и
-конверсии
(здесь и далее
,
):
-
,
-
,
-
.
Отношение
редукции на множестве
-термов
определяется как рефлексивное и
транзитивное замыкание отношений
,
и
,
распространяемое на произвольные
контексты
-термов:
-
,
-
,
-
,
-
,
-
,
-
,
а
отношение
конверсии как рефлексивное, транзитивное
и симметричное замыкание отношений
,
и
,
распространяемое на произвольные
контексты
-термов,
дополненное правилом экстенсиональности
(8):
-
,
-
,
-
,
-
,
-
,
-
,
-
,
-
.
Покажем,
например, что имеет место редукция:
.
Действительно,
и
.
Отсюда
следует доказываемое утверждение.
Аналогично можно показать, что имеет
место и редукция
.
Вторым
примером является доказательство
конверсии
.
Действительно,
,
и далее искомый результат следует по
правилу экстенсиональности.
Третьим
примером является доказательство
редукции
,
известной как правило замены операторной
переменной:
Доказательство:
.
Система
правил для строгого
-исчисления
редукций без использования правила
экстенсиональности может выглядеть
так:
-
,
-
,
-
,
-
,
-
.
Термы
-исчисления
строятся по тем же синтаксическим
правилам, что и
-термы,
за исключением константы
,
которая в
-исчислении
вводится по определению:
.
Трансляцию
-термов
в
-исчисление
определим так:
,
,
,
а
обратную трансляцию
-термов
в
-исчисление
так:
,
,
.
-Исчисление
использует единственное правило
редукции:
.
Отношения
редукции и
конверсии на множестве
-термов
определяются так же, как и на множестве
-термов,
за исключением правила экстенсиональности,
которое выглядит так::
-
.
При
трансляции
-термов
в
-исчисление
правила редукции
и
становятся в нем выводимыми:
,
.
Определим
теперь правила трансляции
-термов
в язык
-исчисления
следующим образом (
-терм
будем называть
-образом
-терма
):
,
,
.
Очевидно,
что
.
Тогда получим:
Следовательно,
имеет место диаграмма
.
-Правило
(правило замены операторной переменной)
одинаково имеют место и в
-исчислении,
и в
-исчислении
(в нем оно выводимо). Очевидно и то, что
если
-терм
находится в
-нормальной
форме, то
-терм
также находится в
-нормальной
форме. Таким образом, подмножество
-образов
-термов
с правилами
и
-редукции
и
-конверсии
образуют систему, изоморфную
-исчислению,
со всеми вытекающими отсюда следствиями.
Если
исключить присваивания, блоки и, без
потери выразительности, рекурсивные
процедуры, то даже без расширенного
набора констант (правила 19,20) получим
чисто функциональный язык (в [
] он был назван исчислением
функциональных абстракций – ИФА), по
своим возможностям очень близкий к
-исчислению.
Система правил редукции и конверсии
для ИФА будет выглядеть так (с рекурсивными
процедурами):
-
[
]
;
-
;
-
;
-
;
-
;
-
;
-
или так (без рекурсивных процедур):
-
[
]
;
-
-
;
-
-
;
-
.
Определим
правила конвертирования
-термов
в ИФА:
-
;
-
;
-
.
Для
правила
-редукции
получим диаграмму