Функции сопряжения и гёделевская нумерация
[18/33%]Покажите, что функция , определённая как
является функцией спаривания.
Покажите, что функция Фибоначчи примитивно рекурсивна.
Покажите, что функция
является гёделевой нумерацией.
Покажите, что следующие функции примитивно рекурсивны:
и , если .
.
Покажите, что функция , определённая как , , примитивно рекурсивна.
Функция sort : отображает число в число , где — перестановка такая, что . Покажите, что sort примитивно рекурсивна.
Покажите, что следующие функции являются функциями спаривания.
.
, где , если , и , если .
Пусть определена как , где — -е простое число.
Покажите, что сюръективна, примитивно рекурсивна и монотонна. Также покажите, что почти инъективна в том смысле, что если и если , то при всех , , и при всех , .
Проверьте, что если использовать в качестве гёделевой нумерации, то функции size, item и функции из примера 4.35 остаются примитивно рекурсивными. (Здесь — число элементов в последовательности , не считая завершающих нулей.)
Пусть — неотрицательных целых чисел. Докажите, что если , то .
Предположим, что и для некоторых примитивно рекурсивных и . Также предположим, что при всех . Докажите, что также примитивно рекурсивна. (Заметим, что решение 1 примера 4.38 фактически использовало этот результат.)
Покажите, что следующие функции примитивно рекурсивны:
число вхождений целого числа в последовательность .
, где — десятичная запись (например, ).
Мы можем расширить понятие примитивно рекурсивных функций на функции из в , где — множество целых чисел. Всё, что для этого нужно, — это рассматривать пару как представление целого числа из : если , то она представляет , иначе она представляет . Покажите, что следующие функции над целыми числами примитивно рекурсивны:
скалярное произведение двух -мерных векторов и , если (и равно 0 в противном случае). (Мы рассматриваем список как -мерный целочисленный вектор, -й элемент которого — это целое число, представленное парой ; то есть оно равно , если , и равно , если .)
определитель матрицы , если для некоторого (и равен 0 в противном случае). (Мы рассматриваем как целочисленную матрицу размера , где равно целому числу, представленному парой .)
Мы говорим, что последовательность сбалансирована, если существует разбиение на два подмножества и (то есть и ) такое, что . Докажите, что предикат сбалансирована примитивно рекурсивен.
Покажите, что функция , которая объединяет две отсортированные последовательности в одну отсортированную последовательность (и выдаёт 0, если хотя бы одна из двух входных последовательностей не отсортирована), примитивно рекурсивна.
Докажите, что sort примитивно рекурсивна, используя алгоритм сортировки слиянием.
- Предположим, что и — две примитивно рекурсивные функции. Покажите, что следующая функция примитивно рекурсивна:
- Предположим, что и все примитивно рекурсивны. Покажите, что следующая функция примитивно рекурсивна:
- Предположим, что и все примитивно рекурсивны. Покажите, что следующая функция примитивно рекурсивна:
Предположим, что и все примитивно рекурсивны. Пусть и — функции, определённые следующими формулами:
Покажите, что и обе примитивно рекурсивны: