| ||||||
---|---|---|---|---|---|---|
|
| |||||
|
Лекция 4. Логика предикатов первого порядка В общем случае для построения атомов разрешается использовать следующие четыре типа символов: (I) Индивидные символы или константы. Это обычно имена объектов такие, как Лена, Петя и 5. (II) Символы предметных переменных. Это обычно строчные буквы х, у, z,..., возможно, с индексами. (III) Функциональные символы. Это обычно строчные буквы f,g,h,... или осмысленные слова из строчных букв такие, как отец и плюс. (IV) Предикатные символы. Это обычно прописные буквы Р, Q, R, ... или осмысленные слова из прописных букв такие, как БОЛЬШЕ или ЛЮБИТ. Всякая функция или предикатный символ имеет определенное число аргументов. Если функциональный символ f имеет n аргументов, то f называется n - местным функциональным символом. Индивидный символ или константа может рассматриваться как функциональный символ без аргументов. Аналогично, если предикатный символ Р имеет n аргументов, то Р называется n- местным предикатным символом. Например, отец - одноместный функциональный символ, а БОЛЬШЕ и ЛЮБИТ - двухместные предикатные символы. Функция есть отображение, которое отображает список констант в данную константу. Например, отец - функция, которая отображает человека по имени Петя в человека, который есть отец Пети. Следовательно, отец(Петя) представляет человека, даже если его имя неизвестно. В логике первого порядка выражение отец(Петя) называется термом. Термы определяются рекурсивно следующим образом: (I) Константа есть терм. (II) Переменная есть терм. (III) Если f есть n- местный функциональный символ и t1......, tn - термы, то f(t1,...,tn) - терм. (IV) Никаких термов, кроме порожденных применением указанных выше правил, нет. Если Р - n- местный предикатный символ и t1,..., tn- термы, то Р (t1,..., tn) - атом. Символы " и $ называются соответственно кванторами общности и существования. Если х - переменная, то ("х) читается как «для всех х», «для каждого х» или «для вcякого х», тогда как ($х) читается «существует х», «для некоторых х» или «по крайней мере для одного х». Вхождение переменной х в формулу называется связанным тогда и только тогда, когда оно совпадает с вхождением в кванторный комплекс ("х) или ($х) или находится в области действия такого комплекса. Вхождение переменной в формулу свободно тогда и только тогда, когда оно не является связанным. Переменная свободна в формуле, если хотя бы одно ее вхождение в эту формулу свободно. Переменная связана в формуле, если хотя бы одно ее вхождение в эту формулу связано. В формуле ("х) Р(х, у) переменная х связана, так как вхождение х связано. Однако переменная у свободна, так как единственное вхождение у свободно. Отметим, что переменная в формуле может быть свободной и связанной одновременно. Например, у и свободна и связана в формуле ("х)Р(х, у)&("y)Q(y). Правильно построенные формулы или формулы логики первого порядка рекурсивно определяются следующим образом: (I) Атом есть формула. (II) Если F и G - формулы, то (F), (FG), (F&G), (F®G), (F«G)- формулы. (III) Если F - формула, а х - свободная переменная в F, то ("х)F и ($х)F - формулы. (IV) Формулы порождаются только конечным числом применений правил (I), II) и (III). В логике высказываний интерпретация есть приписывание атомам истинностных значений. Чтобы определить интерпретацию для формулы логики первого порядка, мы должны указать предметную область (область значений предметных переменных) и значения констант, функциональных и предикатных символов, встречающихся в формуле. Интерпретация формулы F логики первого порядка состоит из непустой (предметной) области D и указания «оценки» (значения) всех констант, функциональных символов и предикатных символов, встречающихся в F: 1. Каждой константе ставится в соответствие некоторый элемент из D. 2. Каждому n- местному функциональному символу ставится в соответствие отображение из Dn в D. (Заметим, что Dn ={(х1,..,хn) ç х1 Î D,..., хn Î D}.). 3. Каждому n- местному предикатному символу ставится в соответствие отображение Dn в (И, Л). Иногда, чтобы акцентировать внимание на области D, говорят об интерпретации формулы на D. Когда мы ищем «оценку», т. е. определяем истинностное значение формулы в интерпретации на области D, ("х) будет интерпретироваться как «для всех элементов х из D» и ($х) - как «существует элемент х из D». Для каждой интерпретации формулы на области D формула может получить истинностное значение И или Л согласно следующим правилам: 1. Если заданы значения формул G и H, то истинностные значения формул (G), (GH), (G&H), (G®H), (G«H) получаются на основе таблицы истинности6. 2. ("х)G получает значение И, если G получает значение И для каждого х из D; в противном случае она получает значение Л. 3. ($х)G получает значение И, если G получает значение И хотя бы для одного х из D; в противном случае она получает значение Л. Формула G непротиворечива (выполнима) тогда и только тогда, когда существует такая интерпретация I, что G имеет значение И в I. Если формула G есть И в интерпретации I, то говорят, что I есть модель формулы G и I удовлетворяет G. Формула G противоречива (невыполнима) тогда и только тогда, когда не существует интерпретации, которая удовлетворяет G. Формула G общезначима тогда и только тогда, когда не существует никакой интерпретации, которая не удовлетворяет формуле G. Формула G есть логическое следствие формул F1,F2,..,Fn тогда и только тогда, когда для каждой интерпретации I, если F1&... &Fn истинна в I, то G также истинна в I. Очевидно, что логика первого порядка может рассматриваться как расширение логики высказываний. Если формула в логике первого порядка не содержит переменных и кванторов, ее можно рассматривать просто как формулу в логике высказываний. В логике первого порядка имеется нормальная форма называемая предваренной нормальной формой. Эта форма применяется в логике для упрощения процедуры доказательства. Говорят, что формула F находится в предваренной нормальной форме27, когда F имеет вид: Q1X1...QnXnM, "QiXi (i=1,n). Запись QiXi означает квантификатор "Хi или $Qi; М- не содержит кванторов; запись до М называется префикс, а М - матрицей формулы F. Для преобразования произвольной формулы в предваренную формулу используются следующие записи правила: G«H=(GH)&(HG); G®H=GH; (F)=F; ("xF(x))=$x(F(x)); ($xF(x))="x(F(x)); xF(x)&xH(x)=x(F(x)&H(x)); xF(x)xH(x)= x(F(x)H(x)).
Алгоритм преобразования в предваренную форму. 1). Исключить связи эквивалентности и импликации в соответствии с таблицей 15. 2). Использовать последовательно законы (F)=F, (FG)=F&G, (F&G)=FG, ("xF(x))=$x(F(x)), ($xF(x))="x(F(x)) чтобы пронести знак отрицания внутрь формулы. 3). Переименовать связанные переменные таким образом, чтобы ни какая переменная не имела бы одновременно свободных и связанных вхождений. 4). Удалить те квантификации, область действия которых не содержит вхождений квантификационных переменных. 5). Переместить все квантификации в начало формул, используя правила: Q(x)F(x)G=Q(x)(F(x)G); Q(x)F(x)&G=Q(x)(F(x)&G); "xF(x)&"xH(x)="x(F(x)&H(x)); xF(x)xH(x)=x(F(x)H(x)); Q1(x)F(x)Q2(x)G(x)=Q1(x)Q2(z)(F(x)G). Пример 6. Приведем формулу xP(x)xQ(x) к предваренной нормальной форме. xP(x)xQ(x)= (xP(x))xQ(x)= x(P(x))xQ(x)= x(P(x) Q(x)). Пусть формула F находится в предваренной нормальной форме, где матрица М есть коньюнктивная нормальная форма. Положим, что Qr есть квантор существования в префиксе. Если ни какой квантор всеобщности не стоит в префиксе левее Qr, то выберем новую константу С отличную от других констант входящих в М. Заменим все Хr встречающиеся в М на С и вычеркнем квантор QrXr из префикса. Если Qs1,..., Qsm список всех кванторов всеобщности встречающиеся левее Qr, то выберем новый m-местный функциональный символ f, отличный от других функциональных символов m, заменим Xr в М на f(x,....x) и выберем Qr и Xr из префикса, затем весь этот процесс применим для всех кванторов существования в префиксе. Последняя из полученных формул после преобразования называется скулемовской или стандартной нормальной формой. Константы и функции применяются для замены переменных квантора существования, называются скулемовскими функциями. Пример 7. Пусть требуется получить стандартную форму формулы xyzuvwP(x, y, z, u, v, w). В этой формуле левее x нет никаких кванторов всеобщности, левее u стоят y, z, а левее w стоят y, z, v. В этой связи, заменим переменную x на константу a, переменную u - на двухместную функцию f(y, z), переменную w - на трехместную функцию g(y, z, v). В результате замен получим следующую стандартную форму исходной формулы: yzvP(a, y, z, f(y, z), v, g(y, z, v)). Рассмотрим применение метода резолюций для логики предикатов первого порядка. Пусть S - множество дизъюнктов, которые представляют стандартную форму формулы F, тогда F противоречиво в том и только в том случае если S противоречиво. Как было показано в логике высказываний, существенным применением правил резолюции является нахождение в дизъюнкте литеры, которая контрарна в другом дизъюнкте. Для дизъюнктов содержащих одну переменную это просто. В том случае, когда дизъюнкты содержат переменные, процесс сопоставления литер усложняется. Подстановкой29 называется конечное множество вида {t1/J1,...,tn/Jn}, где каждое Ji , i=1, это переменная, а каждый ti - терм, причём все Ji различны. Подстановка, которая не имеет элементов, называется пустой и обозначается e. Пусть Q={t1/J1,...,tn/Jn} - подстановка, а Е - выражение, тогда запись ЕQ означает выражение, полученное из Е заменой одновременно всех вхождений переменной Ji на терм ti. Это выражение называется примером Е. Пример 8. Пусть Q={a/x, f(b)/y, c/z}, E=P(x, y, z). Тогда EQ=P(a, f(b), c) Пусть Q={t1/x1, …, tn/xn}, ={u1/y1, …, um/ym} - две подстановки. Тогда композиция Q и (обозначается Q) есть подстановка, которая получается из множества {t1/x1, …, tn/xn, u1/y1, …, um/ym} вычеркиванием всех элементов tj/xj, для которых tj=xj, и всех элементов ui/yi таких, что yi{x1, x2, …, xn}. Пример 9. Пусть Q={t1/x1, t2/x2}={f(y)/x, z/y}, ={u1/y1, u2/y2, u3/y3}={a/x, b/y, y/z}. Тогда {t1/x1, t2/x2, u1/y1, u2/y2, u3/y3}={f(b)/x, y/y, a/x, b/y, y/z }. Так как t2=x2, то t2/x2, т.е. y/y, должно быть вычеркнуто из множества. Кроме того, так как y1 и y2 содержатся среди элементов {x1, x2, x3}, то u1/y1 и u2/y2 (т.е. a/x, b/y) должны быть вычеркнуты. Таким образом Q={f(b)/x, y/z}. Подстановка Q называется унификатором для множества {E1,...,Ek} тогда и только тогда, когда выполняется условие E1Q=E2Q=...=EkQ. Говорят, что предыдущее множество унифицируемо, если для него существует унификатор. Унификатор s34 для множества {E1,...,Ek} будет наиболее общим унификатором тогда и только тогда когда для каждого унификатора s этого множества существует подстановка l так что Q=s ° l. Алгоритм унификации31 заключается в выполнении следующих шагов: 1). K=0, Wk=W, sk=e. 2). Если Wk - единственный дизъюнкт, то конец алгоритма и sk наиболее общий унификатор для W, а он равен пустому множеству, иначе отыщем множество Wk рассогласований для Dk. 3). Если существуют такие элементы Jk /tk в Dk , что Jk переменная не входящая в tk то перейти к 4-му шагу, в противном случае окончание алгоритма и W не унифицируемо. 4). sk+1=sk{ tk/Jk}; Wk+1=Wk{ tk/Jk } 5). Присвоить k+1 и перейти к шагу 2. Пример 10. Пусть требуется найти общий унификатор для множества W={P(a, x, f(g(y)))), P(z, f(z), f(u))}. Шаг 1. В соответствии с вышеизложенным будем иметь s0=e, W0=W. Так как W0 не является единичным дизъюнктом, то s0 не является наиболее общим унификатором для W. Шаг 2. Множество рассогласований D0={a, z}. В D0 существует переменная v0=z, которая не встречается в t0=a. Шаг 3. Пусть s1=s0{t0/v0}=e{a/z}={a/z}, W1=W0{t0/v0}={P(a, x, f(g(y))), P(z, f(z), f(u)))} {a/z}={P(a, x, f(g(y))), P(a, f(a), f(u))}. Шаг 4. W1 не является единичным дизъюнктом, так как имеется множество рассогласований D1 для W1: D1={x, f(a)}. Шаг 5. Из D1 следует v1=x, t1=f(a). Шаг 6. Пусть s2=s1{t1/v1}={a/z}{f(a)/x}={a/z, f(a)/x}, W2=W1{t1/v1}={P(a, x, f(g(y))), P(a, f(a), f(u))} {f(a)/x}={P(a, f(a), f(g(y))), P(a, f(a), f(u))}. Шаг 7. W2 не является единичным дизъюнктом, т.к. имеется множество рассогласований D2 для W2: D2={g(y), u}. Из D2 можно определить, что v2=u, t2=g(u). Шаг 8. Пусть s3=s2{t2/v2}={a/z, f(a)/x}{g(y)/u}={a/z, f(a)/x, g(y)/u}, W3=W2{t2/v2}={P(a, f(a), f(g(y))), P(a, f(a), f(u))} {g(y)/u}={P(a, f(a), f(g(y))), P(a, f(a), f(g(y)))}={P(a, f(a), f(g(y)))}. Шаг 9. Так как W3 является единичным дизъюнктом, то s3={a/z, f(a)/x, g(y)/u} есть наиболее общий унификатор для W. Метод резолюции33 для предикатов логики первого порядка определяется нижеследующими положениями. Если две или более литер дизъюнкта С имеют наиболее общий унификатор s, то запись Сs называется склейкой С. Пусть С1 и С2 два дизъюнкта, называющихся дизъюнктами посылками, не имеют ни каких общих переменных. Пусть L1 и L2 две литеры С1 и С2 соответственно. Если L1 и L2 имеют наиболее общий унификатор s,то дизъюнкты вида (С1s-L1s)È(С2s-L2s) называются бинарной резольвентой С1 и С2. При этом С1 и С2 называются отрезаемыми литерами. Пример 11. Пусть С1=Р(х) È Q(x) С2=ù Р(a) È R(x). Вследствие того, что в Х входят С1 и С2 , то заменим переменную С1 и С2, т.к. С2= ù Р(a) È R(x) Û ù Р(a) È R(y). Тогда L1=P(x), L2=ù P(a). Так как ù L2= P(a) Þ L1 и ù L2 имеют общий унификатор s ={a/x} то можно записать резольвенту: ({P(a),j(a)} - {P(a)}) È ({ù Р(a),R(y)} - {ù Р(a)})={Q(a)} È {R(y)} = = {Q(a)} È {R(y)} = {Q(a)},{R(y)} = Q(a)} È {R(y) Рассмотрим возможные варианты формирования резольвенты: Резольвентой посылок С1 и С2 является одна из следующих резольвент: 1). Бинарная резольвента С1 и С2. 2). Бинарная резольвента С1 и склейки С2. 3). Бинарная резольвента С2 и склейки С1. 4). Бинарная резольвента склейки С1 и склейки С2. | |||||
|