Примитивно рекурсивные функции
Рекурсивные функции
Рассмотрим примитивы, из которых будем собирать выражения:
- .
- .
- Проекция.
- Примитивная рекурсия.
- Минимизация.
,
,
,
Если и , то , при этом
Если , то , при этом — такое минимальное число , что . Если такого нет, результат данного примитива неопределен.
| Определение: | 
| Если некоторая функция может быть задана с помощью данных примитивов, то она называется рекурсивной. | 
Примитивно рекурсивные функции
Основные определения
Рассмотрим следующие правила преобразования функций:
Подстановка
Рассмотрим -местную функцию и -местных функций . Тогда после преобразования у нас появится -местная функция , такая что: .
Рекурсия
Рассмотрим -местную функцию и -местную функцию . Тогда после преобразования у нас будет -местная функция , которая определена следующим образом:
При этом будем говорить, что рекурсия запускается по аргументу .
| Определение: | 
| Примитивно рекурсивными называют функции, которые можно получить с помощью правил подстановки и рекурсии из константной функции , функции и набора функций где . | 
Заметим, что если — -местная примитивно рекурсивная функция, то она определена на всем множестве , так как получается путем правил преобразования из всюду определенных функций, и правила преобразования не портят всюду определенность. Говоря неформальным языком, рекурсивные функции напоминают программы, у которых при любых входных данных все циклы и рекурсий завершатся за конечное время.
Благодаря проекторам мы можем делать следующие преобразования:
- В правиле подстановки можно использовать функции с разным числом аргументов. Например, подстановка эквивалентна , но если не константная функция то все подставляемые функции должны иметь хотя бы один аргумент.
- В рекурсии не обязательно вести индукцию по последнему аргументу. Следует из того что мы можем с помощью проекторов поставить требуемый аргумент на последнее место.
В дальнейшем вместо будем писать просто , подразумевая требуемое нам .
Арифметические операции на примитивно рекурсивных функциях
n -местный ноль
- функция нуля аргументов.
Выразим сначала
, где
Теперь выразим
, где
Константа равна
- n местная константа, получается аналогичным к образом.
Сложения
, где
Умножения
, где
Вычитания
Если , то , иначе .
Рассмотрим сначала вычитания единицы
, где
Теперь рассмотрим
, где
Операции сравнения
если , иначе
если , иначе
если , иначе
Сначала выразим
, где
Теперь все остальные функции
IF
, где
Деление
, если . Если же , то и все связанные с делением функции равны каким то ,не интересными для нас, числами.
Сначала определим — функция равна максимальному числу меньшему или равному ,которое нацело делится на .
, где ,
или не формально если то , иначе
Теперь само деления
, где
или не формально если , то , иначе
Остаток от деления выражается так:
Работа со списками фиксированной длины
С помощью описанных выше арифметических операций можно выразить проверку на простоту числа и поиск - того простого числа. Рассмотрим список из натуральны чисел , тогда ему в соответствия можно поставить число , где -тое простое число. Как видно из представления,создания списка, взятие - того элемента и остальные операции являются простыми арифметическими операциями, а следовательно примитивно рекурсивными. Поэтому будем считать что у примитивно рекурсивной функций аргументы и результат могут быть списками из натуральных чисел.
Теорема о примитивной рекурсивности вычислимых функций
| Теорема: | 
| Если для  вычислимой функции  существует примитивно рекурсивная функция , такая что для любых аргументов  максимальное количество шагов, за которое будет посчитана   на МТ равно  , то   примитивно рекурсивная функция. | 
| Доказательство: | 
| Каждому состоянию МТ поставим в соответствие список из четырех чисел , где: - состояние МТ слева от головки ленты, представлено в виде числа в системы счисления с основанием равным алфавиту МТ. Младшие разряды находятся возле головки. Пробелу соответствует ноль, чтобы число было конечным. - состояние МТ справа от головки, представлено аналогично только возле головки МТ находятся старшие разряды. - номер текущего состояния - символ на который указывает головка ленты. Тогда всем переходам соответствует функция принимающая состояние МТ и возвращающая новое состояние. Покажем что она примитивно рекурсивная . При применении перехода в записывается новый символ,затем из-за сдвига головки в и в конец добавляется новая цифра или удаляется старая, затем в записываетcя символ после сдвига, и в конце перехода в записывается новое состояние автомата. Операции добавления в конец цифры или удаления последней цифры легко выражаются через простые арифметические операции, следовательно они примитивно рекурсивные. Все остальные операции являются простыми операциями над списками, а значит они тоже примитивно рекурсивные. Из этого следует что применения перехода — примитивно рекурсивная функция. В силу того что нужный переход можно выбрать используя конечное число функций следует что и также является примитивно рекурсивной функцией. Функции преобразование аргументов в формат входных данных для МТ и получения ответа по состоянию МТ также выражаются через простые арифметические операции а значит они примитивно рекурсивные. Назовем их и . Рассмотрим функцию двух аргументов которая принимает состояние МТ , число шагов и возвращает состояние МТ после шагов. Покажем что - примитивно рекурсивная функция. 
 , гдеВместо подставим и в итоге получим что - примитивно рекурсивная функция. | 
