
- •6. Проблема разрешимости. Теория автоматического вывода
- •6.1. Пренексная нормальная форма
- •1. Исключить из а все логические связки ““ (эквива-лентность).
- •2. Исключить из а все логические связки “ “ (импли-кация).
- •3. Внести отрицание ( ) вглубь формулы.
- •4. Вынести кванторы в начало формулы. Для этого используются законы
- •5. Раскрыть в матрице все конъюнкции, содержащиеся внутри дизъюнкций.
- •6.2. Скулемовская форма
- •6.3. Эрбрановский универсум и базис.
- •По индукции можно строго доказать, что
- •6.4. Семантические деревья. Теорема Эрбрана
- •6.5. Метод резолюций
- •6.5.1. Метод резолюций в исчислении высказываний
- •6.5.2 Операции подстановки, унификации и склейки
- •6.5.3. Правило и метод резолюции в теориях первого порядка
- •Заключение к разделу “математическая логика”
6.5.2 Операции подстановки, унификации и склейки
В ИВ литеры дизъюнктов в конкретных интерпрета-циях являются логическими константами, поэтому поиск контрарных литер прост. В теориях первого порядка, где в качестве литер выступают предикаты, являющиеся логи-ческими функциями от констант, предметных переменных и функций, поиск контрарных литер усложняется.
Рассмотрим множество дизъюнктов S . Поскольку не-выполнимость S доказывается сразу для всех возможных интерпретаций, то для получения контрарных пар литер в дизъюнктах S (и , соответственно, получения резольвент) можно использовать дизъюнкты не только в их исходной форме, но и новые дизъюнкты, получаемые путём различ-ных подстановок в литеры вместо предметных переменных некоторых термов.
Пример 1. Доказать невыполнимость множества дизъ-юнктов S = {P(x) Q(z,y), P(f(y)), Q(z,a)}.
Решение. В исходных дизъюнктах контрарных пар литер нет. Подставив в первый дизъюнкт D1 = P(x) Q(z,y) вмес-то x функцию f(y), получаем новый дизъюнкт D1 = P(f(y))
233
Q(z,y), который имеет контрарную пару литер с дизъюнктом D2 = P(f(y)). Применяя правило резолюции к D1 и D2, получим резольвенту D4 = Q(z,y). Подставляя в D4 вместо y константу a, получим пару контрарных дизъюнктов Q(z,a) и Q(z,a). После применения к ним правила резолюции по-лучим резольвенту, равную пустому дизъюнкту , что до-казывает невыполнимость S.
Рассмотрим подстановки более подробно.
Определение. Подстановками называются конечные множества вида = {t1/x1,..., tn/xn},
где (x1,..., xn) - попарно различные предметные переменные, (t1,..., tn) - термы, отличные от соответствующих пере-менных (при 1 i n : ti xi). Обозначаются подстановки буквами из греческого алфавита.
Определение. Пустой называется подстановка, не со-держащая замен: n=0. Обозначается пустая подстановка че-рез .
Допустим, рассматривается некоторое множество дизъюнктов S = {D1, D2, ..., Dk}.
Определение. Примером дизъюнкта Di S назы-вается результат одновременной подстановки ={t1/x1,..., tn/xn} термов (t1,..., tn) вместо переменных (x1,..., xn) в Di. Обозначается данный пример как Di . Каждую подстановку {ti/xi} будем для краткости называть элементарной.
В отличие от ранее рассмотренных основных приме-ров дизъюнктов примеры могут содержать предметные пе-ременные, поскольку при подстановке они могут заменяться новыми предметными переменными, а также может произ-водиться только частичная их замена термами.
Пример 2. Применить к дизъюнкту Di = P(x) Q (f(y)) R (z,a) подстановку = {g(y)/x, a/y,x/z}.
Решение. После подстановки получаем пример следующего
вида: Di = P(g(y)) Q (f(а)) R (x,a).
234
Допустим, вначале к некоторому дизъюнкту Di была применена подстановка = {t1/x1,..., tn/xn}, после чего все переменные (x1,..., xn) были заменены термами (t1,...,tn). За-тем к вновь полученному дизъюнкту была применена под-становка = {u1/y1,...,um/ym}. В итоге её применения а) все переменные (y1,...,ym) были заменены термами (u1,..., um), б) термы из (t1,...,tn), которые входят в множество (y1,...,ym), также были заменены термами (u1,...,um). Результат второй подстановки обозначим через (t1,...,tn). При последова-тельном применении , а затем возможно появление тож-дественных элементарных подстановок, при которых ti = xi. Например, подстановка , содержит элементарную под-становку {y/x}, а - элементарную подстановку {х/y}.Тогда при последовательном применении и появится элемен-тарная тождественная подстановка {х/х}.
Если в подстановки и входят одинаковые пред-метные переменные xi и yj (xi = yj ), то при второй подста-новке элементарная подстановка uj/yj уже не будет “сра-батывать”, поскольку все элементы yj уже будут заменены при первой подстановке.
Определение. Если первой была применена подста-новка , а второй - подстановка , то их композицией () называется подстановка, выполняющая сразу те же замены, что и при данные подстановки при последовательном при-менении.
Утверждение. Композиция ( ) подстановок = {t1/x1, ... , tn/xn} и ={u1/y1,...,um/ym} может быть получена из подстановки { t1/x1,..., tn/xn , u1/y1,...,um/ym} вычёркиванием:
а) всех элементарных подстановок ti/xi, у которых ti = xi (тождественных),
б) всех элементарных подстановок uj/yj, у которых yj (x1,..., xn) (т.е. таких элементарных подстановок, которые не будут
235
применяться во второй подстановке вследствие того, что элементы yj уже изменены первой подстановкой. Cпра-ведливость утверждения следует из сделанных выше заме-чаний.
Пример 3 . Построить композицию () подстановок = {у / x, z / y, f(a) / z} и = {b / z, x / y}.
Решение. Так как у = х, z = b, а к f(a) подстановка не применима, то
{ t1/x1,..., tn/xn , u1/y1,...,um/ym} = { x/x, b/y, f(a)/z , b/z, x/y}.
Вычеркиваем первую элементарную подстановку х/x (тождественную), а также четвёртую и пятую b/z, x/y, кото-рые не участвуют во второй подстановке из-за того, что переменные z, y изменены в первой подстановке. В итоге получим: ( ) = { b/y, f(a)/z}.
Cвойства композиций подстановок.
Для любых подстановок , , справедливы следую-щие свойства:
1. Ассоциативность: = ( ) = ( ).
2.Коммутативность c пустой подстановкой: = .
Потенциальные возможности подстановок таковы, что с их помощью нельзя добавлять или снимать отрицание с предикатов. Однако, применяя подстановки, можно (не во всех случаях) привести переменные и термы, входящие в предикаты, к единому виду.
Определение. Подстановка называется унифика-тором множества выражений Е ={E 1 , E 2 , ... , E k } когда E1=E2=...=Ek. Если унификатор для множества Е суще-ствует, то само множество называется унифицируемым.
Очевидно, унификатор может быть неединственным, поскольку при применении любой композиции подстановок унификатора с любой подстановкой будет выпол-няться равенство E1 = E2 = ...= Ek .
236
Определение. Унификатор называется наиболее об-щим унификатором для множества выражений Е ={E 1 , E 2 , ... , E k } когда любой унификатор множества выра-жений Е можно представить в виде = , где - неко-торая подстановка.
Пример 4 . Найти унификатор множества E = { P(x,y), P(a,b)}. Унификатором Е является подстановка ={а/x, b/y}. После её применения Е1 = Е2 = Р(a,b).
Рассмотрим более сложные случаи различия выраже-ний. Допустим, имеется множество из k выражений Е ={E1 , E2 , ... , Ek }, каждое из которых зависит от s подвыражений:
E1 = E1 (e11 , e12 , ... ,e1s);
E2 = E2 (e21 , e22 , ... ,e2s);
. . .
Ek = Ek (ek1 , ek2 , ... ,eks) .
Множество подвыражений ej1 , ej2 , ... ,ejk , стоящих в каждом из выражений E1 , E2 , ... , Ek на j-той позиции, на-зовём подвыражениями с индексом j. Если все такие под-выражения ej1 , ej2 , ... ,ejk одинаковы, то назовём их совпа-дающими. Если не все одинаковы (т.е. существуют номера p,q при которых ejр ejq ), то назовём их несовпадающими.
Пример 5. Определить совпадаюшие и несовпадаю-щие подвыражения в множестве выражений Е ={E1 ,E2 ,E3 } = {P(x,y,z,u), Р(x,f(a),z,g(z)), Р(x,y,z,g(y))}.
Решение.
j=1: e11 = e21 = e31 =x, подвыражения с индексом j=1 совпадают,
j=2: e12 = e32 =у, e22 =f(a), подвыражения с индексом j=2 не совпадают,
j=3: e13 = e23 = e33 =z, подвыражения с индексом j=3 совпадают,
j=4: e14 = u, e24 =g(z), e34 = g(x), подвыражения с индексом j=4 не совпадают.
237
Таким образом, подвыражения, стоящие на первых и третьих позициях, совпадают, а на вторых и четвёртых позициях - не совпадают.
Определение. Рассмотрим множество выражений Е={E 1, E 2 , ... , E k }, вида:
E1 = E1 (e11 , e12 , ... ,e1s);
E2 = E2 (e21 , e22 , ... ,e2s);
. . .
Ek = Ek (ek1 , ek2 , ... ,eks).
Множеством рассогласований D j множества выраже-ний Е называются несовпадающие подвыражения ej1 , ej2 , ... ,ejk с минимальной величиной индекса j. Если для всех индексов 1 j s подвыражения совпадают, то множество рассогласований множества выражений Е принимаем рав-ным нулю: D j = .
Для множества Е = {P(x,y,z,u), Р(x,f(a),z,g(z)), Р(x,y,z , g(y))} из Примера 5 множеством рассогласований будет D 2 = {y, f(a)}. Рассмотрим на этом множестве Е, каким образом можно, последовательно устраняя рассогласования, унифи-цировать все множество.
1. Вначале множество рассогласований равно D 2 = {y, f(a)}. Его можно унифицировать при помощи подстановки = {f(a)/y} на множестве Е. После применения получим:
E1 = P(x, f( a ), z, u), E2 = Р(x, f ( a ), z, g ( z )), E3 = Р(x, f(a), z, g ( f (a)).
2. Для индексов j=1,2,3 подвыражения совпадают. Мно-жество рассогласований равно D4 = {u, g(z), g(f(a))}. Его можно унифицировать при помощи подстановки 2 = {f(a)/z, g(f(a))/u} на множестве Е. После применения 2 получим:
E12 = P( x, f(a), f(a), g(f(a))), E22 = Р(x, f(a), f(a), g(f(a))), E32 = Р(x, f(a), f(a), g(f(a))).
Таким образом, множество Е унифицируемо и найден-
238
ный унификатор имеет вид: 2 = {f(a)/y, f(a)/z, g(f(a))/u}.
В общем случае для определения унифицируемости множества выражений Е и нахождения наиболее общего унификатора (если он существует) применяется
Алгоритм унификации.
Рассмотрим множество выражений Е ={E 1 , E 2 , ... , E k }.
ШАГ 1. Введём индекс j0 = 1. Присвоим Е =E, = .
ШАГ 2.Определяем множество рассогласований Dj1 (j1 – наи-меньший из индексов несовпадающих подвыражений, j1 j0). Возможны две ситуации:
а) Dj1 = ( для всех индексов унификация подвыражений завершена ). Следовательно, исходное множество Е - уни-фицируемо, а - его наиболее общий унификатор. Выход из алгоритма.
б) Dj1 ( для индекса j1 подвыражения не совпадают (j1 – минимальный из всех таких индексов). Переходим на следующий ШАГ 3.
ШАГ 3. В случае наличия ненулевого множества рассо-гласований Dj1 возможны также две ситуации:
а) существует подстановка , унифицирующая Dj1.Тогда присваиваем := , Е :=Е ,
j0 := j1. Переход на ШАГ 2 (Продолжение выполнения алго-ритма).
б) не существует подстановки , унифицирующей Dj1. В этом случае исходное множество Е - не унифицируемо. Вы-полнение алгоритма прекращается.
Пример 6. Определить унифицируемость множества выражений Е ={E 1 , E 2 , E 3 , E4} = {P(x, y, z, u), Р(f(u, z), g(a), z), Р(y, y, z), Р(f(a,z), y, z) }.
Решение.
1. Индекс j0 = 1. Присвоим Е =E, = .
2. Поскольку подвыражения на первых местах не совпада-
239
ют, то j1 =1 и множество рассогласований D1 = { x, f ( u, z), y, f ( a, z)}. Подстановка , унифицирующая D1, может быть
построена. Она имеет вид: = {f(a,z)/x, f(a,z)/y, a/u}. При-сваиваем : = = , Е :=Е = { P(f(a, z), f(a, z), z), Р(f(a, z), g(a), z), Р(f(a, z), f(a, z), z), Р(f(a, z), f(a, z), z)}.
3. Подвыражения на вторых позициях не совпадают, следо-вательно, j1 =2 и множество рассогласований D2 = {f(a, z)}, g(a)}. Подстановка, унифицирующая D2, не существует, по-скольку путем замены переменных невозможно унифици-ровать подвыражения f(a,z) и g(a). Таким образом, рассмот-ренное множество выражений не унифицируемо.
За счет применения унификации можно также доби-ваться идентичности литер внутри дизъюнктов. Дублиру-ющие литеры при этом можно устранять. Соответствующая операция называется склейкой. Рассмотрим её строгое определение.
Определение. Пусть некоторый дизъюнкт Di, содер-жащий множество литер {L}, имеет одинаковые литеры L(E1), L(E2), ..., L(Ek), обладающие одинаковой положитель-ностью (все одновременно без отрицания либо - с отрица-нием). Если для множества выражений Е={E1,E2,...,Ek} cу-ществует наибольший общий унификатор , то множество литер {L} называется склейкой для Di .
Пример 7. Построить склейку для дизъюнкта Di = Р(х) Р(f(y)) Р(f(a)) Q(y).
Решение. Одинаковыми являются первая, вторая и третья литеры. Е= {х, f(y), f(a)}. Наиболее общий унификатор = {a/y, f(a)/x}. Di = Р(f(a)) Р(f(a)) Р(f(a)) Q(a) = Р(f(a)) Q(a) .
Если в результате склейки в Di осталась одна литера, то она называется единичной.
240
Задачи.
1. Построить примеры дизъюнкта Di = Р(х) Q(y,f(z)) R(u,g(x)), полученные в результате применения подстано-вок:
а) = {а/х, b/z, f(a)/u}; б) = {у/х, z/y}; в) = {g(а)/х, g(z)/y, a/z}.
2. Найти композицию подстановок:
а) = {c/х, f(z)/y, y/z} и = {b/х, z/y, g(x)/z};
б) = {a/х, z/y} и = {y/х, b/z, g(a)/z};
в) = {y/х, z/y, b/z} и = {a/х, x/y, f(c)/z}.
3. Построить пример коммутативных подстановок. Доказать некоммутативность подстановок в общем случае.
4. Выяснить унифицируемость множеств. В случае положи-тельного ответа - определить наиболее общий унификатор:
а) {P(x), P(a), P(b)}; б) {P(x), P(y), P(b)}; в) {Q(x,y), Q(x,b), Q(z,y)}; г) {Q(a,b), Q(x,y), Q(x,c)}; д) {Q(x,y), Q(x,f(a,b)), Q(a,z)}.
5. Проверить наличие склеек у дизъюнктов и построить их:
а) P(х,a) P(y,b) Q(z); б) P(х) P(a) Q(y,f(x)) Q(y,f(a)); в) P(х) Q(f(a)) P(f(a)); г) Q(х,y) Q(y,f(a)) Q(z,u).