Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

matlogta

.pdf
Скачиваний:
20
Добавлен:
27.03.2015
Размер:
914.47 Кб
Скачать

Д о к а з а т е л ь с т в о. Для простоты рассмотрим случай m =

2. Пусть Tf1; Tf2; Tg машины Тьюринга, правильно вычисляющие функции f1, f2 è g соответственно. В качестве машины Th äëÿ ïðà-

вильного вычисления функции h годится машина

Ên(Á+)nTf1(Á¡)nÖn+1Á+Tf2Á¡Tg: ¤

Таким образом, любая суперпозиция правильно вычислимых функций правильно вычислима, и список правильно вычислимых функций, представленных в примере 3.1.1, существенно расширяется.

Ÿ 3.2. Рекурсивные функции и отношения

1.

Примитивно рекурсивные функции.

Рассмотрим сначала

всюду определенные числовые функции f : Nk ! N, k 2 N n f0g,

т.е не нуль-местные операции на множестве N, и определим понятие

примитивно рекурсивной функции (сокращенно ПРФ).

 

Функции o(x), s(x), Imn , 1 · m · n, называются простейшими

примитивно рекурсивными функциями.

n-местные операции

 

Пусть f m-местная операция, g1; : : : ; gm

на множестве N. Оператор S, ставящий в соответствие операциям f è g1; : : : ; gm n-местную операцию h, удовлетворяющую тождеству

h(x1; : : : ; xn) = f(g1(x1; : : : ; xn); : : : ; gm(x1; : : : ; xn));

называется оператором суперпозиции (подстановки). При этом всюду определенная функция

h - S(f; g1; : : : ; gm)

является, очевидно, суперпозицией функций f è g1; : : : ; gm.

Оператор примитивной рекурсии R каждой (n+2)-местной операции f è n-местной операции g на множестве N ставит в соответствие (n + 1)-местную операцию

h - R(f; g);

удовлетворяющую следующей схеме примитивной рекурсии:

½h(x1; : : : ; xn; 0) = g(x1; : : : ; xn);

h(x1; : : : ; xn; y + 1) = f(x1; : : : ; xn; y; h(x1; : : : ; xn; y)):

Äëÿ n = 0 схема примитивной рекурсии имеет следующий вид:

½h(0) = a;

h(y + 1) = f(y; h(y));

91

ãäå a постоянная одноместная функция, равная числу a.

Схема примитивной рекурсии образует некоторый индукционный процесс построения функции h, при котором на нулевом шаге исполь-

зуется функция g, а на каждом последующем шаге значение функ-

öèè f от аргументов x1; : : : ; xn, номера y предыдущего шага и значения функции h, вычисленного на предыдущем шаге.

Функция f называется примитивно рекурсивной, если существу-

ет последовательность функций f0; : : : ; fn, в которой fn = f и всякая функция fi является простейшей ПРФ или получается из предыдущих функций с помощью оператора суперпозиции S или оператора

примитивной рекурсии R.

П р и м е р 3.2.1. 1. Функция сложения x + y примитивно рекур-

сивна в силу схемы примитивной рекурсии

½

x + 0 = I11(x);

x + (y + 1) = s(x + y):

2. Схема примитивной рекурсии

½ x ¢ 0 = o(x);

x ¢ (y + 1) = x ¢ y + x

обосновывает примитивную рекурсивность функции умножения x ¢y.

Доказательство примитивной рекурсивности следующих функций

оставляется читателю в качестве упражнения.

3. xy, ãäå 00

= 1, функция возведения в степень.

4. x!, ãäå 0! = 1, x-факториал.

5. sg(x) = ½

0; åñëè x = 0;

 

1; åñëè x > 0; знак числа x.

6. sg(x) = ½

1; åñëè x = 0;

 

0; åñëè x > 0; дополнение знака числа x.

7. ˙ 1 = ½ x ¡ 1; åñëè x > 0;

усеченное вычитание единицы.

 

0; åñëè x = 0;

 

8. ˙ y = ½ x ¡ y; åñëè x

·> y;

усеченная разность.

 

