Шаг 4.
Понятие рекурсии.
Основные свойства операции примитивной рекурсии

    На этом шаге мы рассмотрим основные свойства операции примитивной рекурсии.

    Операция примитивной рекурсии, так же как и операция подстановки, сохраняет свойство всюду определенности и алгоритмической вычислимости.

Свойство 1.
Сохранение свойства всюду определенности функций, т.е. если g(x1, ..., xn) и h(x1, ..., xn, y, z) всюду определенные функции, то f(x1, ..., xn, y) тоже будет всюду определенная функция, где f = R(g, h).
Доказательство.
Берем произвольный набор (x1, ..., xn, y) и докажем, что на этом наборе функция f определена. Доказательство проводим методом математической индукции по y.
  • 1 шаг. Пусть y=0. Тогда по определению операции примитивной рекурсии получаем, что f(x1, ..., xn, 0) = g(x1, ..., xn). Так как функция g всюду определенная функция по условию, то функция f определена на наборе (x1, ..., xn, 0).
  • 2 шаг. Предположим, что функция f определена на наборе (x1, ..., xn, y).
  • 3 шаг. Докажем, что функция f определена на наборе (x1, ..., xn, y+1). По определению операции примитивной рекурсии получаем, что f(x1, ..., xn, y+1) = h(x1, ..., xn, y, f(x1, ..., xn, y)).
А функция h обладает свойством всюду определенности по условию. Следовательно, функция f определена на наборе (x1, ..., xn, y+1). Так как функция f является арифметической функцией, то метод математической индукции позволяет сделать вывод, что она всюду определена.

Свойство 2.
Сохранение алгоритмической вычислимости функций, т.е., если g(x1, ..., xn) и h(x1, ..., xn, y, z) являются алгоритмически вычислимыми функциями, то существует алгоритм Af, вычисляющий функцию f(x1, ..., xn, y), где f(x1, ..., xn, y) = R(g(x1, ..., xn), h(x1, ..., xn, y, z)).
Доказательство.
Пусть задан произвольный набор (x1, ..., xn, y). Докажем, что функция f алгоритмически вычислима на этом наборе. Для доказательства поступим следующим образом. Сначала применяем алгоритм Ag, вычисляющие функцию g(x1, ..., xn) на набору (x1, ..., xn). В случае остановки через конечное число шагов получаем значение функции g(x1, ..., xn) на этом наборе, равное по определению операции примитивной рекурсии: g(x1, ..., xn) = f(x1, ..., xn, 0).

    После этого используем алгоритм Ah, который вычисляет значение функции h(x1, ..., xn, y, z). Этот алгоритм последовательно применяем к следующим наборам:



. . . .

    Если каждый раз работа алгоритма Ah завершается результативно, то мы получаем соответствующие значения функции h(x1, ..., xn, y, z), равные значениям функции f(x1, ..., xn, y) (это следует из определения операции примитивной рекурсии):



. . . .

    А если не произошло остановки алгоритма Ag в наборе (x1, ..., xn) или не закончился результативно алгоритм Ah на одном из этапов вычисления значения функции h(x1, ..., xn, y, z), (т.е. например, при вычислении h(x1, ..., xn, y', f(x1, ..., xn, y')) , где y' принадлежит {0, 1, 2, ..., y-1}), то переход к следующему этапу никогда не произойдет и искомый алгоритм считается не применимым к набору (x1, ..., xn, y).

    Приведем несколько примеров получения вычислимых функций с помощью операции примитивной рекурсии.


    Пример 1. Пусть задано , и покажем, что f(x,y) = R(g(x), h(x,y,z)), где f(x,y) = x + y.

    Согласно определению операции примитивной рекурсии:


    Тогда:




. . . . .

    Предположим, что для некоторого n, принадлежащего N, последнее равенство справедливо и докажем, что тогда

    Действительно, пусть f(x,n) = x + n для некоторого n, принадлежащего N. Тогда по определению операции примитивной рекурсии получаем, что:

    Таким образом, функция f(x,y) = x + y получается из функции и с помощью операции примитивной рекурсии.


    Пример 2. Пусть     Для решения задачи нахождения элементарных функций воспользуемся определением операции примитивной рекурсии, после чего получим, что

    Тогда:

    Очевидно, функция – есть результат операции примитивной рекурсии над функциями и .

    Определение. Примитивно рекурсивным описанием функции (ПРО) f называется конечная последовательность функций , удовлетворяющая следующим условиям:

    Определение. Функция f называется примитивно рекурсивной функцией (ПРФ), если существует хотя бы одно ее ПРО.

    Из определения следует, что всякая примитивно рекурсивная функция f имеет несколько различных ПРО.

    Например, для функции g(x,y) = x + y ПРО является последовательность следующих функций:


    На следующем шаге мы рассмотрим основные свойства ПРФ.




Предыдущий шаг Содержание Следующий шаг