Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
080752_1BC71_osnovy_matematicheskoy_logiki_i_te....doc
Скачиваний:
48
Добавлен:
23.04.2019
Размер:
2.05 Mб
Скачать
    1. Метод резолюций в исчислении предикатов

Зафиксируем некоторую сигнатуру Σ.

Подстановкой сигнатуры Σ называется конечное множество вида {t1/x1,...,tn/xn}, где tiтерм сигнатуры Σ, отличный от переменных xi (i=1..n), и все переменные х1,...,хп различны. Подстановка, которая не содержит элементов, называется пустой и обозначается через ε.

Мы будем использовать греческие буквы для записи подстановок.

Пример1. Множества {F1(z)/x, y/z}, {c1/x, F2(y)/y, F1(F2(c2))/z} — подстановки сигнатуры Σ = {F1(1), F2(1), c1(0), c2(0)}.

Пусть θ = { t1/x1,...,tn/xn } — подстановка сигнатуры Σ, W — множество формул (термов) сигнатуры Σ. Тогда W θ - множество формул (термов) сигнатуры Σ, полученных из формул (термов) множества W заменой в них одновременно всех вхождений xi (i=1..n) на термы ti (i=1..n). При этом предполагается, что выполняются все условия на записи формул , W.

Если W = {Ф} или W = {t}, где Φ — формула, tтерм сигнатуры Σ, то вместо {Ф} и {t} будем писать Φ и t соответственно.

Пример 2. Пусть θ = { c1/x, F22)/y,y/z} — подстановка сигнатуры Σ = { c1(0), c2(0), . F(1), F1(3), }, t = F1{x,y,z), Φ = (F(x) F1(x,c1,z)). Тогда tθ=F1(cl,F(c2),y), Φ = (F(c1) F1(c1,c1, y)).

Пусть θ = { t1/x1,...,tn/xn } и λ = { q1/y1,...,qm/ym } подстановки сигнатуры Σ. Тогда композиция подстановок θ и (θ  ) есть подстановка, которая получается из множества { t1/x1,...,tn/xn, q1/y1,...,qm/ym } вычеркиванием всех элементов tj/xj, для которых tj = xj, и всех элементов qi/yi, таких, что yi{x1,..., хп}.

Пример3. Пусть θ = { t1/x1, t2/x2} = {F(y)/x, z/y}, λ = {q1/y1, q2/y2, q3/y3} = {c1/x,c2/y,y/z} — подстановки сигнатуры Σ = { c1(0), c2(0), . F(1)}. Тогда t1/x1, t2/x2, q1/y1, q2/y2, q3/y3} = {F(c2)/x,y/y,c1/x,c2/y,y/z}. Так как t2λ = у, то у/у должно быть вычеркнуто. Так как х, у {х, у}, то c1/x,c2/y также должны быть вычеркнуты. Таким образом, θ о = {F(c2)/x, y/z}.

Подстановка θ сигнатуры Σ называется унификатором для множества {Φ1,..., Φk} формул сигнатуры Σ, если Φ1 = ... = Φk. Множество формул {Φ1,..., Φk } сигнатуры Σ называется унифицируемым, если для него существует унификатор сигнатуры Σ.

Пример 4. Множество {P(c1,y),P(x,F(c2))} формул сигнатуры Σ = { c1(0), c2(0), P(2,). F(1)} унифицируемо, так как подстановка θ = {c1/x,F(c2)/y} является его унификатором.

Унификатор σ для множества { Φ1,..., Φk } формул сигнатуры Σ называется наиболее общим унификатором (НОУ), если для каждого унификатора θ сигнатуры Σ этого множества существует подстановка  сигнатуры Σ такая, что θ = σ ο λ.

Пусть W = 1,..., Φk} — непустое множество атомарных формул сигнатуры Σ. Множеством рассогласований в W называется множество термов {t1,...,tk }, где ti входит в Фi· и начинается с символа (который есть либо сигнатурный символ, либо переменная), стоящего на первой слева позиции в Фi·, на которой не для всех формул Φ1,..., Φk находится один и тот же символ.

