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



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

Субституции



субституция наричаме изображение  на множеството на променливите в множеството на термовете, такова че

 (x)  x най-много за краен брой променливи;

ако x1, x2, …, xn са две по две различни променливи и u1, u2, …, un са термове, то със [x1/u1, x2/u2, …, xn/un] означаваме субституцията , определена по следния начин:  (xi) = ui,

i = 1, 2, …, n,  (x) = x за x  { x1, x2, …, xn};

ако  е произволна субституция и от x  { x1, x2, …, xn} 

 (x) = x (такова крайно множество съществува по дефиниция), то е ясно, че  = [x1/ (x1), x2/ (x2), …, xn/ (xn)];



тъждествената субституция бележим с ,  (x) = x за всяко x  ;

например  = [x1/x1], където x1 е произволна променлива;


нека T – терм,  - субституция; дефинираме индуктивно термът T, който ще наричаме резултат от прилагането на  към T;

База: ако T  Ф0, то T = T; ако T  , T =  (T);

Предположение: нека T = f (T1, T2, …, Tn) и T1, T2, …, Tn са дефинирани;

Стъпка: тогава T = f (T1, T2, …, Tn);


например нека към терма f (g (X), Y) да приложим субституцията

 = [X/Y, Y/g (Z)]; последователно получаваме:

f (g (X), Y) = f (g (X), Y) = f (g (X), g (Z)) = f (g (Y), g (Z));
Твърдение: нека T е терм; ако  и  са субституции, които съвпадат върху VAR (T), то T = T;

Доказателство: индукция по построението на T;

База: ако T  Ф0, то T = T = T за всеки две субституции  и ;

ако T  , то T = T = T, тъй като T  VAR (T), а  и  съвпадат върху VAR (T);

Предположение: нека T = f (T1, …, Tn) и твърдението е изпълнено за термовете T1, …, Tn за произволни субституции  и , съвпадащи върху съответните множества;

Стъпка: нека  и  са произволни субституции, които съвпадат върху VAR (T); за i = 1, 2, …, n имаме VAR (Ti)  VAR (T), така че от индукционното предположение Ti = Ti;

имаме T = f (T1, …, Tn) = f (T1, …, Tn) = T;
Tвърдение: нека T е терм; тогава T = T;

Доказателство: индукция по построението на T;

База: ако T  Ф0, то T = T по дефиниция;

ако T  , то T =  (T) = T;

Предположение: нека T = f (T1, …, Tn) и T1 = T1, …, Tn = Tn;

Стъпка: тогава T = f (T1, …, Tn) = f (T1, …, Tn) = T;


Твърдение: ако T е затворен терм, то T = T за всяка

субституция ;

Доказателство: нека  е произволна субституция; тогава  и  съвпадат върху VAR (T) =   T = T = T;

Твърдение: нека T е терм,  е субституция;

тогава VAR (T) = ;

Доказателство: индукция по построението на T;

База: ако T  Ф0, то VAR (T) = VAR (T) =  и =  - твърдението е изпълнено; ако T  , то VAR (T) = { T},

VAR (T) = VAR ( (T)) и - твърдението е изпълнено;

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

Стъпка: VAR (T) = VAR (f (T1, …, Tn)) = VAR (T1)  … VAR (Tn) =  … =

= ;


нека F е безкванторна формула,  е субституция; дефинираме индуктивно безкванторната формула F, която ще наричаме резултат от прилагането на  към F:

База: ако F е атомарна формула, F = p (T1, …, Tn) дефинираме

F = p (T1, …, Tn), ако F  П0, то F = F ;

ако F = true или F = fail, дефинираме F = F;

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

Стъпка: ако F = G, дефинираме F = (G);

ако F = F1 & F2 & … & Fn, дефинираме F = F1 & F2 & …& Fn;

ако F = F1  F2  …  Fn, дефинираме F = F1  F2  … Fn;


Твърдение: нека F е безкванторна формула; ако  и  са субституции, които съвпадат върху VAR (F), то F = F;

Доказателство: индукция по построението на F;

База: нека  и  са субституции, които съвпадат върху VAR (F);

ако F е атомарна формула и F = p (T1, …, Tn), то за

i = 1, 2, …, n от VAR (Ti)  VAR (F) и от по-горе  Ti = Ti;

така F = f (T1, …, Tn) = f (T1, …, Tn) = F;

ако F е атомарна формула и F  П0, то F = F = F;

ако F = true или F = fail, то F = F = F;

Предположение: нека твърдението е изпълнено за G, F1, …, Fn,

n > 1 за произволни субституции  и , които съвпадат върху съответните множества;

Стъпка: нека  и  са произволни субституции, които съвпадат върху VAR (F);

ако F = G, то VAR (G) = VAR (F) и от индукционното предположение G = G; тогава F = (G) = (G) = F;

ако F = F1 & F2 & …& Fn, то VAR (Fi)  VAR (F), i = 1, 2, …, n и от индукционното предположение Fi = Fi, i = 1, 2, …, n;

