13.7. Подстановка и унификация
Применение метода резолюций в логике предикатов усложняется тем, что дизъюнкты содержат термы, которые могут не совпадать в двух одинаковых литерах. Например, С1=Р(х)Q(x), С2=Р(f(а))V(a). В этих дизъюнктах нет контрарных литер, однако, если мы подставим f(а) вместо x в С1, то получим С1=Р(f(а))Q(f(я)); теперь литеры Р(f(а)) и Р(f(а)) будут уже контрарные. Получим резольвенту Q(f(а))V(a).
Такая процедура подстановки одних термов вместо других с целью получения контрарных литер называется унификацией.
Определение 13.14. Подстановка — это конечное множество вида {t1/v1, ..., tn/vn}, где vi – переменная, ti - терм, отличный от vi, и все vi различны.
Определение 13.15. Пусть = {t1/v1, ..., tn/vn}, и Е— выражение. Тогда Е выражение, полученное из Е заменой всех вхождений переменных vi(1in) на термы ti.
Определение 13.16. Пусть = {t1/v1, ..., tn/vn}, = {u1/y1, ..., uk/yk} – подстановки. Композиция подстановок ° получается из множества {t1/v1, ..., tn/vn, u1/y1, ..., uk/yk} вычеркиванием всех элементов tj/vj, для которых tj=vj. (тождественная подстановка), и всех элементов ui/yi. таких, что уi{vi, …, vn}.
Пример. Пусть = {t1/v1, t2/v2} = {f(y)/x, z/y} ={u1/y1, u2/y2, u3/y3}={a/x, b/y, y/z}. Тогда °= {t1/v1, t2/v2, u1/y1, u2/y2, u3/y3}={f(b)/x, y/y, a/x, b/y, y/z}. Так как t2/x2=y/y, то y/y должно быть вычеркнуто из множества °. Элементы а/х, b/у также должны быть вычеркнуты, так как подстановки для х и у уже определены. В результате получаем: ° = {f(b)/х, у/z).
В процедуре доказательства методом резолюций необходимо находить такие подстановки, которые позволяют сделать два и более выражения тождественными.
Определение 13.17. Подстановка называется унификатором множества {Е1, ..., Еm} тогда и только тогда, когда Е1 = ... = Еm. Множество {Е1, ..., Em} называется унифицируемым, если для него существует унификатор. Унификатор для множества выражений {Е1, ..., Еm} называется наиболее общим унификатором, если для каждого унификатора этого множества существует такая подстановка , что = о.
Например, для двух дизъюнктов {Р(а, у), Р(х, f(b)} подстановка {а/х, f(b)/у} является наиболее общим унификатором.
Введя понятие унификации, мы можем рассмотреть метод резолюции для логики первого порядка.
Определение 13.18. Если две или более литер (с одинаковым знаком) дизъюнкта С имеют наиболее общий унификатор , то С называется склейкой С. Если С - единичный дизъюнкт, то склейка называется единичной склейкой.
Пример. Пусть С = Р(х)Р(f(у))Q(х). Тогда первая и вторая литеры имеют наиболее общий унификатора ={f(y)/x}. Следовательно, С = Р(f(у))Q(f(у)) есть склейка С.
Определение 13.19. Пусть С1, и С2 - два дизъюнкта (называемые дизъюнктами-посылками), которые не имеют никаких общих переменных. Пусть L1, и L2 две литеры в С1, и С2, соответственно. Если L1 и L2 имеют наиболее общий унификатор , то дизъюнкт (C1\L1)(C1\L1) называется (бинарной) резольвентой С1, и С2.Литеры L1 и L2 называются отрезаемыми литерами.
Определение 13.20. Резольвентой дизъюнктов-посылок С1, и С2 является одна из следующих резольвент:
1) бинарная резольвента С1 и С2;
2) бинарная резольвента С1 и склейки С2;
3) бинарная резольвента С1 и склейки С1;
4) бинарная резольвента склейки С1, и склейки С2.
Пример. Пусть C1=P(x)P(f(y))R(g(y)) и C2 = P(f(g(a)))Q(b). Склейка C1 есть C2=P(f(y))R(g(y)). Выполним подстановку g(а)/у. Бинарная резольвента С1 и С2 есть R(g(g(a)))Q(b). Следовательно, R(g(g(a)))Q(b) есть резольвента С1 и С2.