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

Алгоритм Салквиста

Вход: Формула А, где А – несвязная.

Выход: Свойство шкал, соответствующее А.

Действия:

  1. Выделить негативные и строго позитивные части формулы А.

  2. Нарисовать схему, показывающую, что означает выполнение А в мире t; включить имена миров (например, t1, t2, …), провести между ними рёбра отношения R и отметить миры, на которых верны строго позитивные формулы р.

  3. Определить ленивую оценку, делающую строго позитивные оценки истинными в их мирах.

  4. Для перевода А в А*(t) сделать следующее:

  • поставить впереди формулы А*(t) кванторы s, где s пробегает имена миров, соответствующих ромбикам ;

  • найти строго позитивные подформулы и заменить их на 1;

  • заменить все оставшиеся предикаты р*(х), q*(y), …, соответствующие атомам;

  • произвести упрощения, если можно.

В результате работы алгоритма Салквиста получаем некоторую формулу (t), истинность которой означает, что формула А верна в шкале (W, R) в некотором мире t относительно некоторой оценки.

Значит, формула А будет тавтологией тогда и только тогда, когда (W, R) удовлетворяет формуле t(t) (как модель языка первого порядка, состоящего из единственного бинарного предикатного символа R).

Тем самым, теорема доказана.

Замечание. Ленивая оценка определяет формулы р*(х) следующим образом: Рассматриваем подформулы р, р, р, …, для которых существуют миры среди t, t1, t2, … . Пути к соответствующим мирам будут давать формулы:

р*(х) = (x = t)  R(t, x)  x1(R(t, x1) & R(x1, x))  …

 x1x2…xm(R(t, x1) & R(x1, x2) & … & R(xm, x)).

Пример 2

Найдём формулу (t) для формулы А = (р  р). С этой целью представим А как р & р. Делаем 1 шаг перевода А*(t) = р*(t) & р*(t). Заменяем строго позитивную формулу р*(t) на 1, ибо ленивая оценка делает её истинной. Поскольку р*(t) даёт ленивое определение р*(х) = R(t, x), то А*()=1 & р*(t)=R(t, t). Получаем: (t) = = R(t, t). Если А – тавтология, то (W, R) |= t(t). Следовательно, (W,R) |= tR(t, t).

Пример 3

Пусть А = (р  р). Легко видеть, что А = р & р. Отсюда А*(t) = р*(t) & р*(t). Оценка р*(t) = 1 даёт ленивое определение р*(х) = R(t, x). Ленивая оценка превращает формулу р*(t) в истинную:

x(R(t, x)  р*(x)) = xy(R(t, x)  (R(x, y)  р*(y))).

Следовательно, (t) = xy(R(t, x) & R(x, y)  R(t, y)). Утверждение (W, R) |= (t) превращается в

(W, R) |= txy(R(t, x) & R(x, y)  R(t, y)).

Пример 4

Рассмотрим формулу р  р. Она эквивалентна формуле (р & р). Получаем формулу Салквиста ([р] & [p]). Положим А = [р] & [p]. Стандартный перевод равен:

А*(t) = p*(t) & t1(R(t, t1) & p*(t1)).

Переводим t1 в начало формулы:

А*(t) = t1(p*(t) & R(t, t1) & p*(t1)).

Из условия истинности p*(t1) получаем ленивое определение: р*(х) =R(t1, x). Следовательно, А*(t) = t1(R(t1, t) & R(t, t1)). Формула А будет тавтологией относительно (W, R) тогда и только тогда, когда

(W, R) |= tt1(R(t1, t) & R(t, t1)).

Получаем, что отношение R симметрично:

tt1(R(t, t1)  R(t1, t)).

Пример 5

Пусть А – формула, рассмотренная при доказательстве теоремы Салквиста. Найдём А*(t) в случае, когда с = p  q:

A = (q & ([(p  q)] & [p])) & [p].

Мы получили формулу:

А*(t) = R(t, t1) & R(t1, t2) & R(t1, t3) & R(t3, t4) & R(t, t5) & R(t5, t6) & q*(t2) & c*(t3) & p*(t4) & p*(t6).

Ленивое определение получаем из условия: p*(t4) & p*(t6) = 1. Мы установили, что

р*(х) = y(R(t4, y) & R(y, x))  R(t6, x);

q*(x) = (x = t2).

Поставив с*(t3) = p*(t3)  q*(t3) в формулу для А*(t), получим:

А*(t) = R(t, t1) & R(t1, t2) & R(t1, t3) & R(t3, t4) & R(t, t5) & R(t5, t6) & (p*(t3)  q*(t3));

(t) = x1x2x3x4x5x6(R(t, t1) & R(t1, t2) & R(t1, t3) & R(t3, t4) & R(t, t5) & R(t5, t6) & (x(R(t3, x)  p*(x))  (t3 = t2)) = x1x2x3x4x5x6(R(t, t1) & R(t1, t2) & R(t1, t3) & R(t3, t4) & R(t, t5) & R(t5, t6) & (x(R(t3, x)  y(R(t4, y) & R(y, x))  R(t6, x))  (t3 = t2))

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