Cвойства композиций подстановок

Для любых подстановок q, l,m справедливы следую-щие свойства:

1. Ассоциативность: q ° l ° m = (q ° l) ° m = q ° (l ° m).

2.Коммутативность c пустой подстановкой: q ° e =e ° q.

Потенциальные возможности подстановок таковы, что с их помощью нельзя добавлять или снимать отрицание с предикатов. Однако, применяя подстановки, можно (не во всех случаях) привести переменные и термы, входящие в предикаты, к единому виду.

Определение. Подстановка q называется унифика-тором множества выражений Е ={E 1, E 2,..., E k } Û когда E1q=E2q=...=Ekq. Если унификатор для множества Е суще-ствует, то само множество называется унифицируемым.

Очевидно, унификатор может быть неединственным, поскольку при применении любой композиции подстановок q°l унификатора q с любой подстановкой l будет выпол-няться равенство E1ql = E2ql =...= Ek ql.


Определение. Унификатор q называется наиболее об-щим унификатором для множества выражений Е ={E 1, E 2,..., E k } Û когда любой унификатор l множества выра-жений Е можно представить в виде l = q °s, где s - неко-торая подстановка.

Пример 4. Найти унификатор множества E = { P(x,y), P(a,b)}. Унификатором Е является подстановка q ={а/x, b/y}. После её применения Е1q = Е2q = Р(a,b).

Рассмотрим более сложные случаи различия выраже-ний. Допустим, имеется множество из k выражений Е ={E1, E2,..., Ek }, каждое из которых зависит от s подвыражений:

E1 = E1 (e11, e12,...,e1s);

E2 = E2 (e21, e22,...,e2s);

...

Ek = Ek (ek1, ek2,...,eks).

Множество подвыражений ej1, ej2,...,ejk, стоящих в каждом из выражений E1, E2,..., Ek на j -той позиции, на-зовём подвыражениями с индексом j. Если все такие под-выражения ej1, ej2,...,ejk одинаковы, то назовём их совпа-дающими. Если не все одинаковы (т.е. существуют номера p,q при которых e ¹ ejq ), то назовём их несовпадающими.

Пример 5. Определить совпадаюшие и несовпадаю-щие подвыражения в множестве выражений Е ={E1,E2,E3 } = {P(x,y,z,u), Р(x,f(a),z,g(z)), Р(x,y,z,g(y))}.

Решение.

j=1: e11 = e21 = e31 =x, Þ подвыражения с индексом j=1 совпадают,

j=2: e12 = e32 =у, e22 =f(a), Þ подвыражения с индексом j=2 не совпадают,

j=3: e13 = e23 = e33 =z, Þ подвыражения с индексом j=3 совпадают,

j=4: e14 = u, e24 =g(z), e34 = g(x), Þ подвыражения с индексом j=4 не совпадают.


Таким образом, подвыражения, стоящие на первых и третьих позициях, совпадают, а на вторых и четвёртых позициях - не совпадают.

Определение. Рассмотрим множество выражений Е={E 1, E 2,..., E k }, вида:

E1 = E1 (e11, e12,...,e1s);

E2 = E2 (e21, e22,...,e2s);

...

Ek = Ek (ek1, ek2,...,eks).

Множеством рассогласований D j множества выраже-ний Е называются несовпадающие подвыражения ej1, ej2,...,ejk с минимальной величиной индекса j. Если для всех индексов 1 £ j £ s подвыражения совпадают, то множество рассогласований множества выражений Е принимаем рав-ным нулю: D j = Æ.

Для множества Е = {P(x,y,z,u), Р(x,f(a),z,g(z)), Р(x,y,z, g(y))} из Примера 5 множеством рассогласований будет D 2 = {y, f(a)}. Рассмотрим на этом множестве Е, каким образом можно, последовательно устраняя рассогласования, унифи-цировать все множество.

1. Вначале множество рассогласований равно D 2 = {y, f(a)}. Его можно унифицировать при помощи подстановки q = {f(a)/y} на множестве Е. После применения q получим:

E1q = P(x, f(a), z, u), E2q = Р(x, f (a), z, g (z)), E3q = Р(x, f(a), z, g (f (a)).

2. Для индексов j=1,2,3 подвыражения совпадают. Мно-жество рассогласований равно D4 = {u, g(z), g(f(a))}. Его можно унифицировать при помощи подстановки q2 = {f(a)/z, g(f(a))/u} на множестве Е. После применения q2 получим:

E1qq2 = P(x, f(a), f(a), g(f(a))), E2qq2 = Р(x, f(a), f(a), g(f(a))), E3qq2 = Р(x, f(a), f(a), g(f(a))).

Таким образом, множество Е унифицируемо и найден-


ный унификатор имеет вид: q°q2 = {f(a)/y, f(a)/z, g(f(a))/u}.

В общем случае для определения унифицируемости множества выражений Е и нахождения наиболее общего унификатора (если он существует) применяется


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: