ВАРИАНТИ И ПРЕИМЕНУВАНЕ НА ПРОМЕНЛИВИ
Нека A е терм, атомарна формула, хорнова цел
или хорнова клауза.
Вариант на A ще наричаме такъв частен случай
Aў
на A, че и A да бъде частен случай на Aў.
Пример 1. Нека p е двуместен предикатен
символ. Тогава атомарната формула p(Y,Z) е вариант
на атомарната формула
p(X,Y), а атомарната формула
p(X,X)
не е вариант на p(X,Y).
Лесно се съобразява, че всеки вариант на A
има същите частни случаи както A.
Нека a е субституция,
а X0 е някое множество
от променливи. Ще казваме, че a е преименуваща
върху X0, ако a
преобразува всяка променлива от множеството
X0
пак в променлива (не непременно принадлежаща на X0)
и преобразува различните променливи от X0
пак в различни.
Пример 2. Субституцията [Y,Z=:X,Y]
е преименуваща върху множеството {X,Y}, но не
е преименуваща върху множеството {X,Y,Z}.
Ако T е терм, който не е променлива, то субституцията [T,X=:X,Y]
не е преименуваща въху множеството {X,Y}, но
е преименуваща върху всяко множество от променливи, което не съдържа променливата
X.
Сега ще установим връзка между варианти и субституции,
преименуващи върху дадено множество.
Твърдение 1. Нека A е терм, атомарна
формула, хорнова цел или хорнова клауза, а a
е субституция, която е преименуваща върху множеството VAR(A).
Тогава
a(A) е вариант на
A.
Доказателство. Множеството от променливи VAR(A)
е крайно. Тогава и неговият образ посредством a
е краен. Да означим въпросния образ чрез X1
и да дефинираме изображение aў
на X в X, като положим
aў(a(X))=X
при XОVAR(A) и aў(Y)=Y
при YПX1. Ясно
е, че изображението
aў е субституция
и че субституцията aўa съвпада
с тъждествената субституция за всички променливи на A. Това позволява
да се твърди, че е в сила равенството aў(a(A))=A
и следователно A е частен случай на своя частен случай a(A).
ї
Следствие 1. Нека A е терм, атомарна
формула, хорнова цел или хорнова клауза и нека е дадено някое крайно множество
от променливи. Тогава A притежава вариант, на който никоя от променливите
не принадлежи на въпросното множество.
Доказателство. Преобразуваме A чрез
субституция, която замества променливите от VAR(A)
с различни променливи, непринадлежащи на даденото множество. ї
Следствие 2. За всеки две атомарни формули
съществува вариант на първата, който няма общи променливи с втората.
Във въпроса "Унификатори и унифицируемост" отбелязахме,
че за всеки две унифицируеми атомарни формули съществува атомарна формула,
която е частен случай и на двете, като обратното не е вярно в общия случай,
но е вярно в случая на атомарни формули с непресичащи се множества на променливите.
Ако
A
и B са произволни атомарни формули, направеното по-горе дава начин
да проверим дали съществува атомарна формула, която да е частен случай
и на A, и на B. А именно, да разгледаме вариант
Aў
на A, нямащ общи променливи с B. Тъй като A и Aў
имат едни и същи частни случаи, съществуването на атомарна формула, която
да е частен случай и на A, и на B, е равносилно със съществуването
на атомарна формула, която да е частен случай и на Aў,
и на B. Последното обаче е равносилно с това атомарните формули
Aў
и B да са унифицируеми.
Ще докажем след малко, че няма други варианти на
терм, атомарна формула, хорнова цел или хорнова клауза освен посочените
в твърдение 1. За да направим това, ще са ни нужни две леми.
Лема 1. Ако една субституция преобразува даден
терм в променлива, той също е променлива.
Доказателство. Ако един терм не е променлива,
той е константа или има вида f(T1,T2...,Tn),
където n е положително цяло число, f е n-местен
функционален символ и T1, ...,Tnса
термове. И в двата случая резултатът от прилагане на субституция към въпросния
терм е терм, който не е променлива. ї
Лема 2. Нека A е терм, атомарна
формула, хорнова цел или хорнова клауза, а s
е такава субституция, че s(A)=А.
Тогава s(X)=X за
всяка променлива
X на A.
Доказателство. За случая, когато A
е терм, твърдението се доказва чрез индукция, съобразена с дефиницията
за терм, като се използва и дефиницията за множество на променливите на
един терм. Веднаж доказано за този случай, твърдението лесно се разпространява
за останалите. ї
Твърдение 2. Нека A е терм, атомарна
формула, хорнова цел или хорнова клауза. Тогава всеки вариант на A
има вида a(A), където a
е субституция, преименуваща върху множеството VAR(A).
Доказателство. Нека Aў
е произволен вариант на A. Тогава за някои субституции a
и aў са в сила равенствата Aў=a(A)
и A=aў(Aў).
От тези равенства следва равенството aў(a(A))=A,
което може да се напише и във вида aўa(A)=A.
Оттук с помощта на лема 2 заключаваме, че за всяка променлива
X
на A имаме равенството aўa(X)=X,
а значи и равенството aў(a(X))=X.
Това в съчетание с лема 1 показва, че за всяка променлива
X
на A съответният й терм a(X)
е пак променлива. Освен това ако X1 и X2
са две различни променливи на A, то от равенствата aў(a(X1))=X1
и aў(a(X2))=X2
виждаме, че a(X1)
и a(X2) също
са различни. ї
Една субституция ще наричаме преименуваща,
ако тя е преименуваща върху множеството на всички променливи (разбира се
такава субституция ще бъде преименуваща и върху всяко негово подмножество).
Пример 3. Тъждествената субституция, субституцията
[Y,X=:X,Y]
и субституцията [Z,X,Y=:X,Y,Z]
са преименуващи.
Сега ще опишем общия вид на преименуващите субституции.
Да наречем пермутация на променливи всяко взаимно еднозначно изображение
на крайно множество от променливи върху себе си. Ако q
е пермутация на променливи, то ще наричаме естествено продължение на q
субституцията, която съвпада с q за променливите
от дефиниционната област на q, а всички останали
променливи преобразува в самите тях.
Твърдение 3. Една субституция е преименуваща
точно тогава, когато тя е естествено продължение на някоя пермутация на
променливи.
Доказателство. Ако една субституция е естествено
продължение на пермутация на променливи, то тази субституция очевидно е
преименуваща. По-нетривиално е обратното. За да го докажем, да предположим,
че d е произволна преименуваща субституция.
Нека D е множеството на онези променливи X, за които d(X)№X.
Това множество е крайно според дефиницията за субституция. Понеже субституцията
d
преобразува променливите в променливи и различните променливи в различни,
ясно е, че за всяка променлива X от D ще бъде в сила неравенството
d(d(X))№d(X)
и следователно d(X) ще бъде
пак елемент на D. Да означим с q рестрикцията
на
d върху множеството D. Тогава q
е пермутация на променливи, а d е естествено
продължение на q. ї
Следствие 3. Всяка преименуваща субституция
е взаимно еднозначно изображение на множеството X
върху себе си.
За следващите разглеждания ще имаме нужда от още
една лема. Да наречем заместване всяко изображение на крайно множество
от променливи в множеството на термовете. Преименуващо заместване
ще наричаме такова заместване, при което на променливите от дефиниционната
му област съответстват пак променливи (не непременно от нея) и на различните
променливи от нея съответстват пак различни. Ясно е, че пермутациите на
променливи са специален вид преименуващи замествания.
Лема 3. Нека r
е преименуващо заместване. Тогава съществува такава преименуваща субституция
d,
че d(X)=r(X)
за всяка променлива X от дефиниционната област на r
и d(X)=X за всяка
променлива X, която не принадлежи нито на дефиниционната област,
нито на множеството на стойностите на r.
Доказателство. Ясно е, че дефиниционната област
dom(r)
на r и множеството на стойностите range(r)
на r са крайни множества с равен брой елементи.
Като използваме равенствата
dom(r) \ range(r)
= dom(r) \ (dom(r)
З
range(r)),
range(r) \ dom(r)
= range(r) \ (dom(r)
З
range(r)),
виждаме, че и множествата в левите страни на тези равенства също са с равен
брой елементи. Това позволява да изберем някое взаимно еднозначно изображение
rўна
множеството range(r) \ dom(r)
върху множеството dom(r) \ range(r).
Да означим с D обединението на множествата dom(r)
и range(r) и да дефинираме изображение
q
на D в
D като положим q(X)=r(X)
при X О dom(r)
и q(X)=rў(X)
при X О range(r)
\ dom(r). Лесно се проверява, че q
е взаимно еднозначно изображение на D върху D. Следователно
q
е пермутация на променливи. Вземайки в качеството на d
естественото продължение на q, получаваме преименуваща
субституция с желаните свойства. ї
Ще илюстрираме конструкцията от горното доказателство
с един пример.
Пример 4. Нека dom(r)={X,Y,Z},
r(X)=U,
r(Y)=V,
r(Z)=X.
Тогава
dom(r) \ range(r)
= {Y,Z}, range(r)
\ dom(r) = {U, V}
и са налице две възможности за дефиниране на rў:
при едната имаме rў(U)=Y,
rў(V)=Z,
а при другата - rў(U)=Z,
rў(V)=Y.
Съответните две преименуващи субституции d са
следните:
[Y,Z,U,V,X=:U,V,X,Y,Z],
[Z,Y,U,V,X=:U,V,X,Y,Z].
С помощта на лема 3 ще дадем следното
усилване на твърдение 2.
Твърдение 2ў.Нека
A
е терм, атомарна формула, хорнова цел или хорнова клауза. Тогава всеки
вариант на A има вида d(A),
където
d е преименуваща субституция.
Доказателство. Нека Aў
е произволен вариант на A. Според твърдение 2 Aў
има вида a(A), където a
е някоя субституция, преименуваща върху множеството VAR(A).
Да означим с r рестрикцията на a
върху множеството VAR(A). Така полученото изпбражение
r
е преименуващо заместване и според лема 3 съществува преименуваща
субституция
d, която съвпада с r
за променливите от dom(r). Тъй
като въпросната субституция d ще съвпада с a
за променливите на A, ще имаме равенството
d(A)=a(A).
ї
Следващото твърдение показва, че и в по-широк кръг
от случаи е налице възножност за използване на преименуващи субституции
вместо субституции, преименуващи върху дадено множество.
Твърдение 4. Нека a
е субституция, която е преименуваща върху дадено множество от променливи
X0.
Тогава съществува преименуваща субституция, съвпадаща с a
върху множеството
X0.
Доказателство. Да означим с r
рестрикцията на a върху множеството на онези
променливи X от X0,
за които
a(X)№X.
Така дефинираното изображение r представлява
едно преименуващо заместване, следователно можем да приложим лема
3 и да получим преименуваща субституция d
с изказаните в лемата свойства. Ще покажем, че d
съвпада с a върху множеството X0.
Тъй като d е продължение на r,
всъщност трябва само да покажем, че и за онези променливи X от X0,
които не принадлежат на dom(r),
имаме равенството
d(X)=a(X).
Нека X е променлива от X0,
която не принадлежи на dom(r).
Тогава ще имаме равенството a(X)=X
и значи ще трябва да покажем, че имаме и равенството d(X)=X.
Това ще направим, като установим, че X не принадлежи и на range(r).
Да допуснем противното - че X принадлежи на range(r).
Това дава, че X=r(Xў)=a(Xў)
за някоя променлива Xў,
която принадлежи на dom(r). Но
в такъв случай се получава, че за двете различни променливи X и
Xў,
принадлежащи на X0,
стойностите на
a съвпадат в противоречие с обстоятелството,
че субституцията a е преименуваща върху
X0.
ї
Ако s е субституция, ще
наричаме вариант на s такъв неин частен
случай sў, че и s
да бъде частен случай на sў.
Пример 5. Ако A и B са две унифицируеми
атомарни формули, а s и sў
са два най-общи унификатора на A и B, то sў
е вариант на s.
Ще покажем, че и за случая на субституции вариантите
могат да се охарактеризират с помощта на преименуващи субституции.
Твърдение 5. Нека s
е произволна субституция. Тогава варианти на s
са точно субституциите от вида ds,
където d е преименуваща субституция.
Доказателство. Ако d
е преименуваща субституция, то следствие 3 позволява да образуваме
обратната й субституция d-1
и да твърдим, че произведението d-1d
е тъждествената субституция, а това дава равенствата d-1(ds)=(d-1d)s=s,
от които се вижда, че s е частен случай на своя
частен случай ds, т.е.ds
е вариант на s. За разсъждението в обратната
посока да предположим, че sў е
произволен вариант на s. Тогава ще имаме равенствата
sў=as
и s=aўsў
за някои две субституции a и aў.
Да означим с X0 обединението
на множествата VAR(s(Z)),
съответстващи на всевъзможните променливи Z. Ще покажем, че за всяка
променлива X от X0
е изпълнено равенството aў(a(X))=X.
И наистина, нека X е произволна променлива от множеството X0.
Тогава XОVAR(s(Z))
за някоя променлива Z. Ще имаме равенствата
aўa(s(Z))=aў(a(s(Z))=aў(as)(Z)=aўsў(Z)=s(Z),
а оттук по лема 2 заключаваме, че aўa(X)=X,
т.е. aў(a(X))=X.
От установеното свойство на променливите от X0
следва по лема 1, че субституцията a
преобразува всички такива променливи пак в променливи, а освен това от
същото свойство е ясно, че за различните променливи от X0
стойностите на a са различни. С други думи оказа
се, че субституцията a е преименуваща върху
множеството X0. По твърдение
4 ще съществува преименуваща субституция d,
която съвпада с a върху X0.
Като използваме това съвпадане и равенството sў=as,
сега ще покажем, че е в сила и равенството sў=ds.
Действително, за всяка променлива Z имаме равенствата sў(Z)=a(s(Z)),
ds(Z)=d(s(Z)),
а десните им страни са равни, понеже всички променливи на терма s(Z)
принадлежат на множеството X0
и значи субституциите a и d
съвпадат за тези променливи. ї
Последно изменение: 21.06.2000 г.