Арифметические функции и отношения. Их выразимость в формальной арифметике
Введем обозначение. Будем говорить, что — это формула с свободными переменными, если переменные входят в свободно. Запись будем трактовать, как , при этом мы подразумеваем, что свободны для подстановки вместо в .
Также, запись будет означать, что мы определяем новую формулу с именем . Данная формула должна восприниматься только как сокращение записи, макроподстановка.
| Определение: | 
| Арифметическая функция — функция . Арифметическое отношение — -арное отношение, заданное на . | 
| Определение: | 
| Арифметическое отношение  называется выразимым (в формальной арифметике), если существует такая формула  с  свободными переменными, что для любых натуральных чисел  ... 
 | 
Например, отношение  является выразимым в арифметике: Рассмотрим формулу . В самом деле, если взять некоторые числа  и , такие, что , то найдется такое положительное число , что . Можно показать, что если подставить  и  в , то формула будет доказуема.
Наметим доказательство: Тут должно быть два доказательства по индукции, сперва по , потом по . Рассмотрим доказательство по индукции: пусть , индукция по 2-му параметру: Разберем доказательство базы при . Тогда надо показать :
| (1) | Несложно показать | |
| (2) | Cх. акс. для | |
| (3) | M.P. 1 и 2. | 
| Определение: | 
| Введем следующее сокращение записи: пусть означает Здесь и — некоторые переменные, не входящие в формулу свободно. | 
| Определение: | 
| Арифметическая функция  от  аргументов называется представимой в формальной арифметике, если существует такая формула  с  свободными пременными, что для любых натуральных чисел  ... 
 Комментарии:Функция называется сильно представимой, если в свойстве 2 натуральные числа заменить на переменные: | 
Комментарии:
Очевидно, что сильно представимая функция также является представимой --- с помощью уже встречавшегося ранее трюка с введением квантора всеобщности, а потом с подстановкой конкретного терма вместо переменной мы можем подставить любые константы вместо переменных.
| Теорема: | 
| Функции , ,  являются представимыми. | 
| Доказательство: | 
| Наметим доказательство. Для этого приведем формулы, доказательство корректности этих формул оставим в виде упражнения. 
 | 
| Теорема: | 
| Если функции  и , ...  представимы, то функция  также представима. | 
| Доказательство: | 
| Поскольку функции и представимы, то есть формулы и , их представляющие. Тогда следующая формула представит : | 
| Определение: | 
| Характеристическая функция арифметического отношения — это функция | 
Очевидно, что характеристическая функция представима тогда и только тогда, когда отношение выразимо.
| Определение: | 
| -функция Геделя - это функция . Здесь операция (%) означает взятие остатка от целочисленного деления. | 
| Лемма: | 
| Функция примитивно-рекурсивна, и при этом представима в арифметике формулой  | 
| Доказательство: | 
| Упражнение. | 
| Лемма: | 
| Для любой конечной последовательности чисел  ...  можно подобрать такие константы  и , что  для . | 
| Доказательство: | 
| Возьмем число . Рассмотрим числа . 
 | 
| Теорема: | 
| Всякая рекурсивная функция представима в арифметике. | 
| Доказательство: | 
| Представимость первых четырех примитивов уже показана. Покажем представимость примитивной рекурсии и операции минимизации. Пусть есть некоторый . Соответственно, и уже представлены как некоторые формулы и . Из определения мы знаем, что для значения должна существовать последовательность результатов применения функций f и g — значений на одно больше, чем итераций в цикле примитивной рекурсии, а это количество определяется последним параметром функции . При этом: Значит, по лемме, должны существовать такие числа и , что для . Приведенные рассуждения позволяют построить следующую формулу, представляющую : 
 
 | 