така F = F1 & F2 & … & Fn = F1 & F2 & … & Fn = F;

ако F = F1  F2  … Fn, то VAR (Fi)  VAR (F), i = 1, 2, …, n и от индукционното предположение Fi = Fi, i = 1, 2, …, n;

така F = F1  F2  …  Fn = F1  F2  …  Fn = F;


Твърдение: F – безкванторна формула; тогава F = F;

Доказателство: индукция по построението на F;

База: ако F е атомарна формула и F = p (T1, …, Tn), то

F = p (T1, …, Tn) = p (T1, T2, …, Tn) = F (от съответното твърдение за термове); ако F  П0, то F = F; ако F = fail или F = true, то F = F;

Предположение: нека G, F1, …, Fn (n > 1) са такива, че

G = G, F1 = F1, …, Fn = Fn;

Стъпка: ако F = G, то F = (G) = G = F;

ако F = F1 & F2 & …& Fn, то F = F1 & …& Fn = F1 & … & Fn = F;

ако F = F1  F2  … Fn, то F = F1  … Fn = F1  … Fn = F;
Твърдение: ако F е безкванторна формула и  е субституция, то

VAR (F) = ;

Доказателство: индукция по построението на F;

База: ако F е атомарна формула и F = p (T1, …, Tn), то

F = p (T1, …, Tn), VAR (F) = VAR (T1)  …  VAR (Tn) =

=  …  = = ; ако F е атомарна формула и F  П0 или F = fail или F = true то VAR (F) = VAR (F) =  и = ;

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

G, F1, …, Fn (n > 1);

Стъпка:

ако F = G, то VAR (F) = VAR ((G)) = VAR (G); от индукционното предположение VAR (G) = = ;



ако F = F1 & F2 & … & Fn, то VAR (F) = VAR (F1 & F2 & … & Fn) =

= VAR (F1)  VAR (F2)  …  VAR (Fn); от индукционното предположение имаме VAR (F1)  VAR (F2)  …  VAR (Fn) =

=  … =

= = ;

ако F = F1  F2  …  Fn, то VAR (F) = VAR (F1  F2  …  Fn) =

= VAR (F1)  VAR (F2)  …  VAR (Fn); от индукционното предположение имаме VAR (F1)  VAR (F2)  …  VAR (Fn) =

=  … =

= = ;



Твърдение: нека Е е терм или безкванторна формула; ако съществуват субституции  и , такива че E = E, то  и  съвпадат върху VAR (E);

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

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

База: нека  и  са такива субституции, че E = E;

ако E е константа, то очевидно  и  съвпадат върху

VAR (E) = ; ако E  , то E =  (E), E =  (E)   (E) =  (E) 

 и  съвпадат върху VAR (E) = { E};

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

Стъпка: нека  и  са субституции, такива че E = E;

имаме E = f (T1, T2, …, Tn), E = f (T1, T2, …, Tn); от еднозначния синтактичен анализ на термовете получаваме

T1 = T1, T2 = T2, …, Tn = Tn; използваме индукционното предположение за термовете T1, T2, …, Tn и получаваме, че

 и  съвпадат върху VAR (T1), VAR (T2), …, VAR (Tn); тогава

 и  съвпадат върху VAR (T1)  VAR (T2)  …  VAR (Tn) = VAR (E);

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

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

База: нека  и  са такива субституции, че E = E;

нека E = p (T1, T2, …, Tn); тогава E = p (T1, T2, …, Tn),

E = p (T1, T2, …, Tn); от еднозначния синтактичен анализ на атомарните формули получаваме, че T1 = T1, T2 = T2, …,

Tn = Tn; тъй като T1, T2, …, Tn са термове от по-горе  и  съвпадат върху VAR (T1), VAR (T2), …, VAR (Tn)   и  съвпадат върху VAR (T1)  VAR (T2)  …  VAR (Tn) = VAR (E);

ако E  П0, E = true или E = fail, то  и  върху VAR (E) = ;

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

Стъпка: нека  и  са такива субституции, че E = E;

ако E = G, то E = (G), E = (G)  G = G; от индукционното предположение  и  съвпадат върху VAR (G) = VAR (F);

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

E = F1 & F2 & … & Fn; от еднозначния синтактичен анализ на формулите получаваме, че F1 = F1, F2 = F2, …, Fn = Fn и от индукционното предположение  и  съвпадат върху VAR (F1),

VAR (F2), …, VAR (Fn)   и  съвпадат върху

VAR (F1)  VAR (F2)  … VAR (Fn) = VAR (E);

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

E = F1  F2  …  Fn; от еднозначния синтактичен анализ на формулите получаваме, че F1 = F1, F2 = F2, …, Fn = Fn и от индукционното предположение  и  съвпадат върху VAR (F1),

VAR (F2), …, VAR (Fn)   и  съвпадат върху

VAR (F1)  VAR (F2)  … VAR (Fn) = VAR (E);





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




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

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