0; åñëè x

y;

 

9. jx ¡ yj модуль разности.

10. max(x; y) максимум чисел x è y. 11. min(x; y) минимум чисел x è y.

12. [x=y], ãäå [x=0] = x, частное от деления x íà y.

13. rest(x; y), ãäå rest(x; 0) = x, остаток от деления x íà y. 14. px x-е простое число (p0 = 2, p1 = 3, p2 = 5, : : :).

92

15. ex(x; y), ãäå ex(0; y) = 0, показатель степени y-го простого

числа py в разложении числа x на неприводимые сомножители (т.е.

åñëè x = pn00 ¢ pn11 ¢ : : : ¢ pnkk , òî ex(x; y) = ny).

16. long(x) номер наибольшего простого делителя числа x.

Пусть f(x1; : : : ; xn; i) (n + 1)-местная операция на множестве N. Определим операторы суммирования и произведения g1; g2; g3; g4:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Xi

 

 

 

 

 

 

 

 

 

 

g1(x1; : : : ; xn; y) =

 

 

 

f(x1; : : : ; xn; i);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Yi

 

 

 

 

 

 

 

 

 

 

g2(x1; : : : ; xn; y) =

 

 

 

f(x1; : : : ; xn; i);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Xi

 

 

 

 

 

 

 

 

g3(x1; : : : ; xn; y; z) =

 

 

 

f(x1; : : : ; xn; i) =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=y

 

 

 

 

 

f

 

x

; : : : ; x

 

; y

 

 

: : :

 

 

f

 

x

; : : : ; x

 

; z); åñëè y

z;

½

(

 

1

 

 

n

 

 

) +

 

+

 

(

 

1

 

 

n

0; åñëè y

·> z;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Yi

 

 

 

 

 

 

 

 

g4(x1; : : : ; xn; y; z) =

 

 

 

f(x1; : : : ; xn; i) =

 

 

½

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=y

 

 

 

 

 

f

 

x

; : : : ; x

 

; y

) ¢

: : :

¢

f

 

x

; : : : ; x

 

; z); åñëè y

 

z;

 

(

 

1

 

 

n

 

 

 

 

(

 

1

 

 

n

 

1; åñëè y

·> z:

Предложение 3.2.1. Если f примитивно рекурсивная функция, то функции g1; g2; g3; g4 примитивно рекурсивны.

2. Примитивно рекурсивные отношения. Отношение P µ Nk

называется примитивно рекурсивным (сокращенно ПРО), если примитивно рекурсивна характеристическая функция

½ 1; åñëè x 2 P;

ÂP (x) = 0; åñëè x 62P;

ãäå x = (x1; : : : ; xk).

П р и м е р 3.2.2. Отношения равенства x = y и делимости xjy (x делит y) примитивно рекурсивны. Действительно, характеристические

функции Â=(x; y) = sg(jx ¡ yj) è Âj(x; y) = sg(rest(y; x)) примитивно рекурсивны. ¤

93

Покажем, что теоретико-множественные операции над ПРО сохраняют примитивную рекурсивность.

Пусть P; Q µ Nk некоторые отношения. Положим P ^Q - P \Q,

P _ Q - P [ Q, :P - Nk n P , P ) Q - :P _ Q.

Предложение 3.2.2. Åñëè P; Q µ Nk è R µ Nl примитивно рекурсивные отношения, то отношения P ^ Q, P _ Q, :P , P ) Q è

P £ R примитивно рекурсивны.

Д о к а з а т е л ь с т в о. Посколькó по условию примитивно рекурсивны функции ÂP (x), ÂQ(x), ÂR(y), примитивно рекурсивными

являются также характеристические функции ÂP ^Q(x) = ÂP (x) ¢

ÂQ(x), Â:P (x) = sg(ÂP (x)), ÂP £R(x; y) = ÂP (x) ¢ ÂR(y). Теперь из со-

отношений P _ Q = :(:P ^ :Q) è P ) Q = :(P ^ :Q) вытекает

примитивная рекурсивность характеристических функций ÂP _Q(x) è

ÂP )Q(x). ¤

