Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретка / Книги / Галиев Ш.И. Математическая логика и теория алгоритмов (2002).pdf
Скачиваний:
2274
Добавлен:
25.02.2016
Размер:
7.49 Mб
Скачать

90

Если в префиксе имеется m кванторов существования, то доказательство проводится аналогично.

Следствие 3.1. Если А противоречие, и Аs=(Q1,…,Qn)C1&C2&…&Cm

то А ~ C1&C2&,…,&Cm.

Следствие 3.2. Пусть As – стандартная форма формулы A и пусть A противоречие. Тогда As ~A.

Отметим, что если A не является противоречием, то может быть, что A не равносильна As. Например, пусть A= xP(x). Тогда As=P(a). Построим интерпретацию. Пусть область интерпретации M={1,2} . Положим, что a=1, а P(x) обозначает предикат «x - четное число». Тогда As=P(1) обозначает: «1 - четное число». Следовательно, формула As ложна в этой интерпретации. Формула A в этой интерпретации представляет истинное высказывание:xx - четное число»). Таким образом, для данной формулы A формулы A и As не равносильны.

§ 9. Унификация

Процесс унификации является основным в формальных преобразованиях, выполняемых при нахождении резольвент (для метода резолюций).

Пусть задано множество дизъюнктов. Каждый дизъюнкт составлен из литералов. Пример. Пусть имеем следующее

множество дизъюнктов:

дизъюнкт дизъюнкт

S = {P(x, f(y), b) P(x, f(a), b), P(c, f(a), b)}

литерал литерал литерал

Термы литерала могут быть переменными, постоянными или выражениями, состоящим из функциональных букв и термов. Например, для литерала P(x, f(y), b) имеем, что х – переменная, f(y) – сложный терм, b - постоянная.

Подстановочный частный случай литерала получается при подстановке в литералы термов вместо переменных. Пусть имеем литерал P(x, f(y), b). Его частными случаями будут:

P1 = P(z, f(w), b), P2 = P(x, f(a), b), P3 = P(g(z), f(a), b),

91

P4 = P(c, f(a), b) константный частный случай литерала или

атом, т.к. нет переменных.

Подстановки, примененные в рассматриваемом примере, можно обозначить следующим образом:

θ1 = {z/x, w/y}, здесь z подставляется вместо x, а w вместо y;

θ2 = {a/y};

θ3 = {g(z)/x, a/y}; θ4 = {c/x, a/y}.

Применение подстановки θ к литералу Р обозначаем Рθ. Тогда имеем

Pθ1

= P1 ,

Pθ3 = P3,

Pθ2

= P2 ,

Pθ4 = P4 .

Если θ – подстановка и она применяется к каждому из литералов Li, то полученные частные случаи обозначаются через {Li}θ.

Последовательное применение двух подстановок θ1 и θ2 дает новую подстановку θ3, которую обозначаем θ3 = θ1 ° θ2.

Множество {Li} литералов называется унифицируемым, если существует такая подстановка θ, что

(L1)θ = (L2)θ = … = (Ln)θ.

В этом случае подстановку θ называют унификатором для {Li}.

Пусть имеем множество литералов {P(x, f(y), b), P(x, f(b), b)}, где L1 = P(x, f(y), b), L2 = P(x, f(b), b). Подстановка θ = {a/x, b/y} является, очевидно,

унификатором для этого множества литералов.

Унификатор σ для множества выражений {E1,E2,…,Ek} называется наиболее общим унификатором тогда и только тогда, когда для каждого унификатора θ для этого множества существует такая подстановка λ, что θ =

σ ° λ..

Существует алгоритм, называемый алгоритмом унификации, который приводит к наиболее общему унификатору для унифицируемого множества литералов {Li} и сообщает о неудаче, если это множество не унифицируемо.

