- •Исчисления высказываний
- •Определение формального исчисления
- •Исчисление высказываний генценовского типа
- •Эквивалентность формул
- •Нормальные формы
- •Семантика исчисления секвенций
- •Исчисление высказываний гильбертовского типа
- •Алгоритмы проверки общезначимости и противоречивости в ив
- •Логика и исчисления предикатов
- •Алгебраические системы. Формулы сигнатуры σ. Истинность формулы на алгебраической системе
- •Секвенциальное исчисление предикатов
- •Эквивалентность формул в
- •Нормальные формы
- •Теорема о существовании модели
- •Исчисление предикатов гильбертовского типа
- •Скулемизация алгебраических систем
- •Метод резолюций в исчислении предикатов
- •Некоторые проблемы аксиоматического исчисления предикатов
- •Разрешимость
- •Непротиворечивость и независимость
- •Полнота в узком смысле
- •Полнота в широком смысле
- •Элементы теории алгоритмов
- •Машины Тьюринга
- •Функции, вычислимые на машинах Тьюринга.
- •Рекурсивные функции и отношения
- •Примитивно рекурсивные функции.
- •Примитивно рекурсивные отношения.
- •Частично рекурсивные функции.
- •Рекурсивно перечислимые отношения
- •Неразрешимость исчисления предикатов. Теорема Геделя о неполноте. Разрешимые и неразрешимые теории.
Метод резолюций в исчислении предикатов
Зафиксируем некоторую сигнатуру Σ.
Подстановкой сигнатуры Σ называется конечное множество вида {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, F2(с2)/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,, tk Dk такие, что 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))}.
Положим k = 0, W0 = W, σ0 = ε.
Так как W — неодноэлементное множество, то σ0 не является НОУ для W. Множество рассогласований для W0 есть D0 = {c,z}.
В D0 существует переменная x0 =z, которая не встречается в терме t0 =c. Поэтому переходим к шагу 4.
Полагаем σ1 = σ0 {с/z} = ε {с/z} = {с/z}, W1=W0(c/z) = { Р(с,х,F2(F1(y))),P(c,F2(c),F2(u))}.
Присваиваем k = 1.
Так как W1— неодноэлементное множество, множество рассогласований для W1 есть D1 = {x,F2(c)}.
Из D1 находим, что х1 = х, t1 = F2(c).
Полагаем σ2 = σ1 {F2(c)/x}, W2 = W1{F2(c)/x} ={Р(с, F2(c), F2(F1(y))), P(c, F2(c), F2(u))}.
Присваиваем k = 2.
Так как W2 — неодноэлементное множество, множество рассогласований для W2 есть D2 = {F1(y),u}.
Из D2 найдем, что х2 = и, t2 = F1(y).
Полагаем σ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)))}.
Множество 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(Φ1,Φ2)) является одна из следующих бинарных резольвент:
бинарная резольвента Φ1 и Ф2;
бинарная резольвента склейки Φ1 и Ф2;
бинарная резольвента Φ1 и склейки Ф2;
бинарная резольвента склейки Φ1 и склейки Ф2.
Пример 8. Найти res(Ф1,Ф2), где ;
Склейка , тогда
Пусть 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(Ф2,Ф5) = геs(Ф2,Ф5{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(Ф6,Ф8) =Ρ3(c1,F(c3));
Ф10 = геs(Ф4,Ф9) = Ρ1(c1,y, F(c3))
Φ11 =res(Φ1,Φ10) =0.
Пример 10. Показать выполнимо ли множество формул {Ф1,Ф2}?
;
Приведем формулы к ПКНФ:
. .
Приведем к КлНФ: Введением скулемовской константы с и функции F, получаем, что выполнимость формул Ф1,Ф2 сигнатуры равносильна выполнимости формул { , } сигнатуры или { }.
{ }.
, тогда множество формул – невыполнимо.
Следующий пример показывает, как формализуются предложения и методом резолюций эффективно доказываются теоремы при переходе к соответствующим формализациям.
Пример 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.
Т.о. теорема доказана.