Записи (8z · y) è (9z · y) называются ограниченными кван- торами. Пусть P µ Nk+1 некоторое отношение. Обозначим через

(8z · y) P (x1; : : : ; xk; z) (k + 1)-местное отношение

f(a1; : : : ; ak; b) j (a1; : : : ; ak; c) 2 P для любого c · bg;

а через (9z · y) P (x1; : : : ; xk; z) (k + 1)-местное отношение

f(a1; : : : ; ak; b) j (a1; : : : ; ak; c) 2 P для некоторого c · bg:

Следующее утверждение показывает, что примитивная рекурсивность отношений сохраняется при навешивании ограниченных кванторов.

Предложение 3.2.3. Åñëè P µ Nk+1 примитивно рекурсивное отношение, то отношения Q1 - (8z · y) P (x1; : : : ; xk; z) è Q2 -

(9z · y) P (x1

; : : : ; xk; z) примитивно рекурсивны.

Д о к а з а т е л ь с т в о. Примитивная рекурсивность отношений

Q1 è Q2 вытекает из следующих соотношений:

 

 

y

 

 

 

Yi

 

 

 

ÂQ1(x; y) =

ÂP (x; i);

 

 

=0

 

 

ÂQ2

(x; y) = sg à y

ÂP (x; i)!;

 

 

Xi

 

 

=0

ãäå x = (x1; : : : ; xk). ¤

94

П р и м е р 3.2.3. 1. Поскольку справедливо соотношение x · y , (9z · y) (x + z = y), отношение x · y примитивно рекурсивно в силу

предложения 3.2.3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Аналогично из x < y , (9z · y) (s(x + z) = y) вытекает прими-

тивная рекурсивность отношения x < y.

 

 

 

 

 

 

3. Множество простых чисел совпадает с примитивно рекурсивным

отношением (x ¸ 2) ^ (8z · x) (zjx ) ((z = x) _ (z = 1))). ¤

N

 

 

 

Пусть

®(x)

некоторая

k

-местная операция на множестве

,

P µ

N

k+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. Обозначим через (¹y · ®(x))P (x; y) k-местную операцию, зна-

чение которой на наборе x равно

 

 

 

 

 

 

 

 

 

8 minf

y

j (

y

·

®

x

)) ^

P

 

x; y

)g

;

åñëè P (x; y)

 

 

 

 

 

 

 

 

