Операция примитивной рекурсии
Будем говорить, что (n+1) – местная функция f получается из n – местной функции g и (n+2) – местной функции h с помощью операции примитивной рекурсии, если при любых значениях x1, x2,…, xn выполняются равенства:
f(x1, x2,…, xn, 0) = g (x1, x2,…, xn)
f(x1, x2,…, xn, 1) = h(x1, x2,…, xn , 0, f(x1, x2,…, xn, 0))
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
f(x1, x2,…, xn, y+1 ) =h(x1, x2,…, xn, y, f(x1, x2,…, xn,y))
Эти равенства называют схемой примитивной рекурсии. И тот факт, что функция f получается из функций g, h c помощью операции примитивной рекурсии, записывается следующим образом: f=R(g,h).
Определение 1Функция f называется примитивно рекурсивной функцией, если она получается из простейших функций с помощью операций суперпозиции и примитивной рекурсии, взятых конечное число раз в любой последовательности.
Из данного определения следует, что любая примитивно рекурсивная функция является числовой функцией.
Множество всех примитивно рекурсивных функций обозначим через Pn.p.
Пример 5Доказать, что функция f(x,y)= x+y примитивно рекурсивна.
Действительно. Справедливы следующие тождества
f(x,0) =x+0 = x = g( x)
f(x,y+1) = x+(y+1) = (x+y)+1 = f(x,y)+1
Отсюда следует, что x+y = R(g(x) = x, h(x,y,z) = z+1). Так как функции g, h – простейшие функции, то x + y Pn.p.
Пример 6Доказать, что функция f(x,y) = x∙y примитивно рекурсивна.
Действительно. Справедливы следующие тождества:
f(x,0) = x∙0 = 0 = g(x)
f(x,y+1) = x(y+1) = xy+x = f(x, y) + x
Отсюда следует, что
x+y = R(g(x) = 0, h(x,y ,z) = z+ x)
Как следует из примера 1 функция h(x,y,z) = x+z Pn.p. А это значит, что xy Pn.p.
Рассмотрим функцию x y =
Данную функцию называют усечённой разностью.
Пример 7Показать, что функция f(x,y) = x y примитивно рекурсивна.
В начале заметим, что функция x 1 примитивно рекурсивна. Действительно:
0 1 = 0 = g(x)
(x+1) 1 = x = h(x,y)
Следовательно, x 1 = R(g(x) = 0, h(x,y) = x). Итак, x 1 Pn.p.
Далее, нетрудно показать, исходя из определения усечённой разности, что эти функции удовлетворяют также равенствам:
x 0 = x = g(x)
x (y+1) = (x y) 1 = h(x, y, x y)
для любых x и y. Данные тождества показывают, что
x y = R(g(x) = 0, h(x,y,z) = z α).
Так как функция h(x,y,z) = z α Pn.p., то x y Pn.p.
Так как любая примитивно рекурсивная функция является числовой функцией, то, очевидно, что x – y Pn.p.
Пример 8Покажем, что – примитивно рекурсивная функция.
Действительно. Нетрудно показать, что =(x y)+(y x). Теперь полученный результат следует из примера 5 и примера 7.
Операция минимизации.Будем говорить, что n-местная функция g(x1,x2,…,xn) полученная из (n+1)-местной функции f(x1,x2,…,xn,y) с помощью операции минимизации или оператора наименьшего числа, если для любых x1, x2,…, xn, y равенство g(x1,x2,…,xn) = y выполняется тогда и только тогда, когда:
1) f(x1,x2,…,xn,t) определено и f(x1,x2,…,xn,t) > 0 для любых 0 ≤ t < y;
2) f(x1,x2,…,xn,y) = 0.
Если какое-либо из условий 1), 2) будет невыполнено, то функция g(x1,x2,…,xn) не определена при наборе x1, x2,…, xn.. Короче говоря, величина g(x1,x2,…,xn) равна наименьшему значению аргумента y, при котором выполняется последнее равенство.
Используется следующее обозначение:
g(x1,x2,…,xn) = My [f(x1,x2,…,xn,y)=0].
Про функцию g говорят, что она получена из функции f при помощи операции минимизации.
Определение 2Функция f называется частично рекурсивной функцией, если она может быть получена из простейших функций с помощью операции суперпозиции, примитивной рекурсии и минимизации, взятых конечное число раз в любой последовательности.
Класс частично рекурсивных функций обозначим Prp.
Обозначим через Pp – класс рекурсивных функций, т.е. всех числовых функций из Prp.
Пример 9 Доказать, что частично числовая функция частично рекурсивна.
Вначале заметим, что данная функция получается из функции с помощью операции минимизации, т.е. = My .
Согласно примерам 2 и 4 функция примитивно рекурсивна. А это значит, что – частично рекурсивная функция.
Данный пример показывает, что класс Prp существенно шире, чем класс Pp. Можно сказать, что и класс Pp существенно шире, чем класс Pnp, т.е.
Pnp С Pp С Prp.