Алгоритм унификации: Алгоритм начинает работу с пустой подстановки и шаг за шагом строит наиболее общий унификатор, если таковой существует. Предположим, что на k-ом шаге получена подстановка θk. Если все литералы из {Li} в результате становятся идентичными, то θ = θk и есть наиболее общий унификатор. В противном случае каждый из литералов в {Li}θk рассматривается как цепочка символов и выделяется

позиция первого символа, в которой не все из литералов имеют одинаковый символ. Рассмотрим пример двух литералов. Стрелками пометим позиции, где появились различные символы (при просмотре слева направо).

{P(a, f(a, g(z)), h(x)), P(a, f(a, u), g(w))}

92

Затем конструируется множество рассогласования, содержащее правильно построенные выражения из каждого литерала, который начинается с этой позиции (правильно построенное выражение представляет собой либо терм, либо литерал). Так для рассмотренного примера множеством рассогласования будет

{g(z), u}.

Далее модифицируем (если можно) подстановку θk, чтобы сделать равным два элемента из множества рассогласования. Это можно сделать только тогда, когда множество рассогласования содержит переменную, которую можно положить равной одному из его термов. Если множество рассогласования не содержит переменных, то множество {Li} унифицировать нельзя.

Можно доказать, следующую теорему.

Теорема 3.9 (Теорема Робинсона). Описанный выше алгоритм находит наиболее общий унификатор для множества унифицируемых литералов и сообщает о неудаче, если литералы неунифицируемы.

Рассмотрим пример. Пусть S = {P(a, x, f(g(y))), P(z, f(z), f(u))}. Найдем общий унификатор.

1. Пустая подстановка ε.

S0 = S – не единичный дизъюнкт, следовательно, не получили наиболее общий унификатор.

2. Множество рассогласования равно:

W0 = {a, z},

следовательно, θ1 = ε ° {a/z}, тогда S1 = Sθ1 = {P(a, x, f(g(y))), P(a, f(a), f(u))},

S1 – не единичный дизъюнкт. Множество рассогласований для S1 равно:

W1 = {x, f(a)},

тогда θ2 = θ1 ° {f(a)/x} = {a/z, f(a)/x}, и S2 = Sθ2 = {P(a, f(a)), f(g(y)), P(a,

f(a), f(u))}. S2 – не единичный дизъюнкт. Множество рассогласований для S2 равно:

W2 = {g(y), u},

тогда вновь строим: θ3 = θ2 ° {g(y)/u} = {a/z, f(a)/x, g(y)/u} и

S3 = Sθ2 = {P(a, f(a)), f(g(y)), P(a, f(a), f(g(y)))} = {P(a, f(a), f(g(y)))}. S3

единичный дизъюнкт, следовательно, θ3 наиболее общий унификатор. Рассмотрим еще пример. Пусть S = {Q(f(a), g(x)), Q(y, y)}. Пустая подстановка ε.

S0 = S – не единичный дизъюнкт и

W0 = {f(a), y}, θ1 = ε ° {f(a)/y} = {f(a)/y},

S1 = Sθ1 = {Q(f(a), g(x)), Q(f(a), f(a))}, S1 – не единичный дизъюнкт.

W1 = {g(x), f(a)}.

93

В множестве W1 нет переменной как элемента этого множества. Следовательно, алгоритм унификации завершается, и мы заключаем, что S не унифицируемо.

Насколько я могу судить, это один из тех несложных случаев, которые чрезвычайно трудны (Шерлок Холмс).

А. К. Дойль

§10. Метод резолюций в логике предикатов

Влогике высказываний метод резолюций применялся к множеству дизъюнктов, где дизъюнкты были формулами логики высказываний.

Теперь мы имеем формулы логики предикатов, в которых присутствуют термы (в частности переменные). Отличие метода резолюций в логике предикатов состоит в дополнительной процедуре работы с термами для унификации формул.

Пусть имеем множество литер {Li}. Если для этого множества