(

 

 

 

(

 

 

для некоторого y ®(x);

 

 

<

 

 

 

 

 

 

 

 

®(x) + 1

в противном случае.·

 

 

 

Оператор, ставящий в соответствие каждой операции

® µ N

k+1 è îòíî-

 

 

 

 

 

:

 

 

k+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

шению P µ N

 

 

операцию ¹(®; P ) - (¹y · ®(x))P (x; y), называется

оператором ограниченной минимизации.

Предложение 3.2.4. Åñëè ® ÏÐÔ, P µ Nk+1 ÏÐÎ, òî ¹(®; P )

ÏÐÔ.

Äо к а з а т е л ь с т в о. Рассмотрим примитивно рекурсивную функ-

öèþ Xz ÃYy !

G(x; z) -

sg (ÂP (x; i)) :

y=0

i=0

Примитивная рекурсивность функции ¹(®; P ) вытекает из следующих

соотношений:

®(x) Ã y

sg (ÂP (x; i))! = G(x; ®(x)): ¤

¹(®; P )(x) =

 

X Y

 

y=0 i=0

П р и м е р 3.2.4. Функция [px], которая каждому натуральному

числу x ставит в соответствие целую часть от квадратного корня из x, примитивно рекурсивна в силу предложения 4.2.4, поскольку [px] =

(¹y · x) ¡(y + 1)2 > x¢. ¤

3. Нумерации кортежей натуральных чисел. Нумерацией множества X называется любая сюръекция º : N ¡íà! X. В предло-

жении 1:4:3¤ представлена диагональная нумерация множества N2, устанавливающая биекцию между множествами N è N2. Отображение

95

c : N2 ! N, ставящее в соответствие каждой паре натуральных чисел (x; y) ее диагональный номер c(x; y), называется канторовской нумерующей функцией. По номеру n = c(x; y) однозначно определяются его левая координата l(n) - x и правая координата r(n) - y.

Функции c, l è r удовлетворяют следующим тождествам:

c(l(n); r(n)) = n; l(c(x; y)) = x; r(c(x; y)) = y:

Примитивная рекурсивность функций c, l è r вытекает из следующих равенств:

c(x; y) = ·

 

 

 

 

 

 

 

x

+

y

+ 1)

 

¸ + x;

 

 

 

 

(x + y) ¢ (

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

2

µ·

 

 

p

 

+1

¸¡˙ 1

¢ ·[

p

 

+1

¸

3

 

 

 

 

+1

+1

 

l(n) = n ˙

[

 

 

8n2 ]

 

 

8n2 ]

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¡

6

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

7

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

4

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

n + 1 + 1

 

 

 

 

 

 

 

 

 

r(n) = "

£

 

 

 

8

2 ¤

 

 

#¡˙ (l(n) + 1):

 

 

 

 

 

 

 

 

 

 

 

 

 

Используя канторовскую функцию c, определяем последовательность примитивно рекурсивных функций c1; c2; : : : ; ck; : : : такую, что ck k-местная функция, осуществляющая взаимно однозначное отображение Nk íà N:

c1(x1) - x1;

c2(x1; x2) - c(x1; x2);

.ck.+1. (.x.1.; :. :.:.; .xk. ;.x.k.+1.). -. . c. (.c.k(.x.1.; :.:.:.; x. k.).; x. k.+1. .);

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Координаты x1; : : : ; xk; xk+1, для которых ck+1(x1; : : : ; xk; xk+1) = n, определяются соответствующими одноместными примитивно рекурсивными функциями ck1+1; : : : ; ckk+1; ckk+1+1, k 2 N, для которых

c11(n) = n;

c21(n) = l(n); c22(n) = r(n);

.ck1.+1. (.n.). =. .c.k1.(l.(n. )). .; . .; c.kk.+1. (.n.).=. .c.kk(.l(.n.)). ;. . c.kk.+1+1. (.n.).=. .r.(n. ).;

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

96

97
B(0; x) = x + 2; B(n + 1; 0) = sg(n); B(n + 1; x + 1) = B(n; B(n + 1; x)):
удовлетворяющую следующим тож-
M(g; h)

Функция ck называется k-сверткой, а набор (ck1; : : : ; ckk) èç k одноместных функций k-разверткой. Очевидно, свертки и развертки

удовлетворяют следующим тождествам:

ck(ck1(n); : : : ; ckk(n)) ¼ n; cki (ck(x1; : : : ; xk)) ¼ xi; i = 1; : : : ; k:

4. ×àñтично рекурсивные фунêöèè. Áудем говорить, что функция f(x) получается из функций g(x; y) è h(x; y) с помощью оператора

минимизации M, и обозначать

f(x) = ¹y (g(x; y) · h(x; y))

èëè f(x) = M(g(x; y); h(x; y)), если выполнено следующее условие: f(x) определено и равно y тогда и только тогда, когда определены g(x; 0), h(x; 0), : : :, g(x; y), h(x; y) и справедливы соотношения g(x; i) >

h(x; i), i = 0; : : : ; y ¡ 1, g(x; y) · h(x; y).

Функция f : X ! Nk называется частично рекурсивной (ЧРФ),

если она может быть получена из простейших ПРФ с помощью конеч- ного числа применений операторов S, R è M. Частично рекурсивная

функция называется рекурсивной (РФ), если она всюду определена. Обозначим через Mo(g; h) значение M(g; h), если функции g, h è

всюду определены.

Функция f : X ! Nk называется общерекурсивной (ОРФ), если

она может быть получена из простейших ПРФ с помощью конечного числа применений операторов S, R è Mo.

Класс ЧРФ строго содержит класс РФ, поскольку, например, нигде не определенная функция f(x) = ¹y (s(x) · x) частично рекурсивна.

Класс РФ совпадает с классом ОРФ. Включение ОРФ µ ÐÔ î÷å-

видно. Обратное включение будет вытекать из теоремы о нормальной форме (теорема 4.3.7).

Класс ОРФ строго содержит класс ПРФ. В качестве примеров общерекурсивных, но не примитивно рекурсивных функций можно взять так называемые быстрорастущие функции, т.е. такие общерекурсивные функции f(x), что для каждой ПРФ g(x) существует число a ñ

условием g(x) < f(x) ïðè x ¸ a.

Рассмотрим функцию B(n; x), дествам:

ïðà-

Быстроту роста значений функции B(n; x) можно проследить, например, на основе следующих соотношений:

B(3; 0) = 1; B(3; 1) = 2; B(3; 2) = 22; B(3; 3) = 222; : : :

Функции B(n; x) при фиксированных n называются функциями Ак-

кермана, а функция A(x) - B(x; x) диагональной функцией Аккермана.

Теорема 3.2.5. (теорема Аккермана). Функция A(x) является рекурсивной быстрорастущей функцией. ¤

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

Теорема 3.2.6. (теорема об элиминации примитивной рекурсии).

Любая ЧРФ может быть получена из простейших ПРФ и функций + è ¢ с помощью операторов S è M. ¤

Ÿ 3.3. Эквивалентность моделей алгоритмов

В предыдущих двух параграфах мы определили два класса вычислимых функций: класс ПВФ функций, правильно вычислимых на машинах Тьюринга, и класс ЧРФ частично рекурсивных функций. В этом параграфе устанавливается совпадение этих классов, на основе которого делается вывод о совпадении класса интуитивно вычислимых функций с классом вычислимых функций в любой из приведенных выше алгоритмических моделей.

1. Правильная вычислимость частично рекурсивных функ- öèé. По теореме об элиминации примитивной рекурсии доказательство правильной вычислимости для ЧРФ сводится к проверке правильной вычислимости функций o, s, Imn , +, ¢, а также к проверке сохранения правильной вычислимости при переходе к результатам действия операторов суперпозиции и минимизации.

Правильная вычислимость вышеперечисленных функций установлена в примере 3.1.1. Сохранение правильной вычислимости при переходе к суперпозиции функций показано в теореме 3.1.1. Таким образом, импликация ЧРФ ) ПВФ сводится к доказательству следу-

ющей теоремы.

Теорема 3.3.1. Если функции g(x1; : : : ; xn; y) è h(x1; : : : ; xn; y)

вильно вычислимы, то функция

f(x1; : : : ; xn) = ¹y (g(x1; : : : ; xn; y) · h(x1; : : : ; xn; y))

98

правильно вычислима.

Д о к а з а т е л ь с т в о. Пусть Tg è Th машины, правильно вы- числяющие функции g è h соответственно. Представим машину Tf , правильно вычисляющую функцию f, в виде следующей схемы преобразований:

²

q10x10x2 : : : 0xn0 V(Á+)nS

0x10x2 : : : 0xnq®000 V(Á¡)n

q¯0x10x2 : : : 0xn000 VÊn+1

q°0x10x2 : : : 0xn000x10x2 : : : 0xn000 V(Á+)n+1Tg(Á¡)n+1

q±0x10x2 : : : 0xn000g(x1; : : : ; xn; 0)0 VÖn+2Á+Ên+1(Á+)n+1Th

0g(x1; : : : ; xn; 0)0x10x2 : : : 0xn00q"0h(x1; : : : ; xn; 0)0 V

V(Á¡)n+2(Ön+2)n+1(Á+)n+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T ˙

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x10x2 : : : 0xn00q³0g(x1; : : : ; xn; 0)0h(x1; : : : ; xn; 0)0 V

¡

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

˙

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x10x2 : : : 0xn00q´0g(x1; : : : ; xn; 0)¡h(x1; : : : ; xn; 0)0 V

(

q00y0;

 

åñëè g(x1; : : : ; xn; 0)

˙ h(x1; : : : ; xn; 0) = 0;

 

Ë

Á²¡;

 

åñëè g(x1; : : : ; xn; 0)¡˙ h(x1; : : : ; xn; 0) > 0:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¡

 

 

 

 

 

 

 

 

Здесь для наглядности в условном операторе с циклом использован

символ ² вместо ˙.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, машина Tf равна

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

Á+

n ²

Á

¡)

nÊ

 

Á+

 

n+1

 

 

Á

 

n+1Ö

 

 

 

)

 

