Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЛиТА 6 - 7.doc
Скачиваний:
55
Добавлен:
12.11.2018
Размер:
452.61 Кб
Скачать

Упражнение 5

Доказать, что если R  W  W – рефлексивно, то А  А – тавтология относительно шкалы (W, R) для любой формулы А.

Формула (А  В)  (А  В) является тавтологией относительно класса всех шкал Крипке. Такие формулы называют естественно истинными. Формула А  А верна относительно некоторого класса шкал. Такие формулы называются условно истинными.

6.3. Алгоритмическая логика Хоара

Интуитивно программа понимается как набор операторов, переводящих машину из одних состояний в другие. Хоар предложил для отладки и верификации программ рассматривать формулы, описывающие состояния машины перед выполнением (предусловие) и после выполнения (постусловие) программы. Программе  сопоставлялась запись: {А}{В}, означающая, что предусловие описывается формулой А, а постусловие формулой В. Пратт предложил запись: А  []В – если перед выполнением программы состояние машины описывается формулой А, то после выполнения верна формула В. Это позволило описывать вычислительные процессы, состоящие из комплексов программ, с помощью модальной логики, рассматривая каждую программу как модальность.

Пропозициональная динамическая логика

Пусть 0 – произвольное множество. Его элементы называются базисными программами. Предположим, что   0 – такое множество слов, что вместе с любыми 1, 2   оно содержит:

  1. 1  2 (неопределённый выбор одной из программ 1 или 2);

  2. 1 ; 2 (выполнение 1 ,затем 2);

  3. 1* (выполнение 1 конечное, возможно нулевое, количество раз);

  4. 1  2 (одновременное выполнение программ 1 или 2).

Элементы из  будем называть программами. Рассмотрим атомы из Р как простые высказывания о состояниях машины, в которую загружаются программы. Для каждой программы    обозначим через [] соответствующую ей модальность. Определим формулы пропозициональной динамической логики PDL по индукции:

  1. атомы р  Р – формулы;

  2. А & В, А, []А – формулы для любых формул А и В, и элемента   ;

  3. все формулы PDL составляются с помощью правил 1 – 2.

Введём обозначение: <>А как сокращение для []А.

Для каждой формулы А определим программу: А?  , тестирующую, верна ли формула А. Эта программа заканчивает работу, если формула А верна, и зависает (аварийно завершает работу), если нет. Эта программа вводится с целью интерпретации оператора

if (A) then 1 else 2

как программы

(А?; 1)  ((А)? ; 2)  .

Семантика пропозициональной динамической логики

Пусть 0 – множество базисных программ,  – множество всех программ, Р – атомные формулы, F(P) – все формулы, W – множество состояний машины, в которой могут работать программы . Для каждого    определена модальность []. Стало быть, мы должны каждому  поставить в соответствие некоторое отношение доступности R  W  W.

Шкала Крипке (или система переходов) будет состоять из пары: (W, (R)), где W – множество состояний, а Rотношения R  W  W.

Программу можно интерпретировать как множество пар (x, y)  R таких, что после выполнения программы  машина из состояния х перейдёт в состояние y. Каждому атому p  P ставится в соответствие подмножество h(p)  W состояний, при которых высказывание р верно.

Интерпретацией называется тройка M = (W, (R), h), состоящая из шкалы Крипке и оценки h : P  P(W), удовлетворяющих соотношениям:

  1. R = R  R;

  2. R ; = R  R;

  3. ;

  4. RA? = {(x, x) : x  W и M, x |= A}.

Здесь R* – наименьшее рефлексивное транзитивное отношение, содержащее R. Расширим h на множество формул F(P), полагая t  h(A), если и только если M, t |= A. Получим соотношения:

  1. h(A  B) = h(A)  h(B);

  2. h(A) = W \ h(A);

  3. h(<>A) = {t  W : (t, u)  R для некоторого u  h(A)}.

В некоторых случаях под семантикой логики PDL понимают шкалу с расширенной на F(P) оценкой, удовлетворяющие соотношениям 1 – 7.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]