Семантическая резолюция
Обратимся теперь к стратегии семантической резолюции, предложенной Слэйглом. Стратегия на основе семантической резолюции также использует упорядочение литер, как и OL -резолюция. Кроме того, эта стратегия основывается на разделении всего множества исходных и порождаемых дизъюнктов на два непересекающихся класса, назовем их Т и F. Такое разбиение возможно, если задать некоторую интерпретацию I для формул исходного множества. В интерпретации I часть дизъюнктов окажется истинной, а часть ложной. Множество истинных дизъюнктов в интерпретации I - это по определению множество Т; множество ложных дизъюнктов в интерпретации I - это по определению есть множество F.
При построении вывода требуется выполнение двух условий:
1) резольвента строится для дизъюнктов С1 и С2 таких, что С1 Î T, а C2 Î F
2) отсекаемая литера в дизъюнкте С2 должна быть самой правой литерой.
Пусть E1, E2, ..., Eq некоторое множество дизъюнктов, принадлежащих F, а N - дизъюнкт из Т.
Тогда множество {E1, E2, ..., Eq, N} называется клашем, если выполняется следующее условие:
(i) R1 = N;
(ii) i < 1, Ri+1 есть резольвента Ri-1 и Ei-1; отсекаемая литера - старшая в Ei (самая правая);
(iii) Rq+1 Î F.
Rq+1 называется резольвентой данного клаша.
Пример. Пусть
C1 = R Ú Ú ,
C2 = P Ú R,
C3 = Q Ú R,
C4 = ,
P > Q > R >
Пусть в интерпретации I R - ложен, Р - ложен, Q - ложен. Тогда клашами являются множества
K1 = {С3, C4},
K2 = {C2, C4}.
Вывод на основе семантической резолюции строится так, что каждый дизъюнкт либо принадлежит исходному множеству дизъюнктов, либо является резольвентой некоторого клаша.
Так резольвентой С5 клаша К1 является Q; резольвентой С6 клаша К2 является Р.
Резольвентой С5 и С1 является дизъюнкт C7 = R Ú .
Резольвентой С7 и С6 является дизъюнкт С8 = R.
Резольвентой дизъюнктов С8 и С4 является .
Резолюция в PL
Применению OL-вывода в PL предшествует подготовительный этап, предложенный Девисом и Патнемом. Он включает в себя 3 стадии:
1) преобразование формулы в ПНФ;
2) преобразование матрицы в КНФ;
3) преобразование формулы в ССФ.
С реализацией второй стадии вы хорошо знакомы, поэтому рассмотрим 1-ю и 3-ю стадии.
В L имеются две нормальные формы: ДНФ и КНФ, в PL роль нормальной формы играет ПНФ – предваренная нормальная форма.
Определение: Говорят, что формула F в PL находится в ПНФ тогда и только тогда, когда формула F имеет вид: (Q1x1)…(Qnxn)(M), где (Qixi) (i=1,…,n) есть либо ("xi), либо ($xi) и М есть формула, не содержащая кванторов.
(Q1x1)…(Qnxn) называется префиксом формулы F, М – матрицей формулы F.
Для преобразования формулы F в ПНФ используются законы эквивалентных преобразований, называемых законами принесения кванторов через Ù и Ú:
(1а) (Qx)F(x)ÚG=(Qx)(F(x)ÚG)
(1б) (Qx)F(x)ÙG=(Qx)(F(x)ÙG)
(2а) Ø(("x)F(x))=($x)(ØF(x))
(2б) Ø(($x)F(x))=("x)(ØF(x))
(3а) ("x)F(x)Ù("x)M(x)=(" x)( F(x)ÙM(x))
(3б) ($x)F(x)Ù($x)M(x)=($ x)( F(x)ÙM(x))
Однако " и $ нельзя проносить через Ú и Ù соответственно. В подобных случаях нужно поступать специальным образом. Т.к. каждая связанная переменная в формуле может рассматриваться лишь как место для подстановки какой угодно переменной, то каждую связанную переменную х можно переименовать в z и формула ("x)M(x) перейдет в ("z)M(z), т.е. ("x)M(x)= ("z)M(z). Предположим, что мы выбираем переменную z, которая не встречается в F(x). Тогда ("x)F(x)Ú ("x)M(x)= ("x)F(x)Ú ("z)M(z) путем замены всех х, входящих в ("x)M(x) на z, тогда согласно (1а):
(4а) ("x)F(x)Ú ("x)M(x)= ("x)("z)(F(x)Ú M(z))
(4б) ($x)F(x)Ú ($x)M(x)= ($x)($z)(F(x)Ú M(z)).
Преобразование формул в ПНФ:
1) используем законы, чтобы исключить логические связки ~ и É
(5) F~G=(FÉG)Ù(GÉF)
(6) FÉG=ØFÚG
2) используем законы, чтобы пронести знак отрицания внутрь формулы
(7) Ø(ØF)=F
(8) Ø(FÚG)=ØFÙØG
(9) Ø(FÙG)=ØFÚØG
(10) Ø(("x)F(x))=($x)(ØF(x))
(11) Ø(($x)F(x))=("x)(ØF(x))
3) переименовываем связанные переменные, если это необходимо
4) используем законы (1а–4б), чтобы вынести кванторы в самое начало формулы для получения формулы, находящейся в ПНФ.
Пример 1: приведем формулу ("x)P(x)É($x)Q(x).
("x)P(x)É($x)Q(x)=
=Ø(("x)P(x))Ú($x)Q(x)= по (6)
=($x)(ØP(x))Ú($x)Q(x)= по (2а)
=($x)(ØP(x)ÚQ(x)) по (3б)
где ($x) – префикс, а (ØP(x)ÚQ(x)) – матрица.
Пример 2: получить ПНФ для формулы:
("x)("y)(($z)P(x,z)ÙP(y,z))É ($u)Q(x,y,u))=
= ("x)("y)(Ø(($z)P(x,z)ÙP(y,z)))Ú ($u)Q(x,y,u))= по (6)
= ("x)("y)("z)(ØP(x,z)ÙØP(y,z))Ú ($u)Q(x,y,u))= по (2б) и (9)
= ("x)("y)("z)($u)(ØP(x,z)ÙØP(y,z))Ú Q(x,y,u)) по (1а)
где ("x)("y)("z)($u) – префикс, а (ØP(x,z)ÙØP(y,z))Ú Q(x,y,u)) – матрица.
Рассмотрим вопрос преобразования формулы F в скулемовскую стандартную форму (ССФ).
Для этого мы должны, сохраняя противоречивость формулы, элиминировать в ней кванторы существования путем использования скулемовских функций.
Условимся, что формула F находится в ПНФ:
(Q1x1)…(Qnxn)M, где М в свою очередь находится в КНФ, тогда:
1) выберем самый левый квантор существования Qr в префиксе (Q1x1)…(Qnxn) (1£r£n);
2) если никакой " не стоит в префиксе левее Qr, то выберем новую константу С, отличную от других констант, входящих в М, заменим все хr, встречающиеся в М, на С и вычеркнем (Qrxr) из префикса;
3) Если Qs1,…,Qsm – список всех ", стоящих левее Qr, (1£S1<S2<…<Sm<r), то выберем новый m-местный функциональный символ f, отличный от других функциональных символов, заменим все xr в M на f(xs1,…,xsm) и вычеркнем (Qr,xr) из префикса;
4) Весь этот процесс применим для всех $ в префиксе, двигаясь слева направо (следует отметить, что порядок выбора $ из префикса несущественен).
Последняя из полученных формул и есть ССФ формулы F (или просто стандартная форма формулы F). Константы и функции, используемые для замены переменных $, называются скулемовскими функциями.
Пример 1: получить стандартную форму формулы ($x)("y)("z)($u)("v)($w) P(x,y,z,u,v,w).
В этой формуле левее ($x) нет ни одного ", значит заменяем х на а.
($u) находится ("y)("z), значит заменяем u на f(y,z)
($w) находится ("y)("z)("v), значит заменяем w на g(y,z,v).
Тогда ("y)("z)("v)P(a,y,z,f(y,z),v,g(y,z,v)) – стандартная форма.
При использовании процедур опровержения не происходит потери общности, поэтому при доказательстве кванторы общности можно опустить.
Рассмотрим теперь непосредственнометод резолюций,применяемый в PL при построении OL-вывода.
Как и в L здесь существенным является нахождение в дизъюнкте литеры, которая контрарна литере в другом дизъюнкте. Рассмотрим дизъюнкты: С1: P(x)ÚQ(x) и C2: ØP(f(x))ÚR(x).
С первого взгляда в С1 нет литеры, контрарной какой-либо литере в С2, однако если подставить f(0) вместо x в С1 и a вместо x в C2, то получим: С1’: P(f(a))ÚQ(f(a)) и C2’: ØP(f(a))ÚR(a).
C1’ и C2’ называются основными примерами С1 и С2 соответственно, а P(f(a)) и ØP(f(a)) контрарны друг другу. Следовательно, из C1’ и C2’ можно получить резольвенту:
C3’: Q(f(a))ÚR(a).
В общем случае, подставив f(x) вместо x в C1, получим: C1*: P(f(x))ÚQ(f(x)). Снова С1* есть пример С1. Литера P(f(x)) из С1* контрарна литере ØP(f(x)), тогда резольвента С1* и С2:
С3: Q(f(x))ÚR(x).
При этом С3’ является примером С3. Кроме того, дизъюнкт С3 является наибольшим общим дизъюнктом в том смысле, что все другие дизъюнкты, порожденные подобным образом, есть приме
С3 будем называть резольвентой С1 и С2. Таким образом, получение резольвенты из двух дизъюнктов в PL связано с подстановкой.
Определение: Подстановка – это конечное множество вида {t1/v1,…,tn/vn}, где каждая vi – переменная, а ti – терм, отличный от vi, при этом все vi различны. Если t1,…,tn – основные термы, то подстановка называется основной. Подстановка, которая не содержит элементов, называется пустой и обозначается e. Будем использовать греческие буквы для обозначения подстановки.
Определение: Пусть q ={t1/v1,…,tn/vn} – подстановка и Е – выражение. Тогда Еq – выражение, полученное из Е заменой одновременно всех вхождений переменной vi (1£i£n) в Е на ti. Еq называют примером Е.
Определение: Пусть q ={t1/x1,…,tn/xn} и l={u1/y1,…,um/ym} – две подстановки. Тогда композиция q·l есть подстановка, которая получается из множества {t1/x1,…,tn/xn,u1/y1,…,um/ym} вычеркиванием всех элементов tjl/xj, для которых tjl = xj, и всех элементов ui/yi, таких что yiÎ{x1,…,xn}.
Пример: q ={t1/x1, t2/x2}={f(y)/x, z/y}
l ={u1/y1, u2/y2, u3/y3}={a/x, b/y, y/z}, тогда
q·l={t1/x1, t2/x2, u1/y1, u2/y2, u3/y3}={ f(y)/x, z/y, a/x, b/y, y/z}
Так как t2l=x2, а именно z/y, то этот элемент вычеркивается из множества y1 и y2Î {x1, x2, x3}, т.е. a/x и b/y должны быть тоже вычеркнуты. Таким образом, получаем:q·l={f(b)/x, y/z}.
Композиция подстановок ассоциативна, а пустая подстановка e есть одновременно и левое и правое тождество, т.е. (q·l)·m=q·(l·m) и e·q=q·e для всех m,q, l.
В процедуре доказательства по методу резолюций зачистую приходится отождествлять контрарные пары литер. Для этого необходимо унифицировать (склеивать) два и более выражение, т.е. мы должны найти подстановку, которая может сделать несколько выражений тождественными.
Рассмотрим унификацию выражений.
Определение: Подстановка q называется унификатором для множества {E1,…,Ek} Û E1q =E2q =…=Ekq.
Говорят, что множество {E1,…,Ek} унифицируемо, если для него существует унификатор.
Определение: Унификатор s для множества выражений {E1,…,En} будет наиболее общим унификатором (НОУ) Û для каждого унификатора q для этого множества существует такая подстановка l, что q = s·l.
Определение: Множество рассогласований D непустого множества выражений W получается выявлением первой (слева) позиции аргумента, на которой не для всех выражений из W стоит один и тот же символ.
Алгоритм унификации
1. Множество k = 0, Wk = W, sk =e.
2. Если Wk – единичный дизъюнкт, то остановка, sk – НОУ для W, иначе найдем множество рассогласований Dk для Wk.
3. Если существуют такие элементы vk и tk в Dk, что vk – переменная, не входящая в tk,то перейдем к шагу 4. В противном случае остановка: W не унифицировано.
4. Пусть sk+1=sk·{tk/vk} и Wk+1=Wk·{tk/vk}
5. Присвоить значение k+1 и перейти к шагу 2.
Пример: Найти НОУ для W={P(a,x,f(g(y))),P(z,f(z),f(u))}.
1. v0=e и w0=w
2. D0={a,z}. Переменной в этом множестве является z, значит v0=z, а t0=a
3. v1=v0·{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={x,f(a)}
5. Из D1 следует v1=x, t1=f(a)
v2=v1·{t1/v1} = {a/z}·{f(u)/x}={a/z,f(u)/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))}
6. Для w2: D2={g(y),u}, v2=u, t2=g(y)
7. v3=v2·{t2/v2} = {a/z, f(u)/x}·{g(y)/u}={a/z, f(u)/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)))}
8. s3= {a/z, f(a)/x, g(y)/u} – НОУ для W.
Пример:
S={M(a, S(c), S(b)), P(a), M(x, x, S(x)), ØM(x, y, z) Ú M(y, z, x), ØM(x, y, z) Ú D(x, z), ØD(a, b), ØP(w) Ú ØM(y,z,z) Ú ØD(w,z) Ú D(w,x) Ú D(w,y)}
Введем дополнительные определения.
1. Дизъюнкт есть дизъюнкция литер. Иногда когда это удобно, мы будем рассматривать множество литер как синоним дизъюнкта. Например, P Ú Q Ú R = {P, Q, R}.
2. Дизъюнкт, содержащий r литер, называется r- литерным дизъюнктом;
3. Однолитерный дизъюнкт называется единичным дизъюнктом;
4. Когда дизъюнкт не содержит никаких литер, мы называем его пустым дизъюнктом.
Дизъюнкты ØP(x, f(x)) Ú R(x,f(x),g(x)) и Q(x,g(x)) Ú R(x, f(x), g(x)) суть дизъюнкты. Считаем, что множество дизъюнктов S есть конъюнкция всех дизъюнктов из S, где каждая переменная в S считается управляемой квантором всеобщности. Благодаря этому соглашению стандартная форма может быть просто представлена множеством дизъюнктов. Например, стандартная форма в примере 2 может быть представлена множеством
S = {ØP(x, f(x)) Ú R(x, f(x), g(x)), Q(x, g(x)) Ú R(x, f(x), g(x))}.
Мы можем элиминировать кванторы существования, сохраняя противоречивость формулы. Формула F противоречива (не выполнена) Û не существует интерпретация, которая удовлетворяет F. Покажем это в следующей теореме.
Теорема 1. Пусть S – множество дизъюнктов, которые представляют стандартную форму формулы F. Тогда F противоречива в том и только в том случае, когда S противоречива.
Доказательство. Без потери общности можно положить, что F находится в предваренной нормальной форме, т.е. F = (Q1x1) … … (Qnxn) M [x1, …, xn]. (Мы используем M [x1, …, …, xn], чтобы указать, что матрица М содержит переменные x1, …, xn). Пусть Qr – первый квантор существования. Пусть F1 = ("x1) … ("xr-1) (Qr+1xr+1) … (Qnxn) M [x1, …, xr-1, f(x1, …, xr-1), xr+1, …, xn], где f – скулемовская функция, соответствующая xr, 1£ r £ n. Мы хотим показать, что F противоречива тогда и только тогда, когда F1 противоречива.
1. Предположим, что F противоречива, а F1 непротиворечива, если F1 непротиворечива, то существует такая интерпретация I, что F1 истинна в I. Это означает, что для всех x1, …, xr-1 существует по крайней мере один элемент , для которого формула (Qr+1xr+1) … (Qnxn) M[x1, …, …, xr-1 , f(x1, …, xr-1), xr+1 , …, xn] истинна в I. И этим элементом является f (x1, …, xr-1). Таким образом, F истинна в I, что противоречит предположению, что F ппротиворечива. Следовательно, F1 должна быть противоречива.
2. Предположим, что F1 противоречива, а F непротиворечива. Если F непротиворечива, то существует такая интерпретация I на области D, что F истинна в I, т.е. для всех x1, …, xr-1 существует такой элемент хr, что (Qr+1xr+1) … (Qnxn) M[x1, …, …, xr-1, xr, xr+1, …, xn] истинна в I.
Расширим интерпретацию I, включая функцию f, которая отображает (x1 , …, …, xr-1) на xr для всех x1, …, …, xr-1 в D, т.е. f (x1 , …, …, xr-1) = xr. Пусть это расширение I обозначается I'. Ясно, что для всех x1 , …, …, xr-1 (Qr+1xr+1) … (Qnxn) M[x1, …, …, xr-1 , f( x1 , …, …, xr-1) xr+1, …, xn] истинна в I', т.е. F1 истинна в I', что противоречит предположению, что F1 противоречива. Следовательно, F должна быть противоречивой. Мы разобрали случай, когда формула имеет один $. Предположим теперь, что в F имеется m кванторов существования. Пусть F0 = F. Пусть Fk получается из Fk -1 заменой первого квантора существования в Fk--1 скулемовской функцией, k = 1, …, m. Следовательно, мы заключаем, что F противоречива тогда и только тогда, когда S противоречива, что и требовалось доказать.
Пусть S- стандартная форма формулы F. Если F противоречива, то по теореме 1 F = S. Если F непротиворечива, заметим, что, вообще говоря, F не эквивалентна S. Например, пусть F = ($x) P(x) и S = P(a). Ясно, что S есть следующая интерпретация:
Область: D = {1, 2}.
Значения для а:
___а___
1
Значения для Р:
_________Р______
P(1) P(2)
Л И
Тогда ясно, что F истинна в I, но S ложна в I. Таким образом, F ¹ S.
Отметим, что формула может быть иметь более чем одну стандартную форму. Ради простоты, когда мы преобразуем формулу F в стандартную форму S, мы будем заменять кванторы существования скулемовскими функциями настолько простыми, насколько возможно. Дальше, если мы имеем F = F1 Ù … Ù Fn, мы можем отдельно получить множество дизъюнктов Si, i = 1, …, n. Затем пусть S =S1U …U Sn. С помощью рассуждений, подобных тем, которые даны в доказательстве теоремы 1, нетрудно увидеть, что F противоречива тогда и только тогда, когда S противоречива.
Пример 3. В этом примере покажем, как выразить следующую теорему в стандартной форме.
Если х*х = е для всех х в группе G, где * есть бинарный оператор и е есть единица группы G, то G коммутативна.
Сначала формализуем эту теорему вместе с некоторыми основными аксиомами теории групп и затем представим отрицание этой теоремы множеством дизъюнктов.
Известно, что группаG удовлетворяет следующим четырем аксиомам:
A1: x, y Î G влечет x*y ÎG (свойство замкнутости);
A2: x, y, z Î G влечет x*(y*z) = (x*y)*z (свойство ассоциативности);
A3: x*e = e*x=x для всех x Î G (свойство существования единичного элемента);
A4: для каждого элемента xÎG существует элемент x-1ÎG такой, что x*x-1 = x-1*x = e (свойство существования обратного элемента).
Пусть P(x, y, z) обозначает x*y = z и i(x) обозначает x-1. Тогда вышестоящие аксиомы примут вид:
A'1: ("x) ("y) ($z) P(x, y, z);
A'2: ("x) ("y) ("z) ("u) ("v) ("w) (P (x, y, u) Ù P(y, z, v) Ù P(u, z, w) ®P(x, v, w)) Ù("x) ("y) ("z) ("u) ("v) ("w) (P (x, y, u) Ù P(y, z, v) Ù P(x, v, w)®P(u, z, w));
A'3: ("x) P (x, e, x) Ù ("x) P (e, x, x);
A'4: ("x) P (x, i (x), e) Ù("x) P (i(x), x, e).
Заключение теоремы такое:
B: Если х*х = е для всех х ÎG, то G коммутативна, т.е. u*v = v*u для всех u, v ÎG.
В может быть представлено формулой
B': ("x) P(x, x, e) ®(("u) ("v) ("w) (P(u, v, w)®P(v, u, w))).
3. Теперь вся формула представляется формулой F = A'1 Ù …Ù A'4®B'. Таким образом, ØF = A'1 Ù A'2 Ù A'3 Ù A'4 Ù ØB'. Чтобы получить множество дизъюнктов S для ØF, сперва получим множество дизъюнктов Si для каждой аксиомы A’i = 1, 2, 3, 4, следующим образом:
S’1: {P (x, y, f(x, y))};
S’2: {ØP(x, y, u) Ú ØP(y, z, v) Ú ØP(u, z, w) Ú P(x, v, w),
ØP(x, y, u) Ú Ø P(y, z, v) Ú ØP(x, v, w) Ú P(u, z, w)};
S3: {P(x, e, x), P(e, x, x)};
S4: {P(x, i(x), e), P(i(x), x, e)}.
Так как
ØB’ = Ø (("x) P(x, x, e) ® (("u) ("v) ("w) (P(u, v, w) ® P(v, u, w))))
= Ø (Ø("x) P(x, x, e) Ú (("u) ("v) ("w) (ØP(u, v, w) Ú P(v, u, w))))
= ("x) P(x, x, e) Ù Ø (("u) ("v) ("w) (ØP(u, v, w) Ú P(v, u, w)))
= ("x) P(x, x, e) Ù (($u) ($v) ($w) (P(u, v, w) Ù Ø P(v, u, w))).
то множество дизъюнктов для Ø B’ дается ниже.
T: {P(x, x, e), P(a, b, c), Ø P(b, a, c)}.
Таким образом, множество S = S1 È S2 È S3 È S4 È T есть множество, состоящее из следующих дизъюнктов:
(1) P(x, y, F(x, y)),
(2) Ø P(x, y, u) Ú Ø P(y, z, v) Ú ØP(u, z, w) Ú P(x, v, w),
(3) Ø P(x, y, u) Ú Ø P(y, z, v) Ú Ø P(x, v, w) Ú P(u, z, w),
(4) P(x, e, x),
(5) P(e, x, x),
(6) P(x, i(x), e),
(7) P(i(x), x, e),
(8) P(x, x, e),
(9) P(a, b, c),
(10) Ø P(b, a, c).
Пример 3 показывает, как получить множество дизъюнктов S для формулы Ø F. Из теоремы 1 известно, что F общезначима тогда и только тогда, когда S противоречива. Как говорилось в начале этого параграфа, для доказательства теоремы будем использовать процедуру опровержения. Таким образом, с этого места мы будем предполагать, что на входе процедуры опровержения стоит всегда множество дизъюнктов (такое как множество S, полученное в приведенном выше примере). Дальше мы будем использовать для множества дизъюнктов термины «невыполнимо» («выполнимо») вместо «противоречиво» («непротиворечиво»).
Дата добавления: 2016-03-05; просмотров: 979;