существует общий унификатор θ1, например, (L1)θ1 = (L2)θ1 = (L5)θ1, то из этих трех литер достаточно оставить только одну. Если для некоторых оставшихся существует общий унификатор θ2, например, (L3)θ2 = (L4)θ2, то тоже оставляем только одну из них и т.д.

Пример. Пусть D = P(f(x)) P(x) Q(a,f(u)) Q(x,f(b)) Q(z,w), тогда: θ = {a/x, b/u, a/z, f(b)/w}, Dθ= Р(f(а)) Р (а) Q (а ,f(b)), где

Р( f(а)), Р (а), Q(а , f(а)) – факторы.

Если две или более литер (с одинаковым знаком) дизъюнкта D имеют наиболее общий унификатор θ:

(Li)θ = (Lj)θ = (Lk)θ ,

то оставление одного из этих литералов вместо всех них называют склейкой. Пусть имеем два дизъюнкта D1 и D2 и переменные входящие в D1 не входят в D2 и обратно. Если это не так, то переименованием переменных этого можно добиться. Пусть в D1 есть литера, например, L1, а в D2 - литера

L2. Если L1 и L2 имеют наиболее общий унификатор, т. е.

(L1)θ = ( L2)θ ,

то новый дизъюнкт R:

R = ((D1 )θ - (L1)θ ) ((D2 )θ - (L2 )θ )

называется бинарной резольвентой D1 и D2 (в логике предикатов). Литеры L1

и L2 называются отрезаемыми литерами.

Рассмотрим пример. Пусть D1=P(x) Q(x), D2 = P(a) T(x). Переименуем х в D2: D2 = P(a) T(у). Положим, что θ = {x/a}. Тогда имеем

(D1)θ = P(a) Q(a) , (D2)θ = P(a) T(y) ,

Отбрасываем литеры Р (а), Р (а) и получим бинарную резольвенту:

R =Q (а) Т (у).

94

Пусть имеем D1= P(x) Q(x), D2 = Q(x) T(x). Тогда D2 = Q(y) T(y) и R = Р (у) Т (у).

Резольвентой дизъюнктов – посылок D1 и D2 является одна из следующих резольвент:

1)бинарная резольвента D1 и D2,

2)бинарная резольвента D1 и склейки D2,

3)бинарная резольвента D2 и склейки D1,

4)бинарная резольвента склейки D1 и склейки D2.

Применение описанных резольвент к множеству дизъюнктов и называется методом резолюций.

Можно доказать следующую важную теорему.

Теорема 3.10 (полнота метода резолюций). Множество S дизъюнктов невыполнимо тогда и только тогда, когда существует вывод пустого дизъюнкта из S.

Проблема дедукции логики предикатов состоит, как и в логике высказываний, в выяснении будет ли формула В логическим следствием формул А1, А2, …, Аn.

Теоремы 3.1-3.4, доказанные для логики высказываний, можно распространить и для логики предикатов, записывая всюду вместо слова «тавтология» слова «логически общезначимая формула».

Из вышеизложенного можно получить следующую последовательность действий для выяснения будет ли формула В логическим следствием формул

А1, А2, …, Аn.

1. Строим конъюнкцию С = А1&А2& …& Аn.& B. Отметим, что требуемое следствие (заключение) взято с отрицанием.

2. Находим (сколемовскую) стандартную форму Сs для формулы С.

Положим, что форма Сs = (Q1x1Q2x2…Qnxn)’C1&C2&…&Cm, где =(Q1x1Q2x2…Qnxn)префикс формулы без кванторов существования, а

C1,C2,…,Cm – дизъюнкты, в которых по необходимости введены сколемовские функции.

3. Для множества дизъюнктов S={C1,C2,…,Cm} применяем метод резолюций.

Формула В будет логическим следствием формул А1, А2, …, Аn тогда и только тогда когда существует вывод пустого дизъюнкта из S.

В мозгах как на мануфактуре, есть ниточки и узелки, Посылка не по той фигуре грозит запутать узелки.

И. Гете (Фауст)