- •Введение
- •1. Математическая логика
- •1.1. Формальные модели
- •1.2. Логика высказываний
- •1.2.1. Основные теоремы логического вывода.
- •1.2.2. Семантические таблицы
- •1.2.3. Метод резолюций
- •1.3. Исчисление высказываний
- •1.3.1. Классическое исчисление высказываний
- •1.3.2. Исчисление секвенций
- •1.4. Корректность и полнота логического вывода
- •1.4.1. Корректность и полнота метода семантических таблиц
- •1.4.2. Корректность и полнота метода резолюций
- •1.4.3. Корректность и полнота аксиоматической системы вывода
- •1.4.3. Разрешимость и полнота исчисления высказываний
- •1.5. Логика предикатов
- •1.5.1. Исходные символы языка логики предикатов
- •1.5.2. Термы и формулы
- •1.5.3. Интерпретация в логике предикатов
- •Интерпретация термов
- •Интерпретация формул
- •Интерпретация атомных формул
- •Интерпретация формул с логическими связками.
- •Интерпретация формул, содержащих кванторы
- •1.5.4. Метод семантических таблиц
- •Для формул с кванторами
- •Для формулы с кванторами
- •Построение замкнутых семантических таблиц в логике предикатов
- •1.5.5. Подстановка термов в формулы
- •1.6. Исчисление предикатов
- •1.6.1. Классическое исчисление предикатов
- •Общезначимые эквивалентности логики предикатов
- •1.6.2. Исчисление секвенций
- •Правила вывода в исчислении предикатов
- •1.7. Канонические представления формул логики предикатов
- •1.7.1. Предваренная нормальная формула (пнф)
- •1.7.2. Сколемовская нормальная форма
- •1.8. Теоретико-множественное представление -формул
- •1.8.1. Эрбрановские интерпретации
- •1.8.2. Метод семантических деревьев
- •1.9. Унификация и резолюция в логике предикатов
- •1.9.1. Композиция подстановок
- •1.9.2. Унификация: неформальное описание
- •1.9.3. Метод резолюций в логике предикатов
- •Корректность и полнота исчислений логики предикатов Проблема разрешимости в логике предикатов
- •Корректность и полнота метода семантических таблиц
- •Корректность и полнота исчисления резолюций
- •Полнота и непротиворечивость исчисления предикатов
- •2. Элементы теории алгоритмов
- •2.1. Предварительное обсуждение.
- •2.1.1. Понятие алгоритма
- •2.1.2. Основные требования к алгоритмам
- •2.1.3. О подходах к уточнению понятия алгоритма.
- •2.2. Машина Тьюринга
- •2.2.1. Соединение машин Тьюринга Композиция машин Тьюринга
- •Итерация машины по паре состояний
- •Разветвление машин Тьюринга
- •Эквивалентность машин Тьюринга
- •2.2.2. Понятие об алгоритмической неразрешимости
- •Библиографический список
1.2.3. Метод резолюций
Метод резолюцийнаиболее эффективный способ алгоритмического доказательства, как в логике высказываний, так и в логике предикатов. Именно этот метод построения доказательств составляет основу языка логического программирования ПРОЛОГ. Доказательство в методе резолюций, как и в методе семантических таблиц Бета, строится путем опровержения. Но он более удобен для написания логических программ в языке программирования, который устроен почти так же, как язык логики высказываний. Предложенный в 1965 году Дж. Робинсоном метод резолюций позволяет выявить противоречивость множества формул с помощью систематической процедуры последовательного построения логических следствий из двух формул этого множества, приводящей к появлению противоречия в виде пустой резольвенты, если рассматриваемое множество формул невыполнимо.
В теории булевых функций доказывается, что произвольная булева функция, не равная тождественно единице, может быть представлена в совершенной конъюнктивной нормальной форме (СКНФ), которая является конъюнкцией всех конституент нуля данной функции. Определена также процедура приведения СКНФ к минимальной конъюнктивной нормальной форме (МКНФ). Конъюнктивная нормальная форма (КНФ) может быть также построена путем применения равносильных преобразований к формуле, являющейся суперпозицией над произвольным множеством логических связок.
Введем некоторые дополнительные понятия.
Литерал – это произвольный атом или его отрицание.
Дизъюнктэто дизъюнкция конечного множества литералов. Конъюнктивная нормальная форма является конъюнкцией конечного множества дизъюнктов различных рангов и может быть представлена в теоретико-множественном виде как множество, элементами которого являются множества литералов каждого из дизъюнктов КНФ. Это множество литералов также называется дизъюнктом. Дизъюнкт, который не содержит ни одного литерала, называется пустым и является всегда неподтверждаемым. Пустой дизъюнкт обозначается значком . Пустой дизъюнкт по определению ложен и означает противоречие: он вносит противоречие в наш мир, делая его неподтверждаемым.
Для обозначения произвольных секвенций вида Ф├R используется также имя клауза. Любую подформулу клаузы можно представить дизъюнктом, который, в свою очередь, называется предложением. Если в множестве формул S все формулы являются дизъюнктами, его можно представить в теоретико-множественной форме
Множество
дизъюнктов
соответствует представленному в КНФ
высказыванию
Пусть
D1
и D2
дизъюнкты, L
– атом. Резольвентой двух дизъюнктов
(D1L)
и (D2L)
называется дизъюнкт (D1D2).
(КНФ(
).
Правило резолюции (или резолюция) гласит, что из истинности двух дизъюнкций, одна из которых содержит литерал, а другая — его отрицание, следует (выводима) формула, являющаяся дизъюнкцией исходных формул без упомянутого литерала и его отрицания.
Рассмотрим следующие дизъюнкты:
C1={A1,…, Ak, B1,…, Bl},
C2={D1,…,Dk, F1,…,Fl},
где A1,…, Ak, B1,…, Bl, D1,…, Dk, F1,…, Fl - атомы. Предположим, что А1 совпадает с F1. Тогда можно переписать эти дизъюнкты следующим образом:
C1={A1}
где
-
={A2,…,
Ak,
B1,…,
Bl},
C2=
{A1}
,
где
={D1,…,
Dk,
F2,…,Fl
}.
Тогда резольвентой
С1
и
С2
является дизъюнкт
.
Можно считать, что исходные дизъюнкты С1 и С2 «вступают в противоречие», так как содержат один и тот же литерал, входящий в эти дизъюнкты с отрицанием и без отрицания. Устранение противоречия приводит к получению нового дизъюнкта, который и «разрешает конфликт». Своим названием метод обязан этому разрешению (to resolve – разрешать). Определим формально метод резолюций.
Пусть С1 и С2 – дизъюнкты, L – такой литерал, что LC1 и LC2. Тогда резольвентой дизъюнктов С1 и С2 называется дизъюнкт
D=(C1\{L}) (C2\{L}). Говорят, что дизъюнкты С1 и С2 резольвируют.
Резольвентой двух дизъюнктов C1={P, Q} и C2={P, Ф} является дизъюнкт D={Q, Ф}.
Если имеется множество, содержащее более двух дизъюнктов, то можно ввести понятие множества резольвент.
Пусть S={C1, …, Cn}. Множество R(S)=S{D | D резольвента дизъюнктов Ci, Cj, 1 i, j m, mn} называется резольвентой множества дизъюнктов S. Резольвировать могут не только исходные дизъюнкты, но и полученные резольвенты.
Применение такого правила становится интуитивно понятным, если записать дизъюнкты в классической формулировке логики высказываний:
Пусть исходные высказывания: (AB), (AC); заключение(BC). Метод резолюции основан на использовании тавтологии
,
что проверяется непосредственным преобразованием или таблицей истинности.
Действительно, выполним преобразования:
Следовательно,
полученное заключение справедливо.
Т.е. дизъюнкт (BC)
выводим из данных посылок: (АВ),
(АС)
├
(ВС).
Пусть S={C1, C2, …, Ck} - множество дизъюнктов. Резолютивный вывод из S есть такая последовательность C1, C2, …, Cm дизъюнктов, что i: Ci S или является резольвентой пары дизъюнктов, предшествующих Ci. Вывод пустого дизъюнкта называется опровержением S.
Основная теорема
логического вывода утверждает, что если
формула R
выводима из множества формул F1,
F2,…,Fk,
то формула Ф=
ложна. Если при этом формулы F1,
F2,…,Fk,
R
представлены в виде дизъюнктов, то,
присоединяя к ним все возможные
резольвенты этих дизъюнктов, в случае
невыполнимости формулы Ф получим пустую
резольвенту, что означает противоречивость
множества Ф.
Доказательство методом резолюции является аналогом доказательства от противного. В утверждении о следовании из множества посылок некоторого заключения производят замену этого заключения его отрицанием. Затем каждую посылку и отрицание заключения представляют в виде множества дизъюнктов и применяют к полученному множеству дизъюнктов метод резолюции.
Пусть S – множество дизъюнктов:
Применяя к этому множеству дизъюнктов резолюцию столько раз, сколько возможно, получим резольвенту S:
Примечание: резольвируют дизъюнкты, которые различаются способом вхождения (с отрицанием или без) ровно одного литерала.
Примеры
1. Используя метод резолюций, покажем, что множество формул
противоречиво.
Рассмотрим резолютивный вывод:
ABC;
AB
;
резольвента
1 и 2;А резольвента 3 и 6.
резольвента
4 и 5;резольвента 7 и 8.
Следовательно, множество S противоречиво.
2. Используя метод резолюций, покажем, что истинна секвенция
Для доказательства достаточно показать, что соответствующее этой секвенции множество дизъюнктов противоречиво. Если секвенция истинна, то ее отрицание ложно. Представим соответствующую отрицанию секвенции формулу в КНФ, выполнив преобразования.
Соответствующее
теоретико-множественное представление
формулы имеет вид:
Применим к этому множеству дизъюнктов
метод резолюций:
резольвента
1 и 4;
резольвента
3 и 5;
резольвента
3 и 2;резольвента 7 и 6.
Доказано, что отрицание секвенции ложно. Следовательно, исходная секвенция истинна.
Процедуру поиска всех возможных резольвент можно организовать по-разному, и разные стратегии в среднем будут включать различное число шагов до получения результата. Одной из наиболее эффективных является стратегия движения «от цели». Под «целью» понимают заключение высказывания. При этом на первом шаге для получения резольвенты выбирают целевой дизъюнкт и в множестве фактов – такой дизъюнкт, который содержит отрицание цели. Далее поступают аналогичным образом с полученной резольвентой до тех пор, пока не будет получен пустой дизъюнкт. Метод резолюций гарантирует получение его, если исходное множество дизъюнктов противоречиво. Эта стратегия особенно эффективна в языках логического программирования, где только небольшое число фактов общей базы данных действительно имеет отношение к заданному вопросу.
