Смысл проектирующих функций тоже очень прост: каждая из них отыскивает i‑тый по порядку аргумент и объявляет его значением функции. Вычисление значений такой Функции выполняется с помощью обыкновенного счета: если дан определенный набор значений аргументов некоторой функции типа (в), то считывается нижний индекс i в ее обозначении и в упомянутом наборе отыскивается (с помощью счета) i‑тое число; это число и оказывается значением функции. Что же представляют собой акции, позволяющие строить из одних рекурсивных функций другие, вообще говоря, более сложные рекурсивные функции? Подстановка есть не что иное, как вычисление, разбитое на два этапа: сначала вычисляются значения всех «внутренних» функций, а потом – значение «внешней» функции при аргументах, равных полученным на предыдущем этапе числам. Это – акт суперпозиции, последовательного выполнения однотипных операций. Например, суперпозиция функций I3i и S (где S – внешняя функция) порождает функцию от трех аргументов: f(х1, х2, х3) = S (I3i (х1, х2, х3)); суперпозиция функций S, I11, N1 и I31 (внешняя функция) порождает одноместную функцию q(х) = I31 (S(х), I11(х), N1(х)) и т. д. Самый придирчивый критик не заподозрит в подобных процедурах присутствия чего‑либо неясного. Вычисление по схеме примитивной рекурсии тоже не вызывает недоверия с точки зрения своей четкости и общепонятности. Это мы уже видели на примерах вычисления значения функции «усеченное вычитание», определенной рекурсивно (см. с. 127)[127]. Собственно говоря, мы очень часто пользуемся методом построения какой‑то последовательности, формируя каждый ее член по предыдущим членам. В данной схеме следует обратить внимание на то, что вычисление каждого последующего значения нуждается в знании только одного, непосредственно предыдущего, значения. Это, конечно, простейший вариант подобного типа вычислений. Но тем не менее при вычислении по схеме рекурсии значения некоторой функции для какого‑то значения ее аргумента (например, для числа 137) приходится на промежуточных фазах вычисления находить значения функции для всех предыдущих значений аргумента: 0, 1, 2, ..., 136, хотя каждый раз все значения, кроме самого последнего, мы можем забывать, стирать с доски и т. д. Акция, соответствующая четвертому пункту (мю‑операция), иначе называется операцией взятия наименьшего числа. Ее включили в определение рекурсивных функций, так сказать, неохотно, под давлением суровой необходимости (в первоначальном определении у Гёделя мю‑операции не было), поскольку без нее, как выяснилось, не могут быть получены некоторые функции, играющие в математике важную роль. Как мы отметили выше, функции, в которых участвуют только подстановка и рекурсия, называют примитивно рекурсивными, особо выделяя тем самым мю‑операцию. Каков же познавательный статус этой операции? Чем существенным отличается она от подстановки и рекурсии? — 91 —
|