Пример 5. Пусть W = {P(x,F(y,z)),P(x,c), P(x, F(y,F1(z))) — множество формул сигнатуры Σ = (2), F(2), F1 (1)}. Во всех трех формулах первые четыре символа Р(х, совпадают, а на пятом месте в первой и второй формулах стоят разные символы: F, с. Таким образом, множество рассогласований в W – { F(y,z),c, F(y,F1(z))}.

Алгоритм унификации предназначен для распознавания того, является ли данное конечное непустое множество атомарных формул унифицируемым, и нахождения НОУ для этого множества в случае его унифицируемости.

Пусть W — конечное непустое множество атомарных формул. Алгоритм унификации для множества W:

Шаг 1. Полагаем k = 0, Wk = W,k = ε.

Шаг 2. Если Wk — одноэлементное множество, то остановка: k - НОУ для W. В противном случае найдем множество Dk рассогласований для Wk.

Шаг 3. Если существуют xk,, tkDk такие, что xkпеременная, не входящая в терм tk, то перейти к шагу 4. В противном случае остановка: множество W не унифицируемо.

Шаг 4. Полагаем k+1=k  { tk / xk } и Wk+1 = Wk{ tk /xk) (заметим, что Wk+1 = Wk+1

Шаг 5. Присвоить k значение k+1 и перейти к шагу 2.

Теорема 1. Если W конечное непустое унифицируемое множество атомарных формул, то алгоритм унификации будет всегда заканчивать работу на шаге 2 и последняя подстановка σk будет НОУ для W.

Пример 6. Найти НОУ для множества W={Р(с,х,F2(F1(y))),P(z,F2(z),F2(u))}.

  1. Положим k = 0, W0 = W, σ0 = ε.

  2. Так как Wнеодноэлементное множество, то σ0 не является НОУ для W. Множество рассогласований для W0 есть D0 = {c,z}.

  3. В D0 существует переменная x0 =z, которая не встречается в терме t0 =c. Поэтому переходим к шагу 4.

  4. Полагаем σ1 = σ0{с/z} = ε{с/z} = {с/z}, W1=W0(c/z) = { Р(с,х,F2(F1(y))),P(c,F2(c),F2(u))}.

  5. Присваиваем k = 1.

  6. Так как W1— неодноэлементное множество, множество рассогласований для W1 есть D1 = {x,F2(c)}.

  7. Из D1 находим, что х1 = х, t1 = F2(c).

  8. Полагаем σ2 = σ1 {F2(c)/x}, W2 = W1{F2(c)/x} ={Р(с, F2(c), F2(F1(y))), P(c, F2(c), F2(u))}.

  9. Присваиваем k = 2.

  1. Так как W2неодноэлементное множество, множество рассогласований для W2 есть D2 = {F1(y),u}.

  1. Из D2 найдем, что х2 = и, t2 = F1(y).

  1. Полагаем σ3 = σ2{F1(y)/u} = {c/z,F2(c)/x,F1(y)/u}, W3 = W2{F1(y)/u}={P(c, F2(c), F2(F!(y))), P(c, F2(c),F2(F1(y)))} = {P(c,F2(c),F2(F1(y)))}.

  2. Множество W3 одноэлементно. Поэтому σ3 = {c/z,F2(c)/x, F1(y)/u} - НОУ для W.

Литерой сигнатуры Σ называется атомарная формула или отрицание атомарной формулы сигнатуры Σ. Дизъюнктом сигнатуры Σ называется литера сигнатуры Σ или дизъюнкция литер сигнатуры Σ.

Пусть Φ — дизъюнкт сигнатуры Σ вида 1·…n или 1·…n, где i — атомарные формулы сигнатуры Σ (1 <= i <= n). Предположим, что множество формул {1, …,п} имеет НОУ σ. Тогда 1σχσ или соответственно 1σχσ называется склейкой Ф. Полученную формулу в дальнейшем будем обозначать через Φσ.

Пример 7. В формуле Φ = Ρ (x) P(F(y)) Р2(x) подформулы Ρ(x) и P(F(y)) имеют НОУ σ = {F(y)/x}. Следовательно, Φσ = P(F(y))P2(F(y)) — склейка Ф.

Пусть Φ1, Ф2 — два дизъюнкта, не имеющих общих переменных, L1, L2 — литеры в Φ1 и Ф2 соответственно. Если литеры L1 и L2 L2 имеют НОУ σ, то дизъюнкт, получаемый из дизъюнкта Φ1σΦ2σ вычеркиванием L1σ и L2σ, называется бинарной резольвентой Φ1 и Ф2, а литеры L1 и L2 называются отрезаемыми литерами. Если Φ1σ = L1 и Φ2σ = L2, то полагаем бинарную резольвенту Φ1 и Ф2 равной 0.

Если Φ1 и Ф2 имеют общие переменные, то, заменив в формуле Ф2 эти общие переменные на переменные, не встречающиеся в Φ1 и Ф2, получим формулу Ф2, которая не имеет общих переменных с формулой Φ1. Бинарной резольвентой формул Φ1 и Ф2 называется бинарная резольвента формул Ф1 и Ф'2.

Резольвентой дизъюнктов Φ1 и Ф2 (res(Φ12)) является одна из следующих бинарных резольвент:

  • бинарная резольвента Φ1 и Ф2;

  • бинарная резольвента склейки Φ1 и Ф2;

  • бинарная резольвента Φ1 и склейки Ф2;

  • бинарная резольвента склейки Φ1 и склейки Ф2.

Пример 8. Найти res(Ф12), где ;

Склейка , тогда

Пусть S — множество дизъюнктов сигнатуры Σ. Резолютивный вывод формулы Φ из S есть такая конечная последовательность Φ1, ..., Фk дизъюнктов, что Φk: = Φ и каждый дизъюнкт Φi или принадлежит S, или является резольвентой дизъюнктов, предшествующих Фi.

Универсальным замыканием формулы Φ(x1,... ,хп) называется предложение  x1,... ,хп Φ(x1,... ,хп).

Теорема 2. (теорема о полноте метода резолюций). Если S множество дизъюнктов сигнатуры Σ, то множество универсальных замыканий формул из S невыполнимо тогда и только тогда, когда существует резолютивный вывод нуля из S.

Пример 9. Доказать невыполнимость множества формул W = {Φ1,...,Φ6}, где

Φ1=P1(c1,F(c2),F(c3)),

Φ2= P2(c1),

Φ3 = Ρ1(x,x,F(x)),

Φ4 = Ρ1(x,y,z) Ρ3(x,z),

Φ5= Ρ2(x) Ρ1(y,z,u) Ρ3(x,u)  Ρ3(x,y)  Ρ3(x,z),

Φ6=Ρ3(c1, c3).

Построим резолютивный вывод 0 из W:

Ф7 = геs(Ф25) = геs(Ф25{z/y}) = Ρ1(z,z,u) Ρ3(c1,u)  Ρ3(c1,z);

Ф8 = res(Φ3, Ф7) = Ρ3(c1,F(x))  Ρ3(c1,x);

Ф9 =res(Ф68) =Ρ3(c1,F(c3));

Ф10 = геs(Ф49) = Ρ1(c1,y, F(c3))

Φ11 =res(Φ110) =0.

Пример 10. Показать выполнимо ли множество формул {Ф12}?

;

Приведем формулы к ПКНФ:

. .

Приведем к КлНФ: Введением скулемовской константы с и функции F, получаем, что выполнимость формул Ф12 сигнатуры равносильна выполнимости формул { , } сигнатуры или { }.

{ }.

, тогда множество формул – невыполнимо.

Следующий пример показывает, как формализуются предложения и методом резолюций эффективно доказываются теоремы при переходе к соответствующим формализациям.

Пример 11. Установить, что из посылки "Студенты суть граждане" следует заключение "Голоса студентов суть голоса граждан".

Пусть формулы S(x),C(x) и V(x,y) означают "х — студент", "х — гражданин" и "х есть голос у" соответственно. Тогда посылка и заключение запишутся следующим образом:

y(S(y)C(y)) (посылка),

x(y(S(y)V(x, у)) z(C(z) V(x, z))) (заключение).

Формула, соответствующая посылке, эквивалентна дизъюнкту - S(y)C(y). Так как

x(y(S(y)V(x, у)) z(C(z) V(x, z))) x(y(S(y)V(x, у)) z(C(z) V(x, z))) xyz(S(y)V(x, у) (C(z) V(x, z))) xyz(S(y) V(x, у)  (C(z)  V(х, z))), имеем три дизъюнкта, определяющие отрицание заключения (а,в – скулемовские константы):

S(b), V(a,b),C(z)V(a,z).

Доказательство заканчивается следующим образом:

res(S(y)C(y), S(b))=C(b),

res(C(b), C(z)V(a,z))=V(a,b),

res(V(a,b),V(a,b))=0.

Т.о. теорема доказана.