Математическая Логика и Теория Алгоритмов стр. 37 из 64
© 2003 Галуев Геннадий Анатольевич
Дэвис М. и Патнем Х. Превратили другой, более эффективный метод проверки
невыполнимости множества дизъюнктов (т.е. по сути дела метод доказательства тео-
рем). Суть этого способа заключается в использовании следующих четырех правил:
1. Правило тавтологии.
Вычеркнем все тавтологичные основные дизъ-
юнкты (т.е. дизъюнкты, которые не зависят от переменных) из
S
, то-
гда оставшееся множество невыполнимо в том и только в том случае,
когда и
S невыполнимо.
2. Правило однолитерных дизъюнктов.
Если существует единичный ос-
новной дизъюнкт
L в S , то
'
S получается из S вычеркиванием тех ос-
новных дизъюнктов в
S , которые содержат
L
. Если
'
S пусто, то S вы-
полнимо, в противном случае построим множество
*
S
, выбрасывая из
'
S вхождения L⎤ . Тогда
*
S невыполнимо в том и только в том случае
когда и
S невыполнимо. Заметим, что если L⎤ единичный основной
дизъюнкт, то при вычеркивании
L⎤
он превратится в 0.
3. Правило чистых литер.
Назовем литеру L в основном дизъюнкте из
S чистой в S тогда и только тогда, когда литера L⎤ не находится ни в
одном основном дизъюнкте из
S . Если литера L чистая в S , то вы-
черкнем все основные дизъюнкты, содержащие
L . Оставшееся мно-
жество невыполнимо тогда и только тогда, когда и
S невыполнимо.
4. Правило расщепления.
Если множество S можно представить в виде
,&)(&...&)(&)(&...&)(
11
RLVBLVBVLAVLA
nm
⎤⎤ где RBA
ii
,
,
- свободны от L
и
L⎤ , то получим множества расщепления
RBBBS
RAAAS
n
m
&&...&&
&&...&&
212
211
=
=
Множество
S невыполнимо тогда и только тогда, когда )(
21
VSS невыполнимо т.е. и
1
S и
2
S - невыполнимы.
Обоснуем возможность применения этих правил. Для этого необходимо доказать,
что преобразованное множество дизъюнктов невыполнимо тогда и только тогда, когда
невыполнимо исходное множество дизъюнктов.
Правило тавтологии применимо т.к. тавтологии выполняются в любой интерпре-
тации, а поэтому
'
S
невыполнимо тогда и только тогда, когда S невыполнимо.
Рассмотрим правило однолитерных дизъюнктов
. Если
'
S пустое множество, то все
дизъюнкты из
S содержат L . Следовательно, всякая интерпретация, содержащая L ,
может удовлетворять
S . Поэтому S выполнимо. Покажем теперь, что
*
S невыполнимо
тогда и только тогда, когда
S
невыполнимо. Предположим, что
*
S невыполнимо. Если
S выполнимо, то существует модель
для S , содержащая L . Для
*
S модель
долж-
на удовлетворять всем дизъюнктам, которые не содержат
L . Далее т.к.
опроверга-
ет
L⎤ , модели
должны удовлетворять все дизъюнкты, которые первоначально со-
держали
L⎤ . Следовательно модель
должна быть и моделью для
*
S
, что противо-
речит предложению о невыполнимости
*
S . Поэтому S должно быть невыполнимо.
Предположим теперь, что
S невыполнимо. Если
*
S выполнимо, то существует мо-
дель
*
для
*
S
. Таким образом, всякая интерпретация S , содержащая
*
и L , долж-
на быть моделью для
S
. Это противоречит предположению, что
S
не имеет модели.
Поэтому
*
S должно быть невыполнимо. Следовательно
*
S невыполнимо тогда и только
тогда, когда
S невыполнимо.
Дадим обоснование правила чистых литер. Предположим, что
'
S невыполнимо.
Тогда
S
должно быть невыполнимо, так как
'
S есть подмножество
S
. Наоборот, пред-
положим теперь, что
S невыполнимо. Если
'
S
выполнимо, то существует модель