
Элементарное введение в -исчисление
Введение.
-Исчисление
представляет собой формальную систему,
базирующуюся на предложенной А. Черчем
идее
-нотации
функций. При определении функций с
помощью выражений, определяющих их
значения, аргументы традиционно
записывались в той же нотации, которая
использовалась и для вызова значения
определяемой функции для фактических
значений ее аргументов, т.е. либо в
скобочной функциональной нотации, либо
в бесскобочной нотации, обычно, префиксной.
Примеры таких традиционных определений:
.
В качестве альтернативы А. Черч предложил
нотацию, в которой в левой части
определения указывается только имя
определяемой функции, а список ее
аргументов перенесен в правую часть
определения. Для приведенных выше
примеров это выглядит так:
.
-нотация
позволяет также отказаться от рассмотрения
функций арности
:
предполагается, что такая функция имеет
единственный аргумент, а ее значением,
в свою очередь, является функция
аргументов:
,
причем при единственном аргументе
отпадает необходимость и в использовании
разделяющей точки (если символы переменных
представляют собой неделимые языковые
конструкции).
-Нотация
функций естественным образом решает
вопрос о подстановке определений функции
вместо вызовов для вычисления ее значений
с конкретными значениями параметров,
позволяя рассматривать операцию
применения функции к аргументу
(аппликацию) как обычную связку. Нетрудно
заметить, что
-операция
функциональной абстракции в конструкции
имеет явные черты оператора, связывающего
операторную переменную
в выражении
,
описывающем значение конструируемой
функции. Как будет видно из дальнейшего,
язык, построенный с применением
единственной бинарной связки (аппликации)
и единственного
-оператора
(при наличии потенциально бесконечного
множества различных переменных), может
играть роль универсальной формальной
модели вычислимости, обладая при этом
новыми интересными особенностями, не
присущими традиционным моделям – теории
частично-рекурсивных функций и различным
математическим уточнениям понятия
алгоритма. Базирующаяся на
-исчислении
теория комбинаторов выглядит еще более
«фундаментальной», сохраняя черты
универсальности при большей синтаксической
простоте.
-
- Термы.
Для
построения
-термов
(далее просто термов, сорт объектов
) необходимо счетное множество переменных,
для чего конструируются натуральные
числа (вспомогательный сорт объектов
).
Для
построения натуральных чисел используются
два конструктора:
и
,
а для построения термов - три конструктора:
,
и
.
Далее
будет использоваться обычное для
описания
-исчисления
представление:
-
Название конструкции
Конструкция объекта
Представление
Номер переменной
Представление числа
в десятичной системе счисления
Терм - переменная
Терм - аппликация
Функциональный терм
Для
некоторых доказательств мы будем
пользоваться понятием
-контекста
(сорт объектов
);
для построения контекстов дополнительно
вводится нульарный конструктор
.
Порождаемый им элементарный контекст
будем представлять «дыркой» - символом
.
Для простоты при построении других
контекстов будем использовать те же
конструкторы
и
,
что и для построения термов, причем с
сохранением представления:
,
,
.
Если
- контекст, а
- терм, то
будет обозначать терм, полученный
заменой в
единственного символа
на терм
.
Если
и
- контексты, то
обозначает контекст, полученный заменой
в контексте
единственного символа
на контекст
.
Вхождением
терма
в терм
называется пара
,
такая, что
.
Различные вхождения одного и того же
терма
в один и тот же терм
отличаются вторыми компонентами
соответствующих пар, т.е. контекстами
вхождений.
На
множестве термов определена функция
:
называется множеством свободных
переменных терма
и определяется индуктивно по конструкции
терма
:
Иными словами, свободной переменной терма называется терм-переменная (или, просто, переменная), имеющая в него хотя бы одно свободное вхождение, т. е.
.
Введем
операцию подстановки:
.
назовем
результатом подстановки терма
в терм
вместо свободных вхождений переменной
и определим его индуктивно по конструкции
терма
:
Случай
,
пока остается не определенным.