- •127994, Москва, ул. Образцова, 15
- •2.Теоретические основы логическоого программирования
- •2.1.Логика высказываний и логика предикатов.
- •2.1.1.Формулы. Синтаксис и семантика формул.
- •2.1.2.Интерпретация формул в логике высказываний.
- •2.1.3.Интерпретация в логике предикатов первого порядка
- •2.1.4.Равносильность формул логики высказываний
- •2.1.5.Тождественная истинность формул логики высказываний
- •2.1.6.Равносильность формул логики первого порядка
- •2.1.7.Тождественная истинность, общезначимость, выполнимость, противоречивость формул логики предикатов
- •2.1.8.Рассуждения в логике высказываний (предикатов)
- •2.2.Метод резолюций
- •2.2.1.Метод резолюций в логике высказываний
- •2.2.2.Подстановка и унификация
- •2.2.3.Метод резолюций для логики первого порядка
- •2.2.4.Стратегии метода резолюций
- •2.3.Отношения и предикаты
- •3.Пролог- язык РекуРсивно-логического программирования
- •3.1.Пролог-история возникновения
- •3.2.Синтаксис языка пролог
- •3.3.Семантика языка пролог
- •3.4.Язык пролог и метод резолюций. Логическая интерпретация языка Пролог.
- •3.5.Работа в пролог-системе
- •3.6.Описание инфиксных операций
- •3.7.Списки в языке пролог
- •3.8.Арифметика в языке пролог
- •3.9.Отсечение и отрицание в языке пролог
- •3.10.Встроенные предикаты языка пролог
- •3.11.Работа с базой данных в языке пролог
- •3.12.Предикаты поиска
- •3.13.Решение головоломки на языке пролог(задача Эйнштейна)
- •4.Лабораторные работы по РекуРсивно-логическому программированию
- •4.1.Задание n1 Отношения между объектами. (на Прологе и Паскале)
- •4.1.1.Методические указания
- •4.1.2.Варианты
- •4.2.Задание n2. Работа со списками
- •4.2.1.Методические указания
- •4.2.2.Варианты
- •4.3.Задание n3. Разные задачи
- •4.3.1.Методические указания
- •4.3.2.Варианты
- •4.4.Содержание отчета
2.2.3.Метод резолюций для логики первого порядка
Сформулируем правила порождения дизъюнктов для логики первого порядка.
Определение 2.2.8. Правилом резолюций в логике предикатов называется следующее правило
из дизъюнктов ¬P(t1,...,tn)vF и P(s1,...,sn)vG выводим дизъюнкт σ(F)vσ(G),
где σ – наиболее общий унификатор множества {P(t1,...,tn), P(s1,...,sn)}.
Дизъюнкт σ(F)vσ(G) называется бинарной револьвентой двух дизъюнктов, а литеры ¬P(t1,…,tn) и P(s1,…,sn) отрезаемыми литерами.
Пример 2.2.10.
Исходные дизъюнкты: ¬Q(a,f(x))vR(x), Q(u,z)v¬P(z). По правилу резолюций выводим дизъюнкт:
R(x)v¬P(f(x)) (отрезаемые литеры - ¬Q(a,f(x)), Q(u,z), НОУ σ={u=a, z=f(x)}
В отличие от логики высказываний, в логике предикатов нам понадобится еще одно правило.
Определение 2.2.9. Правилом склейки в логике предикатов называется правило:
из дизъюнкта ◊P(t1,...,tn)v...v◊P(s1,...,sn)vF выводим дизъюнкт σ (◊P(t1,...,tn)vσ(F),
где σ – наиболее общий унификатор множества {P(t1,...,tn),...,P(s1,...,sn)},
◊ – знак отрицания или его отсутствие.
Дизъюнкт σ(◊P(t1,…,tn)vσ(F) называется склейкой первого дизъюнкта.
Пример 2.2.11.
Исходный дизъюнкт: ¬Р(х,у)v¬P(у,х)v¬Р(а,а)vQ(x,y,v), по правилу склейки дает дизъюнкт ¬Р(а,а)vQ(a,a,v).
НОУ - σ={х=a, у =a }.
Определение вывода в логике первого порядка немного отличается от аналогичного определения в логике высказываний.
Определение2.2.12. Пусть S – множество дизъюнктов. Выводом из множества дизъюнктов S называется последовательность дизъюнктов
D1,D2,…,Dn,
такая, что каждый дизъюнкт Di принадлежит S, выводим из предыдущих дизъюнктов по правилу резолюций или выводим из предыдущего по правилу склейки.
Как и в логике высказываний, дизъюнкт D выводим из S, если существует вывод из S, последним дизъюнктом которого является D.
Пример 2.2.12.
Исходное множество дизъюнктов: S={¬B(x)v¬C(x)vT(f(x)), C(у)vT(f(z)), B(a)}. Рассмотрим последовательность:
D1=¬B(x)v¬C(x)vT(f(x)), D1S.
D2=C(у)vT(f(z)), D2S.
D3=¬B(x)vT(f(x))vT(f(z)), бинарная резольвента дизъюнктов D1, D2, НОУ - σ={у = х}.
D4=¬B(x)vT(f(x)), из D3 по правилу склейки, НОУ - σ={z = х}.
D5=B(a), D5S.
D6=T(f(a)), бинарная резольвента дизъюнктов D4, D5, НОУ - σ={ х = a }.
Рассматриваемая последовательность является выводом из S.
Теорема 4. Множество дизъюнктов S логики первого порядка невыполнимо тогда и только тогда, когда из S выводим пустой дизъюнкт.
Метод резолюций для доказательства следования формулы G из формул F1,…,Fk может применяться лишь в случае, когда формулы F1,…, Fk и G не имеют свободных переменных.
Вопрос: Можно ли сформулировать содержательное утверждение, которое записывается формулой логики предикатов в некоторой интерпретации?
Метод резолюций в логике предикатов применяется в следующей последовательности шагов:
записывается формула логики предикатов F1&F2&…&Fk, &G;
формула приводится к виду (Q1x1)(Q2x2)… (Qnxn)F(x1 , x2,…, xn) по теореме 2 при отсутствии свободных переменных;
удаляются кванторы существования, для этого подформулу вида
.
заменяется на
,
где s
– новый функциональный символ, не
входящий до этого в сигнатуру, s
– называется функцией Сколема;удаляются кванторы всеобщности;
оставшаяся бескванторная формула приводится к кнф, которая рассматривается как множество дизъюнктов;
выводится пустой дизъюнкт.
Пример 2.2.13.
Докажем, что формула G является логическим следствием множества формул F1,F2.
,
,
.
Будем следовать описанной последовательности шагов.
записывается формула логики предикатов F1&F2&G;
преобразуем отдельно F1, F2,G
,
,
;
удаляются кванторы существования, a, b-сколемовские константы,
,
,
;
удаляются кванторы всеобщности
,
,
;
оставшаяся бескванторная формула приводится к кнф
,
которая рассматривается как множество
дизъюнктов S=
;выводится пустой дизъюнкт
S;
S;
,
бинарная резольвента дизъюнктов D1,
D2,
НОУ - σ={х = a};
S;
,
бинарная резольвента дизъюнктов D3,
D4,
НОУ - σ={y
= b};
S;
S;
-
бинарная резольвента дизъюнктов D6,
D7,
НОУ - σ={y
= b};
D9 = □ - бинарная резольвента дизъюнктов D5, D8, НОУ - ;
