
- •6. Модальная и темпоральная логикИ
- •6.1. Синтаксис модальной логики
- •Дополнительные логические связки
- •Приоритеты операций
- •Смысловые значения модальностей
- •6.2. Семантика модальной логики
- •Модели Крипке
- •Упражнение 1
- •Упражнение 2
- •Семантика темпоральной логики
- •Упражнение 3
- •Тавтологии
- •Упражнение 4
- •Условные тавтологии
- •Упражнение 5
- •6.3. Алгоритмическая логика Хоара
- •Пропозициональная динамическая логика
- •Семантика пропозициональной динамической логики
- •Аксиомы pdl
- •Правила вывода
- •Логика Хоара
- •Корректность и полнота систем Гильберта
- •Свойства шкал Крипке
- •Алгоритм Салквиста
- •Пример 2
- •Пример 3
- •Пример 6
- •6.5. Темпоральная логика
- •Система Гильберта для темпоральной логики
- •Линейные потоки времени
- •Стандартный перевод
- •Завтра и вчера
- •Выбор операторов
- •7. Алгоритмы и рекурсивные функции
- •7.1. Частично рекурсивные функции
- •Простейшие функции
- •Пример 1
- •Оператор примитивной рекурсии
- •Пример 2
- •Пример 4
- •Пример 5
- •Пример 6
- •Оператор минимизации
- •Пример 7
- •7.2. Машины Тьюринга
- •Пример 1
- •Пример 2
- •Пример 3
- •Упражнение
- •7.3. Вычислительная сложность
- •Труднорешаемые и np-полные задачи
- •6. Модальная и темпоральная логикИ 49
- •7. Алгоритмы и рекурсивные функции 65
Оператор примитивной рекурсии
Пусть заданы частичные функции g: Nn N и h: Nn+2 N. Оператором примитивной рекурсии называется оператор, сопоставляющий паре (g, h) такую частичную функцию f: Nn+1 N, что для всех x1,…,xn,у N имеют место равенства:
f(x1,…,xn,0) = g(x1,…,xn);
f(x1,…,xn,y+1) = h(x1,…,xn,y, f(x1,…,xn,y)).
Поскольку область определения и значения дополняются отмеченной точкой, то равенство частичных функций означает, что для каждого значения аргумента либо левая, либо правая части равенства определены и равны между собой, либо обе его части не определены. Значение оператора примитивной рекурсии обозначается: f = R(g,h). Если g и h определены всюду, то f = R(g,h) определена всюду.
Если n = 0, то для любых числа g N и частичной функции h: N2 N частичная функция f = R(g,h) определяется с помощью равенств:
f(0) = g, f(y + 1) = h(y,f(y)).
Функция f называется примитивно рекурсивной, если ее можно получить из простейших функций s, o и Inm с помощью операторов суперпозиции и примитивной рекурсии (таким образом, примитивно рекурсивная функция всюду определена.)
Пример 2
Функция оn: Nn N, все значения которой равны нулю, примитивно рекурсивна, ибо она является композицией о In1 простейших функций In1: Nn N и о: N N. Рассмотрим при k 1 функцию ck: Nn N, все значения которой равны k. Функция ck равна композиции функций оn: Nn N и k функций N N … N, каждая из которых равна s, ck = sk on. Стало быть, ck примитивно рекурсивна.
Пример 3
Функция f: N2 N, заданная как f(x,y) = x + y, удовлетворяет соотношениям:
f(x,0) = x;
f(x,y + 1) = (x + y) +1 = f(x,y) + 1 = s(f(x,y)).
Положим: g(x) = I11(x) = x, h(x,y,z) = s(z). Так как f(x,0) = g(x) и f(x,y + 1) = h(x,y,f(x,y)), то f = R(g,h) = R(I11,s I33). Значит, f – примитивно рекурсивна.
Пример 4
Рассмотрим функцию: f(x,y) = xy. Поскольку f(x,0) = 1, и f(x,y + 1) = xf(x,y) = g(x,y,f(x,y)), где g(x,y,z) = xz – примитивно рекурсивная функция (как композиция операции умножения и функции (I31, I33): N3 N2), то f(x,y) примитивно рекурсивна.
Пример 5
Пусть (x) = max(0,x – 1). Имеют место равенства (0) = 0 и (y + 1) = y = g(y,(y)), где g(y,z) = I21(y,z) = y. Следовательно, (x) – примитивно рекурсивна.
Пример 6
Пусть r(x,y) = max(0,x – y). Верны соотношения r(x,0) = x и r(x,y + 1) = (r(z,y)) = g(x,y,r(x,y)), где g(x,y,z) = (z) – функция из примера 5. Значит, r(x,y) – примитивно рекурсивна.
Пример 6 показывает, что функция f(x,y) =x-y= r(x,y) + r(y,x) примитивно рекурсивна, как суперпозиция функций x1 + x2 и пары функций (r(x,y),r(y,x)): N2 N2 (примитивная рекурсивность функции r(y,x) получается из разложимости r(y,x) = S3(r, I22, I21)).
Оператор минимизации
Пусть g: Nn+1 N – частичная функция. Будем говорить, что частичная функция f: Nn N получается из неё с помощью оператора минимизации, и писать:
f(x1,…,xn) = y [g(x1,…,xn,y) = 0],
если выполнено следующее условие: f(x1,…,xn) определено и равно y N тогда и только тогда, когда значение g(x1,…,xn,0),…,g(x1,…,xn,y -1) определены и не равны 0, а g(x1,…,xn,y) = 0.
Частичная функция f: Nn N называется частично рекурсивной, если она может быть получена из простейших функций o, s, Inm за конечное число применений операторов суперпозиции, примитивной рекурсии и минимизации.