Лекции по логическо програмиране



страница8/22
Дата01.06.2017
Размер2.18 Mb.
#22581
ТипЛекции
1   ...   4   5   6   7   8   9   10   11   ...   22

Умножение на субституции

нека 1 и 2 са субституции; дефинираме функция  (x) от множеството на променливите в множеството от всички термове по следния начин:  (x) = (x1)2 за всяко x;

ще покажем, че  (x) е субституция, т.е.  (x)  x най-много за краен брой променливи x; за целта ще покажем, че за всяко x ако

 (x)  x, то 1 (x)  x или 2 (x)  x; да допуснем противното –

 (x)  x и 1 (x) = x, 2 (x) = x за някоя променлива x; тогава

 (x) = (x1)2 = x2 = x, което е противоречие; ясно е, че

1 (x)  x или 2 (x)  x е изпълнено само за краен брой

променливи x, тъй като 1 и 2 са субституции; така  (x)  x само за краен брой променливи x, т.е.  (x) е субституция; тази субституция наричаме произведение на субституциите 1 и 2, означаваме  = 12; така x(12) = (x1)2;


пример: да разгледаме субституциите [X/Y], [Y/a]; от горните разглеждания субституцията [X/Y][Y/a] не променя променливите, които не са X или Y; имаме X([X/Y][Y/a]) = (X[X/Y])[Y/a] = Y[Y/a] = a;

Y([X/Y][Y/a]) = (Y[X/Y])[Y/a] = Y[Y/a] = a;

така [X/Y][Y/a] = [X/a, Y/a];
ще покажем, че  =  =  за всяка субституция ;

действително за всяко x имаме x() = (x) = x (от съответното твърдение за термове)   = ; също, за всяко x имаме



x() = (x) = x   = ;
нека  = [X/Y, Y/X]; ще покажем, че  = ;

действително, x()= x = x за всяка променлива x,

различна от X и Y; също X() = (X) = Y = X,

Y() = (Y) = X = Y; така  = ;


умножението на субституции не е комутативно;

например [X/Y][Y/X] = [Y/X], [Y/X][X/Y] = [X/Y] и така

[X/Y][Y/X]  [Y/X][X/Y];
Твърдение: ако E е терм или безкванторна формула и 1, 2 са субституции, то E(12) = (E1)2;

Доказателство: първо да разгледаме случая когато E е терм;

провеждаме индукция по постронието на E;

База: ако E е константа, то E(12) = E, (E1)2 = E2 = E 

E(12) = (E1)2; ако E  , то E(12) = (E1)2 от дефиницията за произведение на субституции;

Предположение: нека E = f (T1, T2, …, Tn) и твърдението е изпълнено за термовете T1, T2, …, Tn;

Стъпка: имаме E(12) = f (T1(12), T2(12), …, Tn(12)); от индукционното предположение T1(12) = (T11)2,

T2(12) = (T21)2, …, Tn(12) = (Tn1)2; тогава

E(12) = f ((T11)2, (T21)2, …, (Tn1)2) =

= (f (T11, T21, …, Tn1))2 = (E1)2;

сега да разгледаме случая когато E е безкванторна формула;

провеждаме индукция по построението на E;

База: нека E = p (T1, T2, …, Tn);

тогава E(12) = p (T1(12), T2(12), …, Tn(12)); тъй като

T1, T2, …, Tn са термове от по-горе T1(12) = (T11)2,

T2(12) = (T21)2, …, Tn(12) = (Tn1)2;

така E(12) = p ((T11)2, (T21)2, …, (Tn1)2) =

= (p (T11, T21, …, Tn1))2 = (E1)2;

ако E  П0, E = true или E = fail, то E(12) = E и (E1)2 = E2 = E 

E(12) = (E1)2;

Предположение: нека твърдението е изпълнено за безкванторните формули G, F1, F2, …, Fn (n > 2);

Стъпка:

ако E = G, то E(12) = (G(12)); от индукционното предположение G(12) = (G1)2  E(12) = ((G1)2) = ((G1))2 =

= ((G)1)2 = (E1)2;

ако E = F1 & F2 & … & Fn, то

E(12) = F1(12) & F2(12) & … & Fn(12); от индукционното предположение F1(12) = (F11)2, F2(12) = (F21)2, …,

Fn(12) = (Fn1)2; така E(12) = (F11)2 & (F21)2 & … & (Fn1)2 =

= (Fn1 & Fn1 & … & Fn1)2 = ((F1 & F2 & … & Fn)1)2 = (E1)2;

ако E = F1  F2  …  Fn, то

E(12) = F1(12)  F2(12)  …  Fn(12); от индукционното предположение F1(12) = (F11)2, F2(12) = (F21)2, …,

Fn(12) = (Fn1)2; така E(12) = (F11)2  (F21)2  …  (Fn1)2 =

= (Fn1  Fn1  …  Fn1)2 = ((F1  F2  …  Fn)1)2 = (E1)2;


Твърдение (асоциативност на умножението на субституции): за всеки три субституции 1, 2, 3 е изпълнено: (12)3 = 1(23);

Доказателство: нека x;

тогава x ((12)3) = (x(12))3 = ((x1)2)3;

също x (1(23)) = (x1)(23) = ((x1)2)3 – тук използваме, горното твърдение за терма (x1);

така x ((12)3) = x (1(23)) за всяко x  (12)3 = 1(23);

нека 1, 2, …, k (k  0) е редица от субституции; дефинираме произведение12…k на 1, 2, …, k с индукция по k;

База: при k = 0 под произведение на празната редица разбираме субституцията ;

Предположение: нека е дефинирано произведението

12…k-1, k  1;

Стъпка: дефинираме 12…k-1k = (12…k-1)k;

според тази дефиниция, произведение на една субституция е самата субституция, произведение на две субституции е произведението на субституции от по-горе;
нека k  0, l  0; с индукция по l ще покажем, че

12…kk+1k+2…k+l = (12…k)(k+2…k+l);

База: при l = 0 12…k = (12…k) и твърдението е изпълнено;

Предположение:

нека 12…kk+1k+2…k+l-1 = (12…k)(k+2…k+l-1), l  1;

Стъпка: тогава 12…kk+1k+2…k+l = (12…kk+1k+2…k+l-1)k+l;

от индукционното предположение (12…kk+1k+2…k+l-1)k+l =

= ((12…k)(k+2…k+l-1))k+l; от асоциативността на умножението на субституции ((12…k)(k+2…k+l-1))k+l = (12…k)((k+2…k+l-1)k+l) =

= (12…k)(k+2…k+l);




Сподели с приятели:
1   ...   4   5   6   7   8   9   10   11   ...   22




©obuch.info 2024
отнасят до администрацията

    Начална страница