Примеры.

1. Доказать, что любое конечное множество натуральных чисел примитивно рекурсивно.

2. Доказать, что если множества ирекурсивны, то множестватакже рекурсивны.

3. Доказать, что если множества ирекурсивно перечислимы, тоитакже рекурсивно перечислимы.

4. Доказать, что любое рекурсивное множество рекурсивно перечислимо.

5. Доказать, что существует рекурсивно перечислимое множество, которое не является рекурсивным.

6. Доказать, что существует не рекурсивно перечислимое множество.

7. Доказать, что если предикаты ирекурсивны (примитивно рекурсивны), то следующие предикаты тоже рекурсивны (примитивно рекурсивны):

а)

б)

в) ;

г)

д)

е) , если- общерекурсивная (примитивно рекурсивная) функция.

8. Доказать, что частичная функция тогда и только тогда представима в виде

для подходящей примитивно рекурсивной функции , когда график функциипримитивно рекурсивен.

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

не является рекурсивно перечислимым.

10. Пусть ,- рекурсивно перечислимые множества. Доказать, что существуют рекурсивно перечислимые множества,такие, что,.

11. Показать, что график общерекурсивной функции рекурсивен.

12. Доказать, что полный прообраз рекурсивного множества относительно общерекурсивной функции рекурсивен.

Глава 5. Основные нумерации в теории алгоритмов

Для того, чтобы понятия рекурсивности и рекурсивной перечислимости перенести из области натуральных чисел в область более сложных объектов - -ок чисел, мы предварительно занумеруем все-ки натуральными числами. В данной главе метод нумерации будет рассмотрен в общем виде. Он позволяет глубже вскрыть природу алгоритмических процессов и прямым путем приводит к решению многих интересных проблем.

Впервые метод нумерации для решения фундаментальных вопросов математической логики был применен К. Гёделeм, вследствие чего многие важные нумерации обычно называют нумерациями Гёделя. Целесообразно, однако, ввести особые названия для некоторых из этих нумераций, что и будет сделано ниже.

  1. Нумерация пар и-ок чисел.

Все пары натуральных чисел можно расположить в простую последовательность и притом многими способами. Для определенности рассмотрим следующее расположение этих пар, которое мы будем называть канторовским:

(1)

В этой последовательности пары идут в порядке возрастания суммы их членов, а из пар с одинаковой суммой членов ранее идет пара с меньшим первым членом. Обозначим через номер парыв последовательности (1), причем нумерацию начнем с нуля. Таким образом,

Число будем называть (канторовским) номером пары . Черезиобозначим левый и соответственно правый члены пары с номером. Например,. Мы хотим теперь выразить функциичерез обычные арифметические функции. Начнем с функции. Паранаходится в отрезке

на -м месте после пары. Перед паройв последовательности (1) находятсяотрезков, содержащих

, ,

всего пар. Поэтому

= (2)

Обратно, пусть ,

и, следовательно,

Из формулы (2) имеем

=

Отсюда вытекает, что

или

<

Таким образом,

= (3)

Сравнивая с формулой (2), получаем

(4)

Из (3) и (4) получаем аналогичное выражение для . Отметим, наконец, что из самого определения функций, как функций, связанных с нумерацией пар, вытекают следующие тождества:

, ,(5)

Для любого кодирование, отображающеена, определяется посредствомследующим образом:

В частности, .