Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MUk-ML10.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
176.64 Кб
Скачать

Підстановки та уніфікатори

Під виразом будемо розуміти терм, множину термів, множину атомів, літеру, диз’юнкт, множину диз’юнктів. Вираз, що не містить змінних, будемо називати основним виразом. Підвиразом виразу Е назвемо вираз, що зустрічається в Е.

Підстановкою називається скінченна множина виду {t1/v1, …,tn/vn}, де vi – змінна, ti – терм, відмінний від vi, усі vi різні (i=1, … ,n). Елементи множини {t1/v1, …,tn/vn} називаються компонентами підстановки. Якщо t1,…,tn – основні терми (тобто не містять змінних), підстановка називається основною. Підстановка, що не містить елементів, називається порожньою й позначається .

Наприклад, множини {a/x, g(b)/y, f(x,y)/z}, {f(y,y)/x, z/y, f(x,z)/z} є підстановками, а {g(x)/u, b/y, z/u}, {x/x, g(a)/y, x/z} – ні.

Нехай ={t1/v1,…,tn/vn} – підстановка, Е – вираз. Прикладом Е називається вираз (позначається Е), що утворюється з Е шляхом заміни одночасно усіх входжень змінної vi (1  i  n) в Е на терм ti.

Нехай, наприклад, ={f(y)/x, a/y, u/z}, Е=Q(g(y),z,x). Тоді Е=Q(g(a),u,f(y)).

Нехай  = {t1/v1, … ,tn/vn},  = {u1/y1, … ,um/ym} – підстановки. Композицією та називається підстановка (позначається  або ), що утворюється із сукупності компонентів t1/x1,…,tn/xn, u1/y1,…,um/ym шляхом вилучення усіх тих компонентів tj/xj, для яких tj=xj, та усіх компонентів ui/yi, таких що yi{x1,…,xn}.

Нехай, наприклад,  = {t1/x1,t2/x2}={g(z)/x, w/z},  = {u1/y1,u2/y2,u3/y3} = {f(b)/x, a/z, z/w}. Тоді {t1/x1,t2/x2,u1/y1,u2/y2,u3/y3}={g(a)/x, z/z, f(b)/x, a/z, z/w}. Оскільки t2=x2, то маємо вилучити t2/x2 (тобто z/z) з множини. До того ж треба вилучити й u1/y1 та u2/y2 (тобто f(b)/x й a/z), бо y1 й y2 містяться серед {х1, х2}. Отже, маємо ={g(a)/x, z/w}.

Зазначимо, що сукупність підстановок з операцією композиції утворює напівгрупу з одиницею (), тобто () = () й == для усіх , , .

Уніфікатором множини виразів {E1,…,Ek} називається така підстановка , що E1=E2=…=Ek. Множина {E1,…,Ek} називається такою, що уніфікується, якщо для неї існує уніфікатор.

Нехай, наприклад, множина виразів Т = {Q(g(a),x), Q(y,f(a,b))}. Підстановка ={g(a)/y,f(a,b)/x} є уніфікатором T, оскільки Q(g(a),x)=Q(g(a),f(a,b))=Q(y,f(a,b)).

Найбільш загальним уніфікатором (нзу) множини виразів Т={E1,…,Ek} називається такий уніфікатор  цієї множини, що для будь-якого уніфікатора  множини Т існує така підстановка , що =.

Множиною розбіжностей непустої множини виразів W називається множина, що утворюється виявленням першої (зліва) позиції, на якій не для усіх виразів з W стоїть один і той самий символ, а потім виписуванням з кожного виразу у W підвиразів, які починаються з символу, що займає цю позицію.

Нехай, наприклад, W = {Q(x,a), Q(f(y),u)}. Тоді першою позицією, у якій не усі вирази з W мають однакові символи, є третя, оскільки усі вирази мають однакові перші два символи Q. Отже, множина розбіжностей складається з підвиразів, які починаються з третьої позиції, тобто це множина {x,f(y)}.

Побудова найбільш загального уніфікатора множини виразів здійснюється за допомогою алгоритму уніфікації, який наводиться нижче.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]