- •Математическая логика
- •Раздел I. Алгебра высказываний
- •1. Высказывания и операции над ними. Формулы
- •2. Следование, эквивалентность и преобразование формул
- •3. Использование законов логики в доказательстве теорем и построении схем
- •Преобразуем эту формулу, используя соответствующие эквивалентности u
- •4. Булевы функции
- •5. Нормальные формы
- •5. Полные системы операций. Алгебра Жегалкина
- •6. Выводимость
- •Раздел II. Алгебра предикатов
- •1. Предикат. Операции над предикатами.
- •2. Модель. Формула алгебры предикатов сигнатуры .
- •3. Формулы алгебры предикатов
- •Основные общезначимости алгебры предикатов
- •Раздел 3. Логические исчисления
- •1. Определение формального исчисления
- •2. Исчисление высказываний ив.
- •3. Отношение эквивалентности в ив
- •4. Исчисление секвенций ис.
- •Исчисления предикатов ип (ипс).
- •Прикладные исчисления предикатов.
- •Автоматическое доказательство теорем
- •Теория алгоритмов
- •Машины Тьюринга
- •2. Рекурсивные функции
- •3. Временная сложность алгоритма. Классы p и np.
- •4. Полиномиальная сводимость. Np-полные языки и задачи.
2. Рекурсивные функции
Очевидно, что вычислимыми являются все натуральные константы. Как и в формальной арифметике натуральных чисел, определим их с помощью константы 0 и функции следования .
Также вычислимыми являются функции тождества. Через обозначим множество функций, вычисляемых по правилу
.
Мощным средством построения новых функций является их суперпозиция.
Определение. Оператором суперпозиции называется подстановка в функцию отm переменных m функций от одних и тех же n переменных, т.е. , гдеи.
Функции тождества и оператор суперпозиции задают всевозможные операторы подстановки функции в функцию, а также переименования, перестановки и отождествления переменных.
Оператор примитивной рекурсии определяет n+1-местную функцию f через n-местную функцию g и n+2-местную функцию h.
Определение. Система равенств
называется схемой примитивной рекурсии, а оператор оператором примитивной рекурсии.
Если , то. Например, так определяется хорошо знакомая функция факториал.
Здесь .
Определение. Функция называется примитивно рекурсивной, если она может быть построена из 0, функций ис помощью конечного числа применений операторов суперпозиции и примитивной рекурсии.
Примеры.
1) Функция суммы, определяемая равенством , является примитивно рекурсивной, так как она задаётся схемой примитивной рекурсии
,
т.е. , где, причём функцииg и h являются примитивно рекурсивными.
2) Функция арифметического вычитания . (Проверить самостоятельно).
Арифметизированные логические функции также являются примитивно рекурсивными, так, например, . Также с помощью арифметического вычитания можно выразить и (самостоятельно). Из функциональной полноты множества функций следует примитивная рекурсивность всех логических функций.
Определение. Отношение называется примитивно рекурсивным, если его характеристическая функция
примитивно рекурсивна.
Так как существует взаимно однозначное соответствие между отношениями и предикатами, то будет характеристической функцией и для соответствующего отношениюR предиката.
Например, предикат делимости нацело числаx на n является примитивно рекурсивным, так как его характеристическая функция , где– функция, вычисляющая остаток от целочисленного деленияx на n, примитивно рекурсивна.
Определение. Оператор называется примитивно рекурсивным, если он сохраняет примитивную рекурсию функций.
Например, условный оператор , где
,
является примитивно рекурсивным. Примитивно рекурсивными являются также операторы конечного суммирования и конечного произведения
,
.
Определение. Ограниченный оператор наименьшего числа, называемый ограниченным оператором минимизации (ограниченный -оператор), определяется равенством
.
Пример. Пусть задан предикат , который принимает значение 1, если числоy нацело делится на . Применение ограниченного оператора минимизации к предикатуимеет результатом функцию.
Ограниченный оператор минимизации примитивно рекурсивен, он является средством построения обратных функций. Функция является обратной к функции. Например, функция целочисленного деленияz на x определяется ограниченным оператором минимизации
.
В результате рассмотрения примеров функций, которые все являлись примитивно рекурсивными, возникает вопрос: существуют ли не примитивно рекурсивные функции. В данном случае ответ положительный, класс примитивно рекурсивных функций не исчерпывает класс всех вычислимых функций.
Функция Аккермана. Построим функцию, которая является вычислимой, но не примитивно рекурсивной.
Определим последовательность функций по правилу. Функцииобладают общими свойствами,,
, .
Продолжим последовательность по этому рекуррентному правилу
() (2)
Функции примитивно рекурсивны и растут очень быстро. Так, например,,,, , ,
Зафиксируем и рассмотрим последовательность функций,, , , Определим функцию , которая обладает свойствами
(3)
Функция Аккермана определяется как диагональ функции, т.е.=.
Функция Аккермана является вычислимой, так как соотношения (2), (3) позволяют построить программу для её вычисления. Однако данная функция не является примитивно рекурсивной, так как она в силу (3) является двукратно рекурсивной. Поэтому средства построения вычислимых функций нуждаются в расширении. Оператор кратной рекурсии не замыкает класс вычислимых функций, так как для любого n можно построить функцию, которая является -рекурсивной, но неn-рекурсивной. Средством завершающим построение вычислимых функций является -оператор.
Определение.
Определение. Функция называется частично рекурсивной, если она может быть построена из 0, функций ис помощью конечного числа применений операторов суперпозиции, примитивной рекурсии и-оператора.
Частично рекурсивная функция может быть определена не для всех значений. Например, функция обратная к функции следования , задаваемая равенством, не определена при.
Определение. Частично рекурсивная функция называется общерекурсивной, если она всюду определена.