S (

 

 

n+1(

)

 

 

 

 

Tg( ¡)

n+2

 

 

Á+Ên+1(Á+)n+1Th(Á¡)n+2(Ö

n+2

)n+1(Á+)n+1T ˙

 

 

 

 

E (

Á¡ n+1Ö

Á+

 

 

 

 

 

 

¡

 

 

 

 

n+1

 

 

ËÁ¡

n+1

 

 

 

 

( Á²)¡

 

 

n+1(

 

)

 

 

 

(

 

 

)

 

: ¤

 

 

 

 

 

 

 

 

Ë

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Частичная рекурсивность правильно вычислимых функ- öèé. Определим числовую кодировку машин Тьюринга, которая позволит по коду машины Тьюринга Tf , правильно вычисляющей функ-

öèþ f, построить частично рекурсивную схему для вычисления функции f.

Пусть A = fam j m 2 Ng некоторый счетный алфавит, W (A) множество всех слов алфавита A, включающее пустое слово Λ. Îïðå-

делим кодирующую функцию код : W (A) ! N для множества W (A) по следующим правилам:

êîä(Λ) = 21; êîä(ai1ai2 : : : aik ) = 21 ¢ pi11+1 ¢ pi22+1 ¢ : : : ¢ pikk+1:

99

Лемма 3.3.2. Множество код(W (A)) - fm j m = êîä(w) äëÿ

некоторого слова w 2 W (A)g является примитивно рекурсивным отношением.

Рассмотрим теперь алфавит A вместе со счетным множеством Q =

fqn j n 2 Ng внутренних состояний и расширим функцию код на множество всех машинных слов ®qjai¯, полагая

êîä(®qjai¯) - 22 ¢ 3j ¢ 5i ¢ 7êîä(®) ¢ 11êîä(¯):

Лемма 3.3.3. Множество M0 всех кодов машинных слов является примитивно рекурсивным отношением. ¤

Снова расширим функцию код теперь на множество машинных команд aiqj ! dqk, ãäå d 2 fL; Rg [ A, полагая

êîä(aiqj ! dqk) - p2êîä(d)¢3k ;

c(i;j)+2

 

 

8

0;

åñëè d = L;

êîä

(d) -

<

1;

åñëè d = R;

 

: m + 2;

åñëè d = am:

Лемма 3.3.4. Множество K0 всех кодов машинных команд является примитивно рекурсивным отношением.

Последнее расширение функции код позволяет примитивно рекурсивно закодировать все машины Тьюринга. Для машины

T = hfa0; : : : ; amg; fq0; : : : ; qng; fT (i; j) j 0 · i · m; 1 · j · ng; q0; q1i

положим

m n

êîä(T ) - 23 ¢ 3m ¢ 5n ¢

YYêîä(T (i; j)):

 

i=0 j=1

Лемма 3.3.5. Множество T0 всех кодов машин Тьюринга является примитивно рекурсивным отношением. ¤

Теорема 3.3.6. Следующие отношения примитивно рекурсивны:

(0) отношение T0, состоящее из всех наборов (n; x; y; t) таких, что машина Тьюринга с кодом n, начиная работу на слове с кодом x,

заканчивает свою работу на слове с кодом y в состоянии q0 не более ÷åì çà t шагов;

(k) отношение Tk, k ¸ 1, состоящее из всех наборов (n; x1; : : : ; xk; y; t) таких, что машина Тьюринга с кодом n, начиная работу на слове

q10x10x20 : : : 0xk, заканчивает свою работу не более чем за l(t) шагов на слове ®q00y0¯, ãäå c(êîä(®); êîä(¯)) = r(t).

100