Логика Хоара
Как мы уже отмечали, логика Хоара предназначалась для дедуктивного доказательства правильности программ. Её формулами являются тройки {А}{В}, состоящие из предусловия А, программы и постусловия В. Приведём форму записи, применяемой Хоаром, и её перевод на язык исчисления PDL:
skip | = 1? |
fail | = 0? |
if A then else | = (A? ; ) (A? ; ) |
if A1 1 |…| An n fi | = (A1? ; 1) … (An? ; n) |
do A od | = (A1? ; )* ; (A)? |
{A}{B} | = A [] B |
Форма {A}{B} называется тройкой Хоара. Логика Хоара является формальной теорией для вывода с помощью троек Хоара. Преобразуя аксиомы языка PDL, можно получить следующие правила вывода логики Хоара:
(композиция)
(условие)
(цикл)
(следствие).
6.4. Системы Гильберта
Опишем формальную теорию, которая называется системой K:
Аксиомы
-
Если А(Р1, …, Рn) – тавтология исчисления высказываний, а В1, …, Вn – модальные формулы, то А(В1, …, Вn) – аксиома системы K (пропозициональные тавтологии).
-
Для любых формул А и В формула (А В) (А В) является аксиомой системы K (аксиома нормальности).
Правила вывода
; .
Формальная теория, содержащая систему K, называется системой Гильберта.
Строгие системы Гильберта
Добавляя аксиомы к системе K, получаем её усиления. Эти аксиомы соответствуют различным (указанным далее в квадратных скобках) свойствам шкал Крипке (речь о свойствах пойдёт далее):
Т: А А [рефлексивность];
D: А А [определённость всюду];
4: А А [транзитивность];
В: А А [симметричность];
5: А А [с аксиомой Т – отношение эквивалентности].
Система К вместе с аксиомой Т обозначается через KТ или S. Такое определение записывается как:
S = K + {А А}.
Аналогично, добавляя к K другие аксиомы, получаем следующие системы Гильберта:
K4 = K + {А А };
S4 = K + {А А, А А};
S5 = K + {А А, А А}.
Выводимость. Пусть H – система Гильберта. (Согласно определению, она должна содержать аксиомы и правила вывода системы K).
Определение. Запись HA означает, что существует последовательность формул А1, …, Аn таких, что
1) An = A;
2) Каждая формула Ai является либо аксиомой системы H, либо получена аз некоторых формул последовательности A1, …, Ai-1 с помощью правил вывода системы H.
В этом случае А называется теоремой в H, а последовательность A1, …, An – выводом формулы (или доказательством теоремы) А. Число n называется длиной вывода (доказательства).
Пример 1
Последовательность:
A & B A, (A & B A), (A & B A) ((A & B) A), (A & B) A
является доказательством длины 4 теоремы (A & B) A.
- 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