§ 12.2. Примитивно-рекурсивные функции
Класс примитивно-рекурсивных функций определяется путем указания конкретных исходных функций (они называются базисными) и фиксированного множества операций над ними, применяемых для получения новых функций из ранее заданных.
В качестве базисных функций обычно берутся следующие:
Функция следования;
Функция тождества (функция проекции, или функция выбора аргументов);
Функция константы.
Допустимыми операциями над функциями являются операции суперпозиции (подстановки) и примитивной рекурсии.
Частичная арифметическая функция f называется примитивно-рекурсивной, если она может быть получена из простейших функций Cqn, S, Umn конечным числом операций подстановки и примитивной рекурсии (т.е. задана в базисе Клини).
Т.о. базис Клини состоит из:
трех простых функций;
двух разрешенных операций.
Рассмотрим сначала функции.
1) функция – следование: S(x) = x' = x+1, где x’ – число, непосредственно следующее за натуральным числом х. Например, 0’ = 1, 1’ = 2, … и т.д.
2) функция - тождество: , где n – кол-во переменных, а i – номер переменной, по которой берется тождество. Функция тождества – функция, равная одному из своих аргументов. Например, .
3) функция - константа: , где n – число переменных, q – значение, которое принимает функция. Функция константа принимает всюду одно значение. Например, C23(16,9,10)=2.
Далее рассмотрим операции.
1) операция примитивной рекурсии R
Если мы имеем функцию одной переменной f(x), то схема рекурсии называется «рекурсия без параметров» и задается системой уравнений:
f (0) = q
f (x') = χ (f (x), x)
Функция, заданная такими уравнениями, кратко задается схемой вида Rq ( χ ). Поскольку вид системы уравнений (и способ задания трех разрешенных функций) строго определен, то схема является однозначной.
Если мы имеем функцию нескольких переменных f(x1,x2,…,xn), то схема рекурсии называется «рекурсия с параметрами» и задается системой уравнений:
f (0, x2,…, xn) = Ψ (x2,…, xn)
f (x'1, x2,…, xn) = χ (f(x1,…, xn), x1,…, xn)
Функция, заданная такими уравнениями, кратко задается схемой вида Rn (Ψ, χ)
2) Операция подстановки (суперпозиции) s:
Пусть заданы m каких либо частичных арифметических функций f1, f2,…fm от одного и того же числа n переменных, определенных на множестве А со значениями в множестве В. Пусть на множестве В задана частичная функция Ф от n переменных, значения которой принадлежат множеству С. Введем теперь частичную функцию g от n переменных, определенную на А со значениями в С, полагая по определению для произвольных x1,…,x n.
g(x1,…, x n) = Φ (f1 (x1,…, x n), f2 (x1,…, x n),…, f m (x1,…, x n ))
Говорят, что функция g получается операцией суперпозиции или подстановки из функций f1, f2,…,fm. Обозначается эта операция буквой S с двумя индексами: верхний (n) показывает от скольких переменных зависят внутренние функции fi (x1,…, x n), а нижний (m) – количество самих функций f1, f2,…,fm.
n
g(x1,…, x n) = S m (Φ, f1, f2,…, f m),
При этом функция Ф при подсчете внутренних функций не учитывается.