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


Преименуване на свързани променливи



страница21/22
Дата01.06.2017
Размер2.18 Mb.
#22581
ТипЛекции
1   ...   14   15   16   17   18   19   20   21   22

Преименуване на свързани променливи



Твърдение: нека F е формула, x, y Î X, y Ï FVAR (F), s = [x/y] е приложима към F; тогава "x F º "y (F[x/y]) и $x F º $y (F[x/y]);

Доказателство: нека S е структура с носител D, v е оценка на променливите в S; имаме ("x F)S, v = min { F S, v[x : d]|d Î D };

от друга страна ("y (F[x/y]))S, v = min { F[x/y]S, v[y : d]|d Î D } =

= min { F S, v[: d][: v[: d] (y)] |d Î D } = min { F S, v[: d][: d] |d Î D };

ако x = y, твърдението е изпълнено, тъй като v[y : d][x : d] = v[x : d];

ако x ¹ y, то v[y : d][x : d] и v[x : d] съвпадат върху FVAR (F), тъй като y Ï FVAR (F) è F S, v[: d][: d] = F S, v[x : d] и твърдението отново е изпълнено; съвсем аналогично се показва, че $x F º $y (F[x/y]);


като следствие от твърдението получаваме, че ако F е произволна формула и x е свързана променлива на F, то F е еквивалентна на формула, в която x не е свързана променлива;

Привеждане на формули в пренексен вид

казваме, че една формула е в пренексен вид, ако тя е получена от безкванторна формула с добавяне на няколко (възможно 0) квантори по различни помежду си свободни променливи;

ще покажем, че всяка формула е еквивалентна на някоя формула в пренексен вид, която има същите свободни променливи;

в частност, всяка затворена формула е еквивалентна на затворена формула в пренексен вид;


по-горе показахме следните две еквивалентности:

x F  x F;

x F  x F;
Твърдение: нека F1, F2, …, Fn са произволни формули;

нека i  { 1, 2, …, n }, x  FVAR (Fj) за всяко j  i  { 1, 2, …, n };

тогава F1 & … & Fi-1 & x Fi & Fi+1 & … & Fn  x (F1 & F2 & … & Fn);

Доказателство: нека S е структура с носител D, v е оценка на

променливите в S; имаме (F1 & … & Fi-1 & x Fi & Fi+1 & … & Fn)S, v =

= min { F1S, v, …, Fi-1S, v, (x Fi)S, v, Fi+1 S, v, …, Fn S, v } =

= min { F1S, v, …, Fi-1S, v, min { Fi S, v[x : d]|d  D }, Fi+1 S, v, …, Fn S, v };

имаме (F1 & … & Fi-1 & x Fi & Fi+1 & … & Fn)S, v = 1 

F1 S, v = 1, …, Fi-1 S, v = 1, min { Fi S, v[x : d]|d  D } = 1, Fi+1 S, v = 1, …,

Fn S, v = 1  F1 S, v = 1, …, Fi-1 S, v = 1, Fi+1 S, v = 1, …, Fn S, v = 1

и за всяко d  D, Fi S, v[x : d] = 1;

от друга страна x (F1 & F2 & … & Fn) S, v =

= min { (F1 & F2 & … & Fn) S, v[x : d] |d  D } =

= min { min { F1S, v[x : d], F2S, v[x : d], …, Fn S, v[x : d] } |d  D };

имаме x (F1 & F2 & … & Fn) S, v = 1  за всяко d  D,

min { F1S, v[x : d], F2S, v[x : d], …, Fn S, v[x : d] } = 1  за всяко d  D,

F1S, v[x : d] = 1, F2S, v[x : d] = 1, …, Fn S, v[x : d] = 1  за всяко d  D,

F1 S, v = 1, …, Fi-1 S, v = 1, Fi S, v[x : d] = 1, Fi+1 S, v = 1, …, Fn S, v = 1; използвали сме, че тъй като v и v[x : d] съвпадат върху FVAR (Fj), то Fj S, v = Fj S, v[x : d] за всяко j  i  { 1, 2, …, n }, d  D;

така (F1 & … & Fi-1 & x Fi & Fi+1 & … & Fn)S, v = 1 

x (F1 & F2 & … & Fn) S, v = 1;


Твърдение: нека F1, F2, …, Fn са произволни формули;

нека i  { 1, 2, …, n }, x  FVAR (Fj) за всяко j  i  { 1, 2, …, n };

тогава F1  …  Fi-1  x Fi  Fi+1  …  Fn  x (F1  F2  …  Fn);

Доказателство: нека S е структура с носител D, v е оценка на

променливите в S; имаме (F1  …  Fi-1  x Fi  Fi+1  …  Fn)S, v =

= max { F1S, v, …, Fi-1S, v, (x Fi)S, v, Fi+1 S, v, …, Fn S, v } =

= max { F1S, v, …, Fi-1S, v, min { Fi S, v[x : d]|d  D }, Fi+1 S, v, …, Fn S, v };

имаме (F1  …  Fi-1  x Fi  Fi+1  …  Fn)S, v = 0 

F1 S, v = 0, …, Fi-1 S, v = 0, min { Fi S, v[x : d]|d  D } = 0, Fi+1 S, v = 0, …,

Fn S, v = 0  F1 S, v = 0, …, Fi-1 S, v = 0, Fi+1 S, v = 0, …, Fn S, v = 0

и съществува d  D, такова че Fi S, v[x : d] = 0;

от друга страна x (F1  F2  …  Fn) S, v =

= min { (F1  F2  …  Fn) S, v[x : d] |d  D } =

= min { max { F1S, v[x : d], F2S, v[x : d], …, Fn S, v[x : d] } |d  D };

имаме x (F1  F2  …  Fn) S, v = 0  съществува d  D, такова че

max { F1S, v[x : d], F2S, v[x : d], …, Fn S, v[x : d] } = 0  съществува d  D, такова че F1S, v[x : d] = 0, F2S, v[x : d] = 0, …, Fn S, v[x : d] = 0  съществува d  D, такова че F1 S, v = 0, …, Fi-1 S, v = 0, Fi S, v[x : d] = 0, Fi+1 S, v = 0, …, Fn S, v = 0; използвали сме, че тъй като v и v[x : d] съвпадат върху FVAR (Fj), то Fj S, v = Fj S, v[x : d] за всяко j  i  { 1, 2, …, n }, d  D;

така (F1  …  Fi-1  x Fi  Fi+1  …  Fn)S, v = 1 

x (F1  F2  …  Fn) S, v = 1;


съвсем аналогично на горните две твърдения се показват следните две еквивалентности:

F1 & … & Fi-1 & x Fi & Fi+1 & … & Fn  x (F1 & F2 & … & Fn)

F1  …  Fi-1  x Fi  Fi+1  …  Fn  x (F1  F2  …  Fn)

при условие, че x  FVAR (Fj) за всяко j  i  { 1, 2, …, n };


за всяка формула F дефинираме брой на кванторите на F с индукция по построението на F;

База: ако F е атомарна формула, F = true или F = fail, броят на кванторите на F е 0;

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

Стъпка: ако F = G, броят на кванторите на F е броят на кванторите на G;

ако F = F1 & F2 & … & Fn или F = F1  F2  …  Fn, броят на кванторите на F е сума от броя на кванторите на F1, броя на кванторите на F2, …, броя на кванторите на Fn;

ако F = "y G или F = y G, броят на кванторите на F е с едно

по-голям от броя на кванторите на G;
съвсем лесно се показва, че F е безкванторна формула  броят на кванторите на F е 0;

Лема: нека F е формула с n+1 квантора, n  0; тогава съществува формула F с n квантора, такава че F е еквивалентна на някоя от формулите "x F или x F, x;

при това FVAR (F) = FVAR ("x F) (= FVAR (x F));

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

База: тъй като F има поне един квантор, то F не е атомарна формула, F  true, F  fail; така твърдението в този случай е изпълнено по тривиални причини;

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

G, F1, F2, …, Fm, m > 1;

Стъпка: нека F = G; тъй като F има n+1 квантора, то G има n+1 квантора; по индукционното предположение

G  "x G или G  x G, където G е формула с n квантора;

при това FVAR (G) = FVAR ("x G); при това положение,

ако G  "x G, то G  "x G  x G; така F = G  x G и

FVAR (F) = FVAR (G) = FVAR ("x G) = FVAR (G)\{ x } =

= FVAR (G)\{ x } = FVAR (x G);

ако G  x G, разсъжденията са аналогични с използване на еквивалентността x F  x F;

нека F = F1 & F2 & … & Fm; тъй като F съдържа n+1 квантора, то съществува j  { 1, 2, …, m }, такова че Fj съдържа

k+1 квантора, k  0; по индукционното предположение

Fj  "x Fj или Fj  x Fj, където Fj е формула с k квантора;

при това FVAR (Fj) = FVAR ("x Fj);

нека Fj  "x Fj; при това положение F = F1 & F2 & … & Fm  F1 & … & Fj-1 & "x Fj & Fj+1 & … & Fm; нека y,



y  FVAR (F1)  …  FVAR (Fj-1)  VAR (Fj)  FVAR (Fj+1)  … 

 FVAR (Fm); такова y съществува, тъй като ограничението е свързано с крайно обединение на крайни множества, което е крайно множество, а е безкрайно множество; при това положение субституцията [x/y] е приложима към Fj,

тъй като VAR (y) = { y}  BVAR (Fj) = ; тъй като y  FVAR (Fj) от едно твърдение по-горе получаваме, че "x Fj º "y (Fj [x/y]);

при това y  FVAR (Fi) за i  j  { 1, 2, …, m } 

F  F1 & … & Fj-1 & "x Fj & Fj+1 & …& Fm

 F1 & … & Fj-1 & "y (Fj [x/y]) & Fj+1 & … & Fm

 "y (F1 & … & Fj-1 & Fj [x/y] & Fj+1 & … & Fm);

нека F = F1 & … & Fj-1 & Fj [x/y] & Fj+1 & … & Fm;

имаме F  "y F; съвсем лесно с индукция по построението се показва, че формулата Fj [x/y] има същия брой квантори като формулата Fj, т.е. k; при това положение е ясно, че формулата F има n квантора; ще покажем, че FVAR ("x Fj) = FVAR ("y (Fj [x/y]));

имаме FVAR ("y (Fj [x/y])) = FVAR (Fj [x/y])\{ y } = = \ { y }; ако x  FVAR (Fj), то



\ { y } =

 VAR (x [x/y]) \ { y } = FVAR (Fj)\ { x } = FVAR ("x Fj);

ако x  FVAR (Fj), то  \ { y } = FVAR (Fj) \ { y } =

= FVAR (Fj) = FVAR (Fj) \ { x } = FVAR ("x Fj), тъй като



x  FVAR (Fj), y  FVAR (Fj); така получаваме

FVAR (F) = FVAR (F1)  FVAR (F2)  …  FVAR (Fm) =

= FVAR (F1)  … FVAR (Fj-1)  FVAR ("x Fj) 

 FVAR (Fj+1)  … FVAR (Fm) = FVAR (F1)  … FVAR (Fj-1) 

 FVAR ("y (Fj [x/y]))  FVAR (Fj+1)  … FVAR (Fm) =

= FVAR (F1)  … FVAR (Fj-1)  FVAR (Fj [x/y])  FVAR (Fj+1)  …

 FVAR (Fm) \ { y } = FVAR (F)\ { y } = FVAR ("y F);

случаят Fj  x Fj се разглежда по аналогичен начин с използване на съответните еквивалентности от по-горе;

разсъжденията в случая F = F1  F2  …  Fm, m > 1, са аналогични на случая F = F1 & F2 & … & Fm;

нека F = "y G; тогава очевидно F  "y G, G има n квантора и

FVAR (F) = FVAR ("y G);

случаят F = y G се разглежда аналогично;


Теорема: за всяка формула F съществува формула F, така че

F е в пренексен вид, F  F и FVAR (F) = FVAR (F);

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

База: нека F има брой на кванторите 0; тогава F е безкванторна формула и очевидно F = F е такава,

че F  F и FVAR (F) = FVAR (F);

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

Стъпка: нека F има n+1 квантора; от горната лема F  "x G или

F  x G, където G има n квантора и FVAR (F) = FVAR ("x G);

нека например F  "x G; по индукционното предположение съществува формула G в пренексен вид, такава че G  G и

FVAR (G) = FVAR (G); имаме F  "x G  "x G;

ако x  FVAR (G), то "x G е в пренексен вид, F  "x G и

FVAR (F) = FVAR ("x G) = FVAR (G)\ { x } = FVAR (G)\ { x } =

= FVAR ("x G);

ако x  FVAR (G), то G е в пренексен вид, F  "x G  G и

FVAR (F) = FVAR ("x G) = FVAR (G)\ { x } = FVAR (G)\ { x } =

= FVAR (G), тъй като x  FVAR (G);


пример: нека F = X(YZ p (Y, Z)  YZ p (Y, Z)), F е затворена формула; с помощта на горната теорема търсим затворена формула в пренексен вид, която е еквивалентна на F;

изнасяме кванторите YZ отпред – това е позволено, тъй като

Y, Z  FVAR (YZ p (Y, Z));

така F  XYZ(p (Y, Z)  YZ  p (Y, Z)); за да изнесем кванторите YZ е необходимо да преименуваме свързаните променливи Y и Z, тъй като Y, Z  FVAR (p (Y, Z)); така получаваме:

F  XYZ(p (Y, Z)  YZ p (Y, Z)) 

 XYZ(p (Y, Z)  TV p (T, V)) 

 XYZTV(p (Y, Z)  p (T, V))  YZTV(p (Y, Z)  p (T, V)),

тъй като X  FVAR (YZTV(p (Y, Z)  p (T, V)));

така YZTV(p (Y, Z)  p (T, V)) е формула в пренексен вид, която е еквивалентна на F и е затворена;




Сподели с приятели:
1   ...   14   15   16   17   18   19   20   21   22




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

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