1. Булеви функции. Теорема на Пост-Яблонски за пълнота. Нека J2 = { 0, 1}. Всяка функция f : J2n  J



страница5/29
Дата11.01.2018
Размер5.91 Mb.
#44141
1   2   3   4   5   6   7   8   9   ...   29

Твърдение: Нека f : A  A е монотонно изображение. Нека a  A е

най-малка квазинеподвижна точка на f. Тогава a е най-малка неподвижна точка на f.

Доказателство: Достатъчно е да покажем, че a е неподвижна точка на f. Тъй като a е квазинеподвижна, то f (a)  a. Tъй като f е монотонно, то f (f (a))  f (a)  f (a) е квазинеподвижна точка на f. Тъй като a е най-малка квазинеподвижна точка на f, то a  f (a). Така f (a) = a.
Теорема (Кнастер-Тарски): Нека f : A  A е непрекъснато изображение. Тогава f притежава най-малка квазинеподвижна точка.

Доказателство: Конструираме редица { an} от елементи на A с

индукция по n.

База: При n = 0, a0 = .

Предположение: Нека е дефинирано an, n  0.

Стъпка: Тогава an+1 = f (an).

Твърдим, че редицата { an} е монотонна. Ще покажем това с

индукция по n.

База: При n = 0, a0 =   a1.

Предположение: Нека an  an+1, n  0.

Стъпка: Тъй като f е монотонно, то f (an)  f (an+1), т.е. an+1  an+2.

Нека a = . Твърдим, че a е най-малка квазинеподвижна точка на f. Действително, f (a) = f () = = .

Имаме , тъй като е горна граница на редицата { an+1}. Така f (a)  = a  a е квазинеподвижна точка на f.

Нека b  A е квазинеподвижна точка на f, т.е. f (b)  b.

С индукция по n ще покажем, че an  b за всяко n  .

База: При n = 0, a0 =   b.

Предположение: Нека an  b, n  0.

Стъпка: Тогава an+1 = f (an)  f (b)  b. Използвали сме, че f е монотонно и че b е квазинеподвижна точка на f.

Така an  b за всяко n    a =  b.

Окончателно, a  A е най-малка квазинеподвижна точка на f.


От горното твърдение получаваме, че всяко непрекъснато изображение притежава най-малка неподвижна точка, която е същевременно най-малка квазинеподвижна точка.
Ще докажем едно обобщение на теоремата на Кнастер-Тарски.

Нека Ai = (Ai, i, i), i = 1, 2, …, n са области на Скот.

Да означим А = A1 x A2 x …x An, A = (A, , (1, 2, …, n)).

Нека fi : A  Ai, i = 1, 2, …, n са тотални изображения.

Съвкупността от формалните равенства

f1 (1, 2, …, n) = 1

f2 (1, 2, …, n) = 2

fn (1, 2, …, n) = n



наричаме система от уравнения за изображенията f1, f2, …, fn.

Казваме, че (a1, a2, …, an)  A е решение на системата, ако

fi (a1, a2, …, an) = ai за всяко i = 1, 2, …, n.

Казваме, че (a1, a2, …, an)  A е най-малко решение на системата,

ако (a1, a2, …, an) е решение на системата и за всяко решение

(b1, b2, …, bn)  A на системата имаме (a1, a2, …, an)  (b1, b2, …, bn).

Естествено, ако системата има най-малко решение, то е единствено.

Казваме, че (a1, a2, …, an)  A е квазирешение на системата, ако

fi (a1, a2, …, an) i ai за всяко i = 1, 2, …, n.

Казваме, че (a1, a2, …, an)  A е най-малко квазирешение на системата, ако (a1, a2, …, an) е квазирешение на системата и за всяко квазирешение (b1, b2, …, bn)  A на системата имаме

(a1, a2, …, an)  (b1, b2, …, bn).

Естествено, ако системата има най-малко квазирешение,

то е единствено.
Теорема: Нека fi : A  Ai са непрекъснати изображения. Тогава системата от уравнения за f1, f2, …, fn притежава най-малко решение, което е и най-малко квазирешение.

Доказателство: Да означим f = f1 x f2 x …x fn. Тогава f : A  A и f е непрекъснато изображение, тъй като f1, f2, …, fn са непрекъснати.

