Твърдение: Нека 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, ):
-
Ако = c, то (a, ) c (съответно булева константа или естествено число).
-
Ако = Xi, то (a, ) ai.
-
Нека = f (1, 2, …, l).
Тогава (а, ) f (1 (a, ), 2 (a, ), …, l (a, )).
-
Нека = if then 1 else 2. Тогава
(a, ) 1 (a, ), ако (a, ) tt,
(a, ) 2 (a, ), ако (a, ) ff,
! (a, ), ако ! (a, ).
-
Нека = (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.
Сподели с приятели: |