Метод резолюций в логике высказываний

Рассмотрим вначале логику высказываний. Напомним, что литералом мы называли атомарную формулу или ее отрицание, дизъюнктом – дизъюнкцию литералов. Дизъюнкт может состоять из одного литерала. На дизъюнкт мы иногда будем смотреть, как на множество литералов, т.е. не будем различать дизъюнкты, которые получаются один из другого с помощью коммутативности и ассоциативности дизъюнкции, а также идемпотентности. Последнее означает, например, что дизъюнкты XÚØYÚX и XÚØY равны. Нам понадобится особый дизъюнкт – пустой, т.е. дизъюнкт, не содержащий литералов. Его мы будем обозначать "квадратиком" □. Будем считать, что пустой дизъюнкт ложен при любой интерпретации. Это означает, что формула F&□ равносильна □, а формула FÚ□ равносильна F. Пустой дизъюнкт есть фактически то же самое, что и атомарная формула 0, но в контексте метода резолюций принято использовать □.

Определение. Литералы L и ØL называются противоположными.

Метод резолюций в логике высказываний основан на правиле резолюций.

Определение. Правилом резолюций в логике высказываний называется следующее правило: из дизъюнктов ХÚF и ØXÚG выводим дизъюнкт FÚG.

Например, из дизъюнктов ØXÚYÚZ и XÚØY выводим дизъюнкт YÚZÚØY. Обратим внимание на то, что в первых двух дизъюнктах есть еще одна пара противоположных литералов. Условимся, что можно применять правило резолюций не обязательно к самым левым литералам (поскольку мы не различаем дизъюнкты, отличающиеся порядком записи литералов). Тогда правило резолюций, примененное к Y и ØY, даст ØXÚZÚX. Условимся еще о следующем: в дизъюнктах не писать повторяющиеся литералы и не писать □, если есть другие литералы.

Определение. Пусть S – множество дизъюнктов. Выводом из S называется последовательность дизъюнктов

D,D2,...,Dn

такая, что каждый дизъюнкт этой последовательности принадлежит S или следует из предыдущих по правилу резолюций. Дизъюнкт D выводим из S, если существует вывод из S, последним дизъюнктом которого является D.

Например, если S={ØXÚYÚZ, ØYÚU, X}, то последовательность

D1=ØXÚYÚZ,

D2=ØYÚU,

D3=ØXÚZÚU,

D4=X,

D5=ZÚU –

вывод из S. Дизъюнкт ZÚU выводим из S.

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

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

Доказательство. Докажем вначале достаточность.

Отметим, что правило резолюции сохраняет истинность.

Это означает, что если j(ØXÚF)=1 и j(XÚG)=1 для некоторой интерпретации j, то j(FÚG)=1. Действительно, пусть j(ØXÚF)=1 и j(XÚG)=1. Тогда если j(F)=1, то и j(FÚG)=1. Если же j(F)=0, то j(ØX)=1, поскольку j(ØXÚF)=1. Но в этом случае j(X)=0 и j(G)=1, так как j(XÚG)=1. Если же j(G)=1, то и j(FÚG)=1.

Пусть из S выводим пустой дизъюнкт. Предположим противное: множество S выполнимо, т.е. существует интерпретация y, при которой все дизъюнкты из S истинны. Выводимость пустого дизъюнкта из S означает, что существует последовательность дизъюнктов D1,…,Dn=□, каждый дизъюнкт которой принадлежит S или получается из предыдущих по правилу резолюции. Если дизъюнкт Dj из этой последовательности принадлежит S, то по предположению y(Dj)=1. Если же он получается из предыдущих по правилу резолюций, то также y(Dj)=1, поскольку правило резолюций сохраняет истинность. При i=n получаем, что y(□)=1. Противоречие показывает, что предположение о выполнимости множества S – ложное предположение. Следовательно, S невыполнимо. Достаточность доказана.

Докажем необходимость. Доказательство проведем индукцией по следующему параметру: d(S)=сумма числа вхождений литералов в дизъюнкты из S минус число дизъюнктов.

Пусть множество дизъюнктов S невыполнимо. Если пустой дизъюнкт принадлежит S, то он выводим из S (вывод в этом случае состоит из одного пустого дизъюнкта) и необходимость теоремы доказана. Будем считать в силу этого, что □ÏS. При этом предположении каждый дизъюнкт содержит хотя бы один литерал и поэтому d³0.

