logo
МЛиТА 6 - 7

Логика Хоара

Как мы уже отмечали, логика Хоара предназначалась для дедуктивного доказательства правильности программ. Её формулами являются тройки {А}{В}, состоящие из предусловия А, программы  и постусловия В. Приведём форму записи, применяемой Хоаром, и её перевод на язык исчисления 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. Если А(Р1, …, Рn) – тавтология исчисления высказываний, а В1, …, Вn – модальные формулы, то А(В1, …, Вn) – аксиома системы K (пропозициональные тавтологии).

  2. Для любых формул А и В формула (А  В)  (А  В) является аксиомой системы 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.