От теоремата на Кнастер-Тарски f притежава най-малка неподвижна точка, която е и най-малка квазинеподвижна точка. Да я означим с (a1, a2, …, an)  A. Ще покажем, че (a1, a2, …, an) е най-малко решение на системата. Имаме

f (a1, a2, …, an) = (f1 (a1, …, an), f2 (a1, …, an), …, fn (a1, a2, …, an)) =


= (a1, a2, …, an), така че fi (a1, …, an) = ai за всяко

i = 1, 2, …, n. Така (a1, …, an) е решение на системата.

Нека (b1, …, bn)  A е решение на системата, т.е. fi (b1, …, bn) = bi за всяко i = 1, 2, …, n.

Тогава f (b1, …, bn) = (b1, …, bn), така че (b1, …, bn) е неподвижна

точка на f  (a1, …, an)  (b1, …, bn).

Аналогично, като се използва, че (a1, …, an) е най-малка квазинеподвижна точка на f се показва, че (a1, …, an) е

най-малко квазирешение на системата за f1, …, fn.
Нека  (X1, …, Xn, , , …, ) е терм.

Нека a1, a2, …, an  , 1, 2, …, k.

Дефинираме индуктивно понятието стойност на терма  в

a1, …, an, 1, …, k, която записваме  (a1, …, an, 1, …, k) или

съкратено  (a, ):


  1. Ако  = c, то  (a, )  c (съответно булева константа или естествено число).

  2. Ако  = Xi, то  (a, )  ai.

  3. Нека  = f (1, 2, …, l).

Тогава  (а, )  f (1 (a, ), 2 (a, ), …, l (a, )).

  1. Нека  = if  then 1 else 2. Тогава

 (a, )  1 (a, ), ако  (a, )  tt,

 (a, )  2 (a, ), ако  (a, )  ff,

!  (a, ), ако !  (a, ).


  1. Нека  = (1, 2, …, ).

Тогава  (a, )  i (1 (a, ), 2 (a, ), …, (a, )).
Тъй като функциите i са частични, стойността  (a, ) може да не е навсякъде определена.
По-нататък за краткост ще означаваме F = .
Лема (съгласуване на заместване и стойност):

Нека  (X1, …, Xn, , , …, ) e терм. Нека F и

c1, c2, …, cn са константи. Тогава  (c, )   (X/c, F)().

Доказателство: Индукция по построението на .


Твърдение (за монотонност): Нека  (X, F) е терм, , F, и a  n. Тогава за всяка константа b от типа на  имаме, че

 (a, )  b   (a, )  b.

Доказателство: Индукция по построението на .
Твърдение (за компактност): Нека  (X, F) е терм.

За всеки а  n, F и константа b от типа на  е изпълнено:

 (a, )  b  съществуват крайни подфункции , такива че

 (a, )  b.

Доказателство: Индукция по построението на .

Ако  е константа или  = Xi, i  { 1, 2, …, n }, то можем да изберем

 = (!, !, …, !), където индексът показва броя на аргументите.

Нека  = f (1, 2, …, l) и твърдението е изпълнено за термовете

1, 2, …, l. Нека  (a, )  b. Тогава съществуват константи

c1, c2, …, cl, такива че 1 (a, )  c1, 2 (a, )  c2, …, l (a, )  cl и

f (c1, c2, …, cl) = b. От индукционното предположение съществуват крайни подфункции 1 , 2 , …, l , такива че

1 (a, 1)  c1, 2 (a, 2)  c2, …, l (a, l)  cl.

Нека 1 = (11, 12, …, 1k), 1j  j, j = 1, 2, …, k.

Нека 2 = (21, 22, …, 2k), 2j  j, j = 1, 2, …, k.

Нека l = (l1, l2, …, lk), lj  j, j = 1, 2, …, k.



Нека 1 = 11  21  … l1. Тъй като 11, 21, …, l1 са крайни подфункции на една и съща функция 1, то 1 e добре дефинирана крайна подфункция на 1. Аналогично, нека 2 = 12  22  … l2,

2  2, …, k = 1k  2k  … lk, k  k. Нека = (1, 2, …, k).

Тогава и са крайни функции. Ясно е, че i , i = 1, 2, …, l.