База индукции: d(S)=0. Если d(S)=0, то все дизъюнкты состоят из одного литерала. Поскольку множество S невыполнимо, то в нем должна найтись пара противоположных литералов X и ØX. В таком случае пустой дизъюнкт выводим из S, соответствующий вывод содержит три дизъюнкта: X, ØX, □.

Шаг индукции: d(S)>0. Предположим, что для любого множества дизъюнктов Т такого, что d(Т)<d(S) необходимость теоремы доказана. Пусть

S={D1,D2,…,Dk-1,Dk}.

Так как d(S)>1, то в S существует хотя бы один неодноэлементный дизъюнкт. Будем считать, что это дизъюнкт Dk, т.е. Dk=LÚDk′, где L – литерал и Dk′¹□. Наряду с множеством дизъюнктов S рассмотрим еще два множества дизъюнктов

S1={D1,D2,…,Dk-1,L},

S2={D1,D2,…,Dk-1,Dk/}.

Ясно, что S1 и S2 невыполнимы и что d(S1)< d(S) и d(S2)<d(S). По предположению индукции из S1 и S2 выводим пустой дизъюнкт. Пусть

A1,A2,…,Ai,…,Al-1,Al=□ (1)

вывод пустого дизъюнкта из S1 и

B1,B2,…,Bj,…Bm-1,Bm=□ (2)

вывод пустого дизъюнкта из S2.

Если в первом выводе не содержится дизъюнкта L, то эта последовательность дизъюнктов будет выводом из S и необходимость теоремы доказана. Будем считать, что L содержится в первом выводе, пусть Ai=L. Аналогично предполагаем, что Bj=Dk′.

Если дизъюнкт Е получается из дизъюнктов Е1 и Е2 по правилу резолюций, то будем говорить, что Е непосредственно зависит от Е1 (и от Е2). Транзитивное замыкание отношения непосредственной зависимости назовем отношением зависимости (Другими словами, E зависит от Е/, если существуют дизъюнкты Е1,…,Еn такие, что E=E1,…,En=E/ и Е1 непосредственно зависит от Е2,…,En-1 непосредственно зависит от En).

Преобразуем второй вывод следующим образом: к дизъюнкту Bj и всем дизъюнктам, которые от него зависят, добавим литерал L. Новая последовательность дизъюнктов

B1,B2,…,Bj/=Dk/ÚL, B/j+1 ,…,Bm/ (3)

будет выводом из S. Если дизъюнкт Bm не зависит от Bj, то Bm/ =□. Это означает, что из S выводим пустой дизъюнкт и необходимость теоремы доказана. Предположим, что Bm зависит от Bj. Тогда Bm/=L. Преобразуем теперь первый вывод: на место дизъюнкта Ai (равного L) в этой последовательности подставили последовательность (3). Получим последовательность

A1,…,Ai-1,B1,…,Bj/,B/j+1,…,Bm/=L,Ai+1,…,Al=□.

Эта последовательность является выводом пустого дизъюнкта из множества дизъюнктов S. Следовательно, если множество S невыполнимо, то из S выводим пустой дизъюнкт.

Теорема доказана.

Для доказательства того, что формула G является логическим следствием множества формул F1,…,Fk метод резолюций применяется следующим образом. Сначала составляется множество формул T={F1,…,Fk,ØG}. Затем каждая из этих формул приводится к конъюнктивной нормальной форме и в полученных формулах зачеркиваются знаки конъюнкции. Получается множество дизъюнктов S. И, наконец, ищется вывод пустого дизъюнкта из S. Если пустой дизъюнкт выводим из S, то формула G является логическим следствием формул F1,…,Fk. Если из S нельзя вывести □, то G не является логическим следствием формул F1,…,Fk.

Проиллюстрируем сказанное на примере. Покажем, что формула G=Z является логическим следствием формул F1=ØXÚY®X&Z, F2=ØY®Z. Сформируем множество формул T={F1,F2,ØG}. Приведем формулы F1 и F2 к КНФ (формула ØG сама имеет эту форму). Мы получим, что

F1 равносильна X&(ØYÚZ),

F2 равносильна (YÚZ).

Тогда множество дизъюнктов S равно

{X, ØYÚZ, YÚZ, ØZ}.

Из множества S легко выводится пустой дизъюнкт:

ØYvZ, ØZ, ØY, YÚZ, У, □.

Следовательно, формула G является логическим следствием формул F1, и F2.

Наши рекомендации