
- •Математическая логика
- •Раздел 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,
функций
и
с помощью конечного числа применений
операторов суперпозиции, примитивной
рекурсии и-оператора.
Частично рекурсивная
функция может быть определена не для
всех значений. Например, функция обратная
к функции следования
,
задаваемая равенством
,
не определена при
.
Определение. Частично рекурсивная функция называется общерекурсивной, если она всюду определена.