От монотонността получаваме 1 (a, )  c1, 2 (a, )  c2, …,

l (a, )  cl, също f (c1, c2, …, cl) = b   (a, )  b.

Случаят  = if  then 1 else 2 се разглежда аналогично на предния случай.

Нека  = (1, 2, …, ) и твърдението е изпълнено за термовете 1, 2, …, . Нека  (a, )  b.

Тогава съществуват константи c1, c2, …, , такива че 1 (a, )  c1,

2 (a, )  c2, …, (а, )  и i (c1, c2, …, )  b. От индукционното предположение съществуват крайни подфункции 1 , 2 , …, , такива че 1 (a, 1)  c1, 2 (a, 2)  c2, …, (а, )  .

Нека 1 = (11, 12, …, 1k), 1j  j, j = 1, 2, …, k.

Нека 2 = (21, 22, …, 2k), 2j  j, j = 1, 2, …, k.

Нека = (, , …, ),   j, j = 1, 2, …, k.



Нека 1 = 11  21  … , 2 = 12  22  … , …,

k = 1k  2k  … . Oтново 1, 2, …, k са крайни функции и

1  1, 2  2, …, k  1. Нека i* = i  { (c1, c2, …, , b) }.

Тогава i* е крайна подфункция на i, тъй като i (c1, c2, …, )  b. Нека = (1, …, i-1, i*, i+1, …, k). Тогава и са крайни функции. Естествено, 1 , 2 , …, и от монотонността получаваме, че 1 (a, )  c1, 2 (a, )  c2, …, (а, )  .

Освен това, i* (c1, c2, …, )  b   (a, )  b.
Лема: Нека Fn и е крайна, { fk} е монотонно растяща редица от елементи на Fn. Нека . Тогава съществува m  , такова че fm.

Доказателство: Тривиална проверка.


Твърдение (за непрекъснатост): Нека  (X, F) е терм.

Нека 0 1 n …е монотонно растяща редица от елементи на F. За всеки a  n и константа b от типа на  имаме

 (a, )  b  съществува n  , такова че  (a, n)  b.

Доказателство: Нека съществува n  , такова че  (a, n)  b.

Имаме n и от монотонността получаваме  (a, )  b.

Нека  (a, )  b. От твърдението за компактност съществуват крайни подфункции , такива че  (a, )  b.

Нека = (1, 2, …, k).

Имаме = .

Тъй като , то 1, 2, …, k.

Имаме, че 1, 2, …, k са крайни функции и от лемата получаваме, че съществуват n1, n2, …, nk, такива че 1, 2, …,

k. Нека n = max (n1, n2, …, nk).

Тъй като редиците { }, { }, …, { } са монотонни, то 1, 2, …, k n. Накрая от твърдението за монотонност получаваме  (a, n)  b.


Нека  (X1, …, Xn, , , …, ) е терм от тип Nat или условен терм.

Дефинираме изображение Г : F по следния начин:

Г (1, 2, …, k)(a1, a2, …, an)   (a1, …, an, 1, …, k) за всяко

(a1, a2, …, an)  n, (1, 2, …, k)  F.


Теорема: При въведените означения, Г е непрекъснато изображение на F = във .

Доказателство: Непосредствено следствие от твърденията за монотонност и непрекъснатост.


Нека R е програма от вида

0 (X1, …, Xn, , , …, ), where



(X1, …, ) = i (X1, …, , , , …, ), i = 1, 2, …, k.

Нека Гi : F, Гi = , i = 1, 2, …, k.

Разглеждаме системата за изображенията Г1, Г2, …, Гk:

Г1 (1, 2, …, k) = 1

Г2 (1, 2, …, k) = 2

Гk (1, 2, …, k) = k



Тъй като Г1, Г2, …, Гk са непрекъснати изображения (предната теорема), то системата притежава най-малко решение

 = (1, 2, …, k). При това е и най-малко квазирешение.

Функцията DV (R) : n , дефинирана с DV (R)(а)  0 (а, ) за всяко a  n, където е точно това най-малко решение наричаме денотационна семантика на програмата R с предаване по стойност.
Сега ще покажем, че денотационната и операционната семантика съвпадат за всяка програма R.
По-долу с ще означаваме най-малкото (квази)решение на системата за Г1, Г2, …, Гk.




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




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

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