Търсене на атомарна формула, която е частен случай на всяка от две дадени атомарни формули
нека A и B са произволни атомарни формули; въпросът, който ще разглеждаме е съществува ли атомарна формула, която е частен случай както на A, така и на B, т.е. съществуват ли субституции
, , такива че A = B;
унификатор на атомарните формули A и B наричаме
субституция , такава че A = B; ако A и B притежават унификатор, казваме че A и B са унифицируеми;
ако A и B са унифициеруеми, очевидно съществува атомарна формула, която е частен случай на A и на B; обратното в общия случай не е вярно; например:
нека A = p (a, Z), B = p (Z, b), където Z е променлива a, b са различни константи; имаме C = p (a, b) = A[Z/b] = B[Z/a],
т.е. съществува атомарна формула, която е частен случай
на A и на B; ще покажем, че A и B не са унифицируеми;
нека е произволна субституция и да допуснем, че A = B
p (a, Z) = p (Z, b) и от еднозначния синтактичен анализ на атомарните формули a = Z = b, което е противоречие;
Твърдение: нека A и B са атомарни формули, такива че
VAR (A) VAR (B) = ; ако съществува атомарна формула, която е частен случай на A и на B, то A и B са унифицируеми;
Доказателство: по условие съществуват субституции , такива че
A = B; разглеждаме изображението от в множеството на всички термове, (x) = (x), ако x VAR (A), (x) = (x), ако
x \VAR (A); ясно е, че е субституция, тъй като (x) x
най-много за променливите от VAR (A) VAR (B), които са краен брой; тъй като и съвпадат върху VAR (A), то A = A;
също, тъй като VAR (A) VAR (B) = VAR (B) \VAR (A)
и съвпадат върху VAR (B) B = B;
така е унификатор на A и B;
нека A и B са произволни атомарни формули; както знаем, съществува вариант B на B, такъв че VAR (A) VAR (B) = ;
ясно е, че B и B имат едни и същи частни случаи; тогава една атомарна формула е частен случай на A и на B тя е частен случай на A и на B; от горното твърдение, тъй като
VAR (A) VAR (B) = , то съществува атомарна формула, която е частен случай на А и на B A и B са унифицируеми;
от доказателството на горната теорема заключаваме, че общият вид на атомарните формули, които са частни случаи на A и на B
е A, където е унификатор на A и на B;
пример: нека A = p (a, Z), B = p (Z, b); образуваме вариант
B = p (X, b) на B, очевидно VAR (A) VAR (B) = ;
търсим унификатор на A и на B, т.е. субституция , такава че
A = B, т.е. p (a, Z) = p (X, b); от еднозначния синтактичен анализ на атомарните формули получаваме, че a = X, b = Z;
една такава субституция е [X/a, Z/b]; имаме
A[X/a, Z/b] = p (a, b) = B[X/a, Z/b]; така A и B са унифицируеми и формулата p (a, b) е частен случай на A и на B;
нека A и B са атомарни формули;
ако A и B имат различни предикатни символи или предикатни символи с различен брой аргументи, то очевидно A и B не са унифицируеми;
Решаване на системи от уравнения между термове
уравнение между термове наричаме формално равенство
от вида T = U, където T и U са термове; решение на това уравнение наричаме субституция , такава че T = U;
под система от уравнения между термове разбираме крайно множество от уравнения: T1 = U1, T2 = U2, …, Tn = Un, Ti, Ui са термове; една субституция наричаме решение на системата, ако тя е решение на всяко едно от уравненията, т.е.
T1 = U1, T2 = U2, …, Tn = Un;
Твърдение: нека A = p (T1, T2, …, Tn) и B = p (U1, U2, …, Un) са атомарни формули с един и същ предикатен символ с един и същ брой аргументи; една субституция е унификатор на A и B
е решение на системата T1 = U1, T2 = U2, …, Tn = Un;
Доказателство: нека е произволна субституция;
имаме A = p (T1, T2, …, Tn), B = p (U1, U2, …, Un);
от еднозначния синтактичен анализ имаме:
A = B T1 = U1, T2 = U2, …, Tn = Un, т.е. е унификатор на A и B е решение на системата T1 = U1, T2 = U2, …, Tn = Un;
пример: нека A = p (X, f (X), Y), B = p (f (Y), Z, c); тогава е унификатор на A и B е решение на системата:
X = f (Y), f (X) = Z, Y = c;
нека 1 и 2 са субституции; казваме, че 2 е частен случай на 1, ако съществува субституция , такава че 2 = 1;
ще казваме, че една система в решен вид, ако тя има вида
x1 = U1, x2 = U2, …, xn = Un, където x1, x2, …, xn са две по две различни помежду си променливи, U1, U2, …, Un са термове и
xi VAR (Uj) за всеки i, j { 1, 2, …, n};
тъй като x1, x2, …, xn са две по две различни помежду си можем да построим субституцията 0 = [x1/U1, x2/U2, …, xn/Un];
Твърдение: субституцията 0 е решение на горната система и ако е произволно решение на тази система, то = 0;
Доказателство: за i = 1, 2, …, n имаме xi0 = Ui, Ui0 = Ui = Ui, тъй като 0 и съвпадат върху VAR (Ui); така xi0 = Ui = Ui0,
i = 1, 2, …, n 0 е решение на системата;
нека е произволно решение на системата, т.е. xi = Ui,
i = 1, 2, …, n; тогава xi(0) = (xi0) = Ui = xi, i = 1, 2, …, n;
също за всяко x \{ x1, x2, …, xn} x(0) = (x0) = x; така = 0;
нека T1 = U1, T2 = U2, …, Tn = Un е система от уравнения между термове; нека е решение на системата; тогава всички частни случаи на също са решения : действително, нека е произволна субституция; за i = 1, 2, …, n имаме Ti() = (Ti) = (Ui) = Ui()
е решение на системата;
под общо решение на системата T1 = U1, T2 = U2, …, Tn = Un разбираме решение , такова че всяко друго решение на системата е частен случай на ; по-долу ще покажем, че ако една произволна система има решение, то тя има общо решение и тогава всички решения на системата се изчерпват с частните случаи на ; в случая, когато системата е в решен вид, т.е. има вида x1 = U1, x2 = U2, …, xn = Un, където x1, x2, …, xn са две по две различни помежду си променливи, от горното твърдение
субституцията 0 = [x1/U1, x2/U2, …, xn/Un] е общо решение, така че решенията на системата се изчерпват със 0, където е произволна субституция;
да разгледаме уравнение от вида T = U, където T , U , T и U имат различни функционални символи или функционални символи с различен брой аргументи; ясно е, че за всяка субституция имаме T U, т.е. това уравнение няма решение;
да разгледаме уравнение от вида x = U, където x , U е терм,
U x и x VAR (U);
Твърдение: при горните предположения за всяка субституция имаме x U, т.е. уравнението x = U няма решение;
Доказателство: с индукция по построението ще покажем, че за всеки терм W, ако x VAR (W) и x W, то |W| > |x| за всяка субституция ;
База: ако W е константа, то VAR (W) = - противоречие
(x VAR (W)); ако W е променлива, то от x VAR (W) получаваме
W = x – противоречие (W x);
Предположение: нека W = f (W1, W2, …, Wk) и твърдението е изпълнено за термовете W1, W2, …, Wk;
Стъпка: нека е произволна субституция; имаме
W = f (W1, W2, …, Wk); ясно е, че |W| > |Wi| за всяко
i = 1, 2, …, n; тъй като x VAR (W), то x VAR (Wi)
за някое i { 1, 2, …, k }; ако Wi x, то по индукционното предположение|Wi| > |x| |W| > |Wi| > |x|;
ако Wi = x, то |W| > |Wi| = |x|; така и в двата случая
|W| > |x|;
сега, ако допуснем, че е решение на системата x = U ще получим, че |x|= |U|, което е противоречие;
уравнения от горните два вида наричаме явно нерешими; казваме, че една система е явно нерешима, ако тя съдържа явно нерешимо уравнение; ясно е, че такава система няма решение;
две системи от уравнения между термове наричаме еквивалентни, ако множествата от решенията им съвпадат;
ще посочим четири еквивалентни преобразувания на системи, т.е. преобразувания чрез които една система преминава в еквивалентна на нея система;
нека T1 = U1, T2 = U2, …, Tn = Un е система от уравнения между термове;
-
премахване на тъждество – ако за някое i { 1, 2, …, n} имаме Ti = Ui премахваме това уравнение от системата;
системата очевидно преминава в еквивалентна на нея, тъй като премахнатото уравнение се удоволетворява от всяка субституция;
-
разпадане – ако за някое i { 1, 2, …, n} имаме
Ti = f (V1, V2, …, Vm), Ui = f (W1, W2, …, Wm), m > 0 и Ti Ui, заменяме уравнението Ti = Ui с уравненията
V1 = W1, V2 = W2, …, Vm = Wm; системата преминава в еквивалентна на нея, тъй като е решение на Ti = Ui,
т.е. Ti = Ui f (V1, V2, …, Vm) = f (W1, W2, …, Wm) (от еднозначния синтактичен анализ)
V1 = W1, V2 = W2, …, Vm = Um;
изисква се Ti Ui, тъй като при Ti = Ui е удачно да се извърши премахване на тъждество;
-
обръщане – ако за някое i { 1, 2, …, n} имаме Ti , Ui ,
то заменяме уравнението Ti = Ui с Ui = Ti; очевидно системата преминава в еквивалентна на нея;
-
заместване – ако за някое i { 1, 2, …, n} имаме Ti ,
Ti VAR (Ui) и Ti VAR (Uj) VAR (Tj) за някое j = 1, 2, …, n, то заменяме системата със следната:
T1[Ti/Ui] = U1[Ti/Ui], …, Ti-1[Ti/Ui] = Ui-1[Ti/Ui],
Ti = Ui, Ti+1[Ti/Ui] = Ui+1[Ti/Ui], …, Tn[Ti/Ui] = Un[Ti/Ui];
ще покажем, че двете системи са еквивалентни;
да означим 0 = [Ti/Ui]; нека е произволно решение на изходната система; тъй като е решение на уравнението
Ti = Ui, то = 0; за j i { 1, 2, …, n} Tj = Tj(0) = (Tj0)
и Uj = Uj(0) = (Uj0) (Tj0) = (Uj0); така е решение и на преобразуваната система;
нека е произволно решение на преобразуваната система; тъй като е решение на уравнението Ti = Ui, то = 0;
за j i { 1, 2, …, n} Tj = Tj(0) = (Tj0) и
Uj = Uj(0) = (Uj0) Tj = Uj, т.е. е решение на изходната система;
пример: да разгледаме горната система от уравнения между термове: X = f (Y), f (X) = Z, Y = c; последователно извършваме еквивалентни преобразувания на системата:
(обръщане) X = f (Y), Z = f (X), Y = c;
(заместване) X = f (Y), Z = f (f (Y)), Y = c;
(заместване) X = f (c), Z = f (f (c)), Y = c;
получената система е в решен вид и нейното общо решение се дава със субституцията 0 = [X/f (c), Z/f (f (c)), Y/c];
така унификаторите на формулите A = p (X, f (X), Y) и
B = p (f (Y), Z, c) се изчерпват със 0, където е произволна субституция;
Теорема: всяка система от уравнения между термове може да се приведе чрез четирите еквивалентни преобразувания до система в решен вид или до явно нерешима система;
Доказателство:
ще посочим алгоритъм за преобразуване на произволна система чрез еквивалентните преобразувания до система в решен вид или до явно нерешима система:
-
ако системата не е в решен вид или не е явно
нерешима към 2.; иначе край;
-
към системата прилагаме някое от четирите еквивалентни преобразувания (което е възможно); към 1.;
ще докажем, че алгоритъмът е коректен; трябва да покажем, че:
-
ако една система не е в решен вид и не е явно нерешима, то е възможно да се извърши някое от четирите преобразувания;
-
алгоритъмът приключва след краен брой стъпки;
нека T1 = U1, T2 = U2, …, Tn = Un е система от уравнения между термове, която не е в решен вид и не е явно нерешима; да допуснем, че не е възможно да извършим никое от четирите преобразувания; ще покажем, че T1, T2, …, Tn са променливи;
да допуснем, че за някое i { 1, 2, …, n} Ti не е променлива;
ако Ui е променлива, тогава можем да извършим обръщане – противоречие; ако Ui не е променлива и Ti = Ui, то можем да извършим премахване на тъждество – противоречие;
ако Ui е константа и Ti Ui, то уравнението Ti = Ui е явно нерешимо системата е явно нерешима – противоречие;
ако Ui е съставен терм, Ti Ui и Ti, Ui имат еднакви функционални символи с един и същ брой аргументи, то можем да извършим разпадане – противоречие; ако Ui е съставен терм, Ti Ui и Ti, Ui имат различни функционални символи или функционални символи с различен брой аргументи, то уравнението Ti = Ui е явно нерешимо системата е явно нерешима – противоречие; във всички случаи получихме противоречие с допускането, че Ti не е променлива T1, T2, …, Tn са променливи;
за i = 1, 2, …, n имаме Ti Ui, тъй като в противен случай можем да извършим премахване на тъждество;
по предположение системата е явно нерешима и тъй като Ti Ui, то Ti VAR (Ui), i = 1, 2, …, n;
ако допуснем, че за някои i j { 1, 2, …, n} Ti VAR (Uj) { Tj} ще получим противоречие, тъй като в такъв случай можем да извършим заместване; така променливите T1, T2, …, Tn са две по две различни и Ti VAR (Uj) за всеки i, j { 1, 2, …, n }, т.е. системата е в решен вид – противоречие с допускането, че системата не в в решен вид; така към всяка система от уравнения между термове, която не е в решен вид и не е явно нерешима може да се приложи някое от четирите еквивалентни преобразувания;
ще покажем, че алгоритъмът завършва след краен брой стъпки;
нека T е терм; дефинираме височина на терма h (T) с индукция по построението:
База: ако T е променлива, дефинираме h (T) = 1; ако T е константа, дефинираме h (T) = 2;
Предположение: нека T = f (T1, T2, …, Tn) и h (T1), h (T2), …, h (Tn) са дефинирани;
Стъпка: дефинираме h (T) = h (T1) + h (T2) + … + h (Tn) + 1;
съвсем лесно с индукция по построението се проверява, че
височината на всеки терм е строго положително число; при това термовете, които не са променливи имат височина строго
по-голяма от 1;
под височина на системата от уравнения между термове
T1 = U1, T2 = U2, …, Tn = Un ще разбираме числото
h (T1) + h (T2) + … + h (Tn); ще изследваме как се променя височината на системата при извършване на еквивалентните преобразувания:
-
при премахване на тъждество височината строго намалява, тъй като от лявата страна премахваме терм и височината на всеки терм е строго положителна;
-
при разпадане от лявата страна премахваме съставен терм
f (V1, V2, …, Vm) и прибавяме термовете V1, V2, …, Vm; от дефиницията за височина на терм височината на системата намалява с 1;
-
при обръщане от лявата страна премахваме терм който не е променлива и го заменяме с променлива; тъй като всеки терм, който не е променлива има височина по-голяма от 1, а променливите имат височина 1, то височината на системата строго намалява;
-
при заместване лявата страна или не се променя или променливи се заместват с термове, така че височината на системата или не се променя или нараства;
така при първите три преобразувания височината на системата строго намалява, така че алгоритъмът може да извърши само краен брой пъти тези преобразувания едно след друго, т.е. без извършване на заместване;
ще казваме, че системата от уравнения между термове
T1 = U1, T2 = U2, …, Tn = Un е решена относно променливата x,
ако x = Ti за някое i { 1, 2, …, n}, x VAR (Tj) VAR (Uj),
j i { 1, 2, …, n} и x VAR (Ui), т.е. x не се среща никъде другаде в системата освен като лява част на точно едно уравнение;
например, ако системата е в решен вид, то тя е решена относно
променливите T1, T2, …, Tn;
нека системата е решена относно променливата x, x = Ti;
ще покажем, че при всяко от еквивалентните преобразувания системата остава решена относно x:
-
при премахване на тъждество не можем да премахнем
Ti = Ui, тъй като x VAR (Ui) Ti Ui; така системата остава решена относно x;
-
при разпадане уравнението Ti = Ui не се променя, тъй като Ti не е съставен терм; ясно е, че в новодобавените уравнения x не присъства, тъй като x не присъства в уравнението, което се разпада; така системата остава решена относно x;
-
при обръщане уравнението Ti = Ui не се променя, тъй като Ti е променлива; системата очевидно остава решена относно x;
-
при заместване не можем да използваме уравнението Ti = Ui, тъй като променливата x не се среща никъде другаде в системата; така заместваме променлива, различна от x и тогава получената системата ще остане решена относно x;
нека 0 е множеството от всички променливи, които се срещат в първоначалната система; очевидно 0 е крайно множество;
разглеждаме броят на променливите от 0, относно които системата не е решена; съгласно горните разсъждения при извършване на кое да е от четирите еквивалентни преобразувания този брой не може да нарастне; освен това при заместване този брой намалява строго с 1: ако заместваме променливата Тi, то тази система не е решена относно Ti, тъй като Ti се среща поне на още едно място в системата; също Ti VAR (Ui) и след заместване на Ti с Ui в другите уравнения ще получим система, която е решена относно Ti;
от направените разсъждения получаваме, че алгоритъмът може да извърши само краен брой пъти заместване – в противен случай ще получим, че 0 е безкрайно множество;
така алгоритъмът извършва само краен брой пъти заместване и само краен брой пъти последователно първите три преобразувания, така че той приключва след краен брой стъпки;
след приключване на алгоритъма получената система очевидно е еквивалентна на изходната система; ако получената система е явно нерешима, то изходната система няма решение; ако получената система е в решен вид, общото решение на изходната система се дава с общото решение на получената система в решен вид; в частност всяка система, която има поне едно решение има общо решение и решенията на системата са частните случаи на общото решение;
Сподели с приятели: |