Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4.автоматический вывод.doc
Скачиваний:
30
Добавлен:
16.04.2019
Размер:
1.05 Mб
Скачать

6.2. Скулемовская форма

Допустим, некоторая формула представлена в ПНФ c матрицей в виде конъюнкции дизъюнкций:

А =(Q1 (x1) Q2 (x2)...Qn (xn))(D1 & D2 &...& Dk ).

Пусть Qr - первый слева квантор существования, т.е. перед ним стоят только кванторы всеобщности: Q1 = ... = Qr -1 = . Операция замены квантора существования заклю-чается в следующем.

1) Исключаем из префикса хr .

2) Вместо него вводим ранее не встречавшийся в формуле символ функциональной переменной f и рассматриваем функцию f(x1,x2,...,xr -1), которую подставляем в матрицу вместо всех вхождений переменной хr .

Замечание. Если r =1, то вместо переменной хr в мат-рицу подставляем константу (функцию, которая не зависит ни от одной переменной).

Определение. Описанная выше операция называется заменой квантора существования. Вводимые при этом функ-ции и константы называют скулемовскими, а получаемая после выполнения всех замен квантора существования (сле-ва направо) формула называется стандартной формой Ску-лема.

Смысл операции замены квантора существования за-ключается в следующем: поскольку он предписывает пере-менной хr пробегать не все возможные значения в области изменения, а только некоторые их них, то действие кванто-ра существования в общем случае можно заменить некото-рой функцией, определенной на полной области изменения. При переходе к скулемовской форме нарушается эквива-лентность исходной формулы, однако сохраняется свойст-во невыполнимости.

219

Теорема. Формула А невыполнима тогда и только тогда, когда её стандартная форма Скулема невыполнима.

Пример 1. Привести к стандартной форме Скулема формулу из п.6.1.

Решение. Поскольку префикс формулы не содержит кванто-ров всеобщности, то при замене обоих кванторов х и y в матрицу необходимо подставить скулемовские константы. Обозначим их, соответственно, а и b. Итоговое выражение имеет вид:

S(А)= (( Р(а) Q(z, b) Р(z)) & ( Р(а) Р(z) Q(z, b))).

Пример 2. Привести к стандартной форме Скулема формулу А = хуzР(х, y, z).

Решение. Выполняя замены: x a, z f( y ), получим: S(А) = уР(a, y, f(y)).

Скулемовская форма не содержит кванторов суще-ствования. Все переменные в ней управляются кванторами всеобщности либо свободны. Такая формула невыпол-нима тогда и только тогда, когда невыполнима и формула, не содержащая кванторов. В частном случае для матрицы скулемовской формы, не содержащей функциональных сим-волов, доказательство сводится к доказательству невыпол-нимости обычной формулы ИВ.

Задачи.

1. Привести к стандартной форме Скулема формулы:

а) x (A(х, y) &y B(x, y)); б) xy z u A(х, y, z, u) yB(x, y, z); в) xy A(x, y) & x z B(х, y, z); г) xy A(x, y, z) xy B (х, y, u); д) xy ( Р(х, y) & Q(x) ) yR(x, y, z); е) x y z u R (х, y, z, u) z C(z)); ж)xy A (x, y) & x z B (х, y, z); з) xy A(x, y, z) xy B (х, y).

220

6.3. Эрбрановский универсум и базис.

Н-интерпретации

Алгоритмическая неразрешимость проблемы проверки общезначимости формул в ИП в общем случае, следующая из теоремы Чёрча, не означает полную бесперспективность применения к анализу формул ИП универсальных разреша-ющих алгоритмов. Проблема заключается в том, что в слу-чае применения таких алгоритмов к произвольной формуле А могут возникнуть три возможных ситуации:

а) алгоритм подтверждает общезначимость А,

б) алгоритм работает теоретически бесконечно долго при наличии общезначимости у А,

в) алгоритм работает теоретически бесконечно долго при наличии невыполнимости А.

В первом случае алгоритм решает задачу, во втором и третьем - нет.

Начало конструированию разрешающих алгоритмов было положено Эрбраном, который предложил в 30-х годах ХХ века теоретически правильный алгоритм построения ин-терпретаций, опровергающих рассматриваемую формулу. В нем доказательство общезначимости формулы А сводится к доказательству невыполнимости ее отрицания В= А. Основная идея алгоритма заключается в том, что невыпол-нимость формулы В, заменённой матрицей скулемовской формы, проверяется на одной специальной предметной области - эрбрановском универсуме, который строится по В и описывает все возможные варианты значений термов, которые могут входить в неё (с точностью до обозначений). Поскольку такие области в большинстве случаев бесконеч-ны, то проверку общезначимости формул на них алгоритм теоретически никогда бы не закончил. Проверка невыпол-нимости ( если таковая имеет место) теоретически должна

221

заканчиваться за конечное число шагов.

Матрица скулемовской формы является конъюнкцией дизъюнктов вида:

M = D1 & D2 & ... &Dk .

Очевидно, матрица М опровержима (невыполнима) тогда и только тогда, когда на любой интерпретации I опровержим хотя бы один из дизъюнктов Di , входящих в неё.

Обозначим множество дизъюнктов, входящих в мат-рицу, через S : S = {D1 , D2 , . . . ,D k }.

Обозначим множество всех констант, входящих в S, через S}. Множество символов функциональных пере-менных, входящих в S, - через { FS} .

Эрбрановский универсум, соответствующий множест-ву дизъюнктов S, обозначим через H(S). Он строится сле-дующим образом:

0. Множество нулевого уровня H0={СS} .

1. Через FS (H0) обозначим результат всех возможных под-становок констант, содержащихся в H0 , в функции из {FS}. Множество первого уровня H1 = H0 FS (H0 ).

...

i. FS (Hi-1 ) - результат всех возможных подстановок кон-стант из Hi-1 в функции из {FS }. Множество i-го уровня Hi = Hi-1 FS (Hi-1 ).

В пределе получаем: H(S) = H .

Эрбрановский универсум как бы моделирует все воз-можные значения термов, входящие в S (с точностью до обозначений).

Пример 1. Построить эрбрановский универсум H(S), соответствующий множеству дизъюнктов S = {P(a),P(x)}.

Решение. S}= {а}, { FS}= {} . H0={СS}= {а}, так как {FS} = {} , то H0 = H1 = ... = H = {а}.

222

Пример 2. Построить эрбрановский универсум H(S), соответствующий множеству дизъюнктов S = {P(a), P(x) Q(f(x))}.

Решение. S}= {а}, { FS}= {f} .

1. H0={СS}= {а}.

2. FS (H0 ) = {f(a)} . H1 = {a} {f(a)}= {a , f(a)}.

3. FS (H1 ) = {f(a), f(f(a))} . H2 = {a , f(a)} {f(a), f(f(a))} = {a, f(a), f(f(a))}.