Принцип резолюции для логики предикатов.
Если матрица формулы в результате приведения к виду ПНФ не будет содержать свободных переменных и сколемовских функций, то для вывода заключения полностью пpuменим алгоритм принципа резолюции, рассмотренный в исчислении высказываний. Этот алгоритм основывается на том, что если две формулы состоящие из дизъюнкции атомов (в дальнейшем такие формулы будем называть дизъюнктами ) связаны конъюнкцией, и в них имеются два одинаковых или приводимых к одинаковым (унифицируемых ) атома с разными знаками, то из них можно получить третий дизъюнкт , который будет логическим следствием первых двух, и в нем будут исключены эти два атома. Однако, если в результате приведения к виду ССФ аргументы атомов содержат сколемовские функции, то для поиска контрарных атомов необходимо выполнить подстановки термов вместо предметных переменных и получить новые формулы дизъюнктов, которые допускают их унификацию при формировании контрарных пар. Множество подстановок нужно формировать последовательно, просматривая каждый раз только одну предметную переменную.
Например, если даны два дизъюнкта (P1(x)ÚùP2(x)) и (ùP1(f(x))ÚP3(y)), то для получения контрарной пары атомов возможна подстановка
xòf(х)(P1(x)ÚùP2(x))=(P1(f(x))ÚùP2(f(x))) и
xòf(х)(ùP1(f(x))ÚP3(y))= (ùP1(f(x))ÚP3(y)).
В результате склеивания этих дизъюнктов может быть получена резольвента: (P1(f(x))ÚùP2(f(x)))Ú(ùP1(f(x))ÚP3(y))= (ùP2(f(x))Ú P3(y)).
Если пара дизъюнктов имеет вид (P1(f1(x))ÚùP2(x)) и (ùP1(f2(x))ÚP3(y)), то никакая подстановка не позволит сформировать резольвенту.
Пример: Даны две формулы P3(a;x;f(q(y))) и ùP3(z;f(z);f(u)).
Выполнить унификацию контрарных атомов.
1) zòa ùP3(z;f(z);f(u))=ùP3(a;f(a);f(u));
2) xòf(a) P3(a;x;f(q(y)))=P3(a;f(a);f(q(y)));
3) uòq(y) ùP3(a;f(a);f(u))=ùP3(a;f(a);f(q(y))).
В результате получены два контрарных атома: P3(a;f(a);f(q(y))) и ùP3(a;f(a);f(q(y))). Если в эти формулы атомов вместо предметной переменной y сделать подстановку предметной постоянной b, т.е.
yòbP3(a;f(a);f(q(y)))=P3(a;f(a);f(q(b))) и
yòbùP3(a;f(a);f(q(y)))= P3(a;f(a);f(q(b))),
то получим два контрарных высказывания.
Пример. Даны две формулы P3(x;a;f(q(a))) и ùP3(z;y;f(u)).
Выполнить унификацию контрарных формул.
1) xòbP3(x;a;f(q(a)))=P3(b;a;f(q(a)));
2) yòaù P3(z;y;f(u))=ùP3(z;a;f(u));
3) yòaùP3(z;a;f(u))=ùP3(b;a;f(u));
4) uòq(a)ùP3(b;a;f(u))=ùP3(b;a;f(q(a))).
В результате получены две контрарных формулы: P3(b;a;f(q(a))) и ùP3(b;a;f(q(a))).
Пример: Существуют студенты, которые любят всех преподавателей. Ни один из студентов не любит невежд. Следовательно, ни один из преподавателей не является невеждой. [1]
Пусть P1(x):=” x – студент”, P2(y):=”y – преподаватель”, P23(x, y):=”x любит y”, P4(y):=”y - невежда”.
Формулы этого суждение имеют вид:
$x(P1(x)&"y(P2 (y)®P23(x; y)));
"x(P1(x) ®"y(P4 (y)®ùP23(x; y)));
"y(P2 (y)®ùP4(y));
Преобразовать посылки и отрицание заключения в ССФ:
F1=$x(P1(x)&"y(P2 (y)®P23(x; y)))= $x"y(P1(x)& (P2 (y)®P23(x; y)))= "y(P1(a)& (P2 (y)®P23(a; y)))= "y(P1(a)& (ùP2 (y)ÚP23(a; y)));
M1= P1(a)&(ùP2 (y)ÚP23(a; y));
F2="x(P1(x) ®"y(P4 (y)®ùP23(x; y)))=
"x"y (P1(x) ® (P4 (y)®ùP23(x; y)))= "x"y (ùP1(x)ÚùP4 (y)ÚùP23(x; y)));
M2=(ùP1(x)ÚùP4 (y)ÚùP23(x; y));
F3=ù"y(P2 (y)®ùP4(y))= $y(ù(ùP2(y)ÚùP4(y))= $y(P2(y) &P4(y))=
P2(b)&P4(b);
M3=P2(b)&P4(b).
Выписать множество дизъюнктов:
K={P1(a); (ùP2 (y)ÚP23(a; y)); (ùP1(x)ÚùP4 (y)ÚùP23(x; y)); P2(b); P4(b)};
Выполнить унификацию и формирование резольвент:
1) P2(b) Ú xòb(ùP2 (y)ÚP23(a; y))= P23(a; b);
2) P23(a; b)Úyòb (ùP1(x)ÚùP4 (y)ÚùP23(x; y))= (ùP1(x)ÚùP4 (b));
3) (ùP1(x)ÚùP4 (b)) Ú P1(a)= ùP4 (b)
4) ùP4 (b) ÚP4 (b)= .