TKI Moduł 13: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Pqw (dyskusja | edycje)
mNie podano opisu zmian
m Zastępowanie tekstu – „<math> ” na „<math>”
 
(Nie pokazano 7 wersji utworzonych przez 2 użytkowników)
Linia 7: Linia 7:
Dowód: Dowód przeprowadzimy dla szczególnego diagramu:
Dowód: Dowód przeprowadzimy dla szczególnego diagramu:


[DIAGRAM]
[[Grafika:Diag13.0.png]]


(Dowód ogólny jest analogiczny lecz wymaga bardziej ''technicznego'' zapisu, wiec go pominiemy.) Pokażemy, że granica powyższego diagramu jest dana jako
(Dowód ogólny jest analogiczny lecz wymaga bardziej ''technicznego'' zapisu, wiec go pominiemy.) Pokażemy, że granica powyższego diagramu jest dana jako


<math> D = \{(x_0, x_1, ... )\mid (\forall n\in \omega)(f_n(x_{n+1}) = x_n)\}.</math>
<math>D = \{(x_0, x_1, ... )\mid (\forall n\in \omega)(f_n(x_{n+1}) = x_n)\}</math>.


Zauważmy, że zbiór <math>D </math> jest posetem, w którym elementy są uporządkowane ''po współrzędnych'' (to znaczy, że porządek jest ''dziedziczony'' z produktu <math>\Pi_{n\in \omega} D_n</math>. Jeśli <math>G\subseteq D</math> jest zbiorem skierowanym, to dla każdego <math>n\in \omega </math>zbiór <math>\pi_n[G]= \{x_n\mid x\in G\}</math>jest skierowanym podzbiorem <math>D_n </math>. Niech <math>y_n = \bigvee \{x_n\mid x\in G\} </math>. Z ciągłości funkcji tworzących diagram mamy: <math>f_n(y_{n+1}) = \bigvee f_n(\{x_{n+1}\mid x\in G\})=  \bigvee \{x_{n}\mid x\in G\} = y_n</math>. To znaczy, że <math>(y_0, y_1, ...)\in D </math> i, jak łatwo zauważyć, element ten jest supremum skierowanym zbioru <math>G</math>. Pokazaliśmy więc, że <math>D\in</math> '''Dcpo'''.
Zauważmy, że zbiór <math>D</math> jest posetem, w którym elementy są uporządkowane ''po współrzędnych'' (to znaczy, że porządek jest ''dziedziczony'' z produktu <math>\Pi_{n\in \omega} D_n</math>. Jeśli <math>G\subseteq D</math> jest zbiorem skierowanym, to dla każdego <math>n\in \omega</math>zbiór <math>\pi_n[G]= \{x_n\mid x\in G\}</math>jest skierowanym podzbiorem <math>D_n</math>. Niech <math>y_n = \bigvee \{x_n\mid x\in G\}</math>. Z ciągłości funkcji tworzących diagram mamy: <math>f_n(y_{n+1}) = \bigvee f_n(\{x_{n+1}\mid x\in G\})=  \bigvee \{x_{n}\mid x\in G\} = y_n</math>. To znaczy, że <math>(y_0, y_1, ...)\in D</math> i, jak łatwo zauważyć, element ten jest supremum skierowanym zbioru <math>G</math>. Pokazaliśmy więc, że <math>D\in</math> '''Dcpo'''.


Udowodnimy teraz, że <math>D</math> wraz z projekcjami <math>\{\pi_n\colon D\to D_n\mid n\in \omega\}</math> jest granicą. Po pierwsze, dla <math>G\subseteq D</math> mamy
Udowodnimy teraz, że <math>D</math> wraz z projekcjami <math>\{\pi_n\colon D\to D_n\mid n\in \omega\}</math> jest granicą. Po pierwsze, dla <math>G\subseteq D</math> mamy


<math>\pi_n(\bigvee G) = y_n = \bigvee \{x_{n}\mid x\in G\} = \bigvee \pi_n[G],</math>
<math>\pi_n(\bigvee G) = y_n = \bigvee \{x_{n}\mid x\in G\} = \bigvee \pi_n[G]</math>


a więc projekcje są ciągłe. Po drugie, jeśli <math>\{g_k\colon E\to D_k\mid k\in \omega\}</math> jest dowolną inną granicą, to zdefiniujmy <math>h\colon E\to D </math> jako <math>h(x) = (g_0(x), g_1(x), ...)</math>. Z definicji powyższej wynika, że dla każdego <math>k\in \omega</math> mamy $\pi_k \circ h = g_k</math>.  Zauważmy, że to świadczy o jednoznaczności
a więc projekcje są ciągłe. Po drugie, jeśli <math>\{g_k\colon E\to D_k\mid k\in \omega\}</math> jest dowolną inną granicą, to zdefiniujmy <math>h\colon E\to D</math> jako <math>h(x) = (g_0(x), g_1(x), ...)</math>. Z definicji powyższej wynika, że dla każdego <math>k\in \omega</math> mamy $\pi_k \circ h = g_k</math>.  Zauważmy, że to świadczy o jednoznaczności
wyboru <math>h</math>.  A zatem <math>D</math> jest granicą omawianego diagramu. Co więcej, z jednoznaczności granicy wnioskujemy, że <math>D\cong E </math>. QED
wyboru <math>h</math>.  A zatem <math>D</math> jest granicą omawianego diagramu. Co więcej, z jednoznaczności granicy wnioskujemy, że <math>D\cong E</math>. QED


Uwaga! Powyższe twierdzenie nie zachodzi dla klas dziedzin ciągłych i algebraicznych w ogólności. Aby granica była również posetem odpowiedniej klasy, musimy nałożyć poewne restrykcje zarówno na kształ diagramów, jak i na własności funkcji tworzących diagram.
Uwaga! Powyższe twierdzenie nie zachodzi dla klas dziedzin ciągłych i algebraicznych w ogólności. Aby granica była również posetem odpowiedniej klasy, musimy nałożyć poewne restrykcje zarówno na kształ diagramów, jak i na własności funkcji tworzących diagram.
Linia 33: Linia 33:
'''Twierdzenie'''. Rozważmy diagram <math>F</math>  w kategorii '''Dcpo''' taki, że:
'''Twierdzenie'''. Rozważmy diagram <math>F</math>  w kategorii '''Dcpo''' taki, że:


1. Wierzchołkami <math>F</math> są posety <math>D_0, D_1, D_2, ...</math>;  
1. Wierzchołkami <math>F</math> są posety <math>D_0, D_1, D_2, ..</math>.;  


2. Dla <math>n\leq m</math>  istnieją funkcje <math>e_{mn}\colon D_n\to D_m</math> i  <math>p_{nm}\colon D_m\to D_n</math>  tworzące parę e-p;
2. Dla <math>n\leq m</math>  istnieją funkcje <math>e_{mn}\colon D_n\to D_m</math> i  <math>p_{nm}\colon D_m\to D_n</math>  tworzące parę e-p;
Linia 42: Linia 42:
Zdefiniujmy:  
Zdefiniujmy:  


<math>D = \{ (x_0, x_1, ...)\mid (\forall n\leq m)(x_n=p_{nm}(x_m)) \},</math>
<math>D = \{ (x_0, x_1, ...)\mid (\forall n\leq m)(x_n=p_{nm}(x_m)) \}</math>


<math>p_m\colon D\to D_m,\ \ (x_0, x_1, ...)\mapsto x_m, \ m\in \omega</math>
<math>p_m\colon D\to D_m,\ \ (x_0, x_1, ...)\mapsto x_m, \ m\in \omega</math>


<math>e_m\colon D_m\to D, \ x\mapsto (\bigvee_{k\geq n,m} p_{nk}\circ e_{km}(x)\mid n\in \omega).</math>
<math>e_m\colon D_m\to D, \ x\mapsto (\bigvee_{k\geq n,m} p_{nk}\circ e_{km}(x)\mid n\in \omega)</math>.


Wtedy:
Wtedy:
Linia 59: Linia 59:
będzie dowolne i załóżmy, że <math>n\leq n'</math>. Mamy:
będzie dowolne i załóżmy, że <math>n\leq n'</math>. Mamy:


<math>p_{nn'}(y_{n'})  =  p_{nn'}(\bigvee_{k\geq n',m} p_{n'k}\circ e_{km}(x)) =  \bigvee_{k\geq n',m} p_{nn'}\circ p_{n'k}\circ e_{km}(x) = \bigvee_{k\geq n',m} p_{nk}\circ e_{km}(x)=  y_n.</math>
<math>p_{nn'}(y_{n'})  =  p_{nn'}(\bigvee_{k\geq n',m} p_{n'k}\circ e_{km}(x)) =  \bigvee_{k\geq n',m} p_{nn'}\circ p_{n'k}\circ e_{km}(x) = \bigvee_{k\geq n',m} p_{nk}\circ e_{km}(x)=  y_n</math>.


W dowodzie korzystaliśmy kolejno z: definicji <math>y_{n'}</math>, ciągłości <math>p_{nn'}</math>  i definicji <math>y_n</math>. A zatem <math>y = (y_0, y_1, ...)\in D</math>. Co więcej, funkcje <math>e_m</math>  są ciągłe, gdyż tylko funkcje ciągłe zostały użyte w ich definicji.
W dowodzie korzystaliśmy kolejno z: definicji <math>y_{n'}</math>, ciągłości <math>p_{nn'}</math>  i definicji <math>y_n</math>. A zatem <math>y = (y_0, y_1, ...)\in D</math>. Co więcej, funkcje <math>e_m</math>  są ciągłe, gdyż tylko funkcje ciągłe zostały użyte w ich definicji.
Linia 66: Linia 66:




<math>e_m\circ p_m (x_n\mid n\in \omega) = e_m(x_m) = (\bigvee_{k\geq n,m} p_{nk}\circ e_{km}(x_m)\mid n\in\omega)  = (\bigvee_{k\geq n,m} p_{nk}\circ e_{km} \circ p_{mk} (x_k)\mid n\in\omega) \subseteq (\bigvee_{k\geq n,m} p_{nk} (x_k)\mid n\in\omega) = (\bigvee_{k\geq n} p_{nk} (x_k)\mid n\in\omega) = (x_n\mid n\in\omega).</math>
<math>e_m\circ p_m (x_n\mid n\in \omega) = e_m(x_m) = (\bigvee_{k\geq n,m} p_{nk}\circ e_{km}(x_m)\mid n\in\omega)  = (\bigvee_{k\geq n,m} p_{nk}\circ e_{km} \circ p_{mk} (x_k)\mid n\in\omega) \subseteq (\bigvee_{k\geq n,m} p_{nk} (x_k)\mid n\in\omega) = (\bigvee_{k\geq n} p_{nk} (x_k)\mid n\in\omega) = (x_n\mid n\in\omega)</math>.


Ponadto, <math>p_m\circ e_m (x) = p_m (\bigvee_{k\geq n,m} p_{nk}\circ e_{km}(x)\mid n\in\omega ) =  \bigvee_{k\geq m} p_{mk}\circ e_{km}(x) = x</math>.
Ponadto, <math>p_m\circ e_m (x) = p_m (\bigvee_{k\geq n,m} p_{nk}\circ e_{km}(x)\mid n\in\omega ) =  \bigvee_{k\geq m} p_{mk}\circ e_{km}(x) = x</math>.
Linia 73: Linia 73:
te elementy ciągu <math>(x_n\mid n\in\omega)</math> gdzie <math>n\leq m</math>:
te elementy ciągu <math>(x_n\mid n\in\omega)</math> gdzie <math>n\leq m</math>:


<math>p_n(e_m\circ p_m (x_n\mid n\in \omega)) = ... = p_n(\bigvee_{k\geq n,m} p_{nk}\circ e_{km} \circ p_{mk} (x_k)\mid n\in\omega)  = p_n(\bigvee_{k\geq n,m} p_{nm}\circ p_{mk} \circ e_{km} \circ p_{mk} (x_k)\mid n\in\omega)  = p_n(\bigvee_{k\geq n,m} p_{nm}\circ  p_{mk} (x_k)\mid n\in\omega)  = p_n(\bigvee_{k\geq n} p_{nk} (x_k)\mid n\in\omega) = p_n(\bigvee_{k\geq n} x_n\mid n\in\omega) = p_n(x_n\mid n\in\omega) = x_n.</math>
<math>p_n(e_m\circ p_m (x_n\mid n\in \omega)) = ... = p_n(\bigvee_{k\geq n,m} p_{nk}\circ e_{km} \circ p_{mk} (x_k)\mid n\in\omega)  = p_n(\bigvee_{k\geq n,m} p_{nm}\circ p_{mk} \circ e_{km} \circ p_{mk} (x_k)\mid n\in\omega)  = p_n(\bigvee_{k\geq n,m} p_{nm}\circ  p_{mk} (x_k)\mid n\in\omega)  = p_n(\bigvee_{k\geq n} p_{nk} (x_k)\mid n\in\omega) = p_n(\bigvee_{k\geq n} x_n\mid n\in\omega) = p_n(x_n\mid n\in\omega) = x_n</math>.


To dowodzi, że <math>\bigvee_n e_n\circ p_n = 1_{D}</math>, czyli (5).
To dowodzi, że <math>\bigvee_n e_n\circ p_n = 1_{D}</math>, czyli (5).
Linia 79: Linia 79:
Korzystając z powyższego mamy też natychmiast:
Korzystając z powyższego mamy też natychmiast:


<math>h = 1_D\circ h = \bigvee_n E_n\circ p_n\circ h = \bigvee e_m \circ g_n,</math>
<math>h = 1_D\circ h = \bigvee_n E_n\circ p_n\circ h = \bigvee e_m \circ g_n</math>


co kończy dowód (6).
co kończy dowód (6).
Linia 85: Linia 85:
Do pokazania pozostała nam (7), czyli fakt, że <math>\{e_n\colon D_n\to D\}</math>  jest granicą odwrotną diagramu <math>F</math>  Jeśli <math>\{f_n\colon E\to D_n\}</math>  jest dowolną inną granicą, to sprawdźmy najpierw czy funkcja <math>f = \bigvee_n f_n\circ p_n</math>  jest dobrze zdefiniowana, tj. czy supremum jest nad zbiorem skierowanym. Ale tak jest, ponieważ dla <math>n\leq m</math>:
Do pokazania pozostała nam (7), czyli fakt, że <math>\{e_n\colon D_n\to D\}</math>  jest granicą odwrotną diagramu <math>F</math>  Jeśli <math>\{f_n\colon E\to D_n\}</math>  jest dowolną inną granicą, to sprawdźmy najpierw czy funkcja <math>f = \bigvee_n f_n\circ p_n</math>  jest dobrze zdefiniowana, tj. czy supremum jest nad zbiorem skierowanym. Ale tak jest, ponieważ dla <math>n\leq m</math>:


<math>f_n \circ p_n = f_m \circ e_{mn}\circ p_{nm}\circ p_m\sqsubseteq f_m\circ p_m.</math>
<math>f_n \circ p_n = f_m \circ e_{mn}\circ p_{nm}\circ p_m\sqsubseteq f_m\circ p_m</math>.


Co więcej,  
Co więcej,  


<math> f\circ e_m = \bigvee_{n\leq m} f_n\circ p_n\circ e_m = \bigvee_{n\leq m} f_n\circ p_n\circ e_n\circ e_{nm} = \bigvee_{n\leq m} f_n\circ e_{nm} = \bigvee_{n\leq m} f_m  = f_m. </math>
<math>f\circ e_m = \bigvee_{n\leq m} f_n\circ p_n\circ e_m = \bigvee_{n\leq m} f_n\circ p_n\circ e_n\circ e_{nm} = \bigvee_{n\leq m} f_n\circ e_{nm} = \bigvee_{n\leq m} f_m  = f_m.</math>


W końcu pokażemy, że funkcja <math>f</math>  o podanych własnościach jest
W końcu pokażemy, że funkcja <math>f</math>  o podanych własnościach jest
tylko jedna. Jeśli dla <math>f'\colon D\to E</math> zachodzi <math>f'\circ e_m = f_m</math>, to <math>f'\circ e_m \circ p_m = f_m\circ p_m</math>, a zatem <math>\bigvee_m f'\circ e_m \circ p_m = \bigvee_m f_m\circ p_m,</math> czyli z ciągłości <math>f'</math>: <math>f'(\bigvee_m \circ e_m \circ p_m) = \bigvee_m f_m\circ p_m.</math> Ale <math>\bigvee_m \circ e_m \circ p_m = 1_D</math>  oraz <math>\bigvee_m f_m\circ p_m = f</math>  co daje <math>f'\circ 1_D = f</math>  czyli <math>f'=f</math>. QED.
tylko jedna. Jeśli dla <math>f'\colon D\to E</math> zachodzi <math>f'\circ e_m = f_m</math>, to <math>f'\circ e_m \circ p_m = f_m\circ p_m</math>, a zatem <math>\bigvee_m f'\circ e_m \circ p_m = \bigvee_m f_m\circ p_m</math> czyli z ciągłości <math>f'</math>: <math>f'(\bigvee_m \circ e_m \circ p_m) = \bigvee_m f_m\circ p_m</math>. Ale <math>\bigvee_m \circ e_m \circ p_m = 1_D</math>  oraz <math>\bigvee_m f_m\circ p_m = f</math>  co daje <math>f'\circ 1_D = f</math>  czyli <math>f'=f</math>. QED.


== Kategoria <math>\mathrm{Dcpo}^{EP}_{\bot}</math> ==
== Kategoria <math>\mathrm{Dcpo}^{EP}_{\bot}</math> ==
Linia 99: Linia 99:
pary e-p, o których była mowa na początku wykładu ???. Złożenie morfizmów
pary e-p, o których była mowa na początku wykładu ???. Złożenie morfizmów


[DIAGRAM]
[[Grafika:Diag13.1.png]]


definiujemy w naturalny sposób jako morfizm
definiujemy w naturalny sposób jako morfizm


[DIAGRAM]
[[Grafika:Diag13.2.png]]


Czy <math>(e_2\circ e_1, p_1\circ p_2)</math>  jest parą e-p? Tak, ponieważ: <math>e_2\circ e_1\circ p_1\circ p_2 \sqsubseteq e_2\circ 1_E\circ p_2 = e_2\circ p_2\sqsubseteq 1_F</math> oraz <math>p_1\circ p_2\circ e_2\circ e_1 = p_1\circ 1_E\circ e_1 = p_1\circ e_1 = 1_D.</math> A zatem złożenie par e-p jest dobrze zdefiniowane, a co za tym idzie, i co łatwo już teraz pokazać, <math>Dcpo^{EP}_{\bot}</math>  jest kategorią.
Czy <math>(e_2\circ e_1, p_1\circ p_2)</math>  jest parą e-p? Tak, ponieważ: <math>e_2\circ e_1\circ p_1\circ p_2 \sqsubseteq e_2\circ 1_E\circ p_2 = e_2\circ p_2\sqsubseteq 1_F</math> oraz <math>p_1\circ p_2\circ e_2\circ e_1 = p_1\circ 1_E\circ e_1 = p_1\circ e_1 = 1_D</math>. A zatem złożenie par e-p jest dobrze zdefiniowane, a co za tym idzie, i co łatwo już teraz pokazać, <math>Dcpo^{EP}_{\bot}</math>  jest kategorią.


'''Definicja'''. Nazwijmy '''<math>\omega</math>-kategorią''' każdą kategorię, w której diagram postaci
'''Definicja'''. Nazwijmy '''<math>\omega</math>-kategorią''' każdą kategorię, w której diagram postaci


[DIAGRAM]
[[Grafika:Diag13.3.png]]


posiada granicę odwrotną.
posiada granicę odwrotną.
Linia 119: Linia 119:
'''Definicja'''. Funktor <math>F</math>  między <math>\omega</math>-kategoriami nazywamy '''ciągłym''', jeśli zachowuje granice odwrotne, t.j. jeśli <math>D_{\infty}</math>  jest granicą diagramu ???, to <math>F(D_{\infty})</math> jest granicą diagramu
'''Definicja'''. Funktor <math>F</math>  między <math>\omega</math>-kategoriami nazywamy '''ciągłym''', jeśli zachowuje granice odwrotne, t.j. jeśli <math>D_{\infty}</math>  jest granicą diagramu ???, to <math>F(D_{\infty})</math> jest granicą diagramu


[DIAGRAM]
[[Grafika:Diag13.4.png]]


'''Lemat'''. Niech <math>\mathbf{A}</math>  będzie <math>\omega</math>-kategorią, <math>F\colon \mathbf{A}\to \mathbf{A}</math>  funktorem ciągłym, <math>f\colon A\to F(A)</math>  morfizmem w <math>\mathbf{A}</math>  oraz niech diagram
'''Lemat'''. Niech <math>\mathbf{A}</math>  będzie <math>\omega</math>-kategorią, <math>F\colon \mathbf{A}\to \mathbf{A}</math>  funktorem ciągłym, <math>f\colon A\to F(A)</math>  morfizmem w <math>\mathbf{A}</math>  oraz niech diagram


[DIAGRAM]
[[Grafika:Diag13.5.png]]
 


posiada granicę odwrotną <math>D_{\infty}</math>. Wówczas <math>D_{\infty}\cong F(D_{\infty})</math>.
posiada granicę odwrotną <math>D_{\infty}</math>. Wówczas <math>D_{\infty}\cong F(D_{\infty})</math>.
Linia 131: Linia 132:
???, to
???, to


[DIAGRAM]
[[Grafika:Diag13.6.png]]


komutuje. W szczególności
komutuje. W szczególności


[DIAGRAM]
[[Grafika:Diag13.7.png]]


komutuje i jak łatwo zauważyć <math>D_{\infty}</math>  jest jego granicą. Ale
komutuje i jak łatwo zauważyć <math>D_{\infty}</math>  jest jego granicą. Ale
z ciągłości <math>F</math> mamy, że diagram
z ciągłości <math>F</math> mamy, że diagram


[DIAGRAM]
[[Grafika:Diag13.8.png]]


komutuje i <math>F(D_{\infty})</math> jest jego granicą. A zatem <math>D_{\infty}
komutuje i <math>F(D_{\infty})</math> jest jego granicą. A zatem <math>D_{\infty}
Linia 146: Linia 147:


'''Przykład'''. Przekątna <math>\Delta\colon \mathbf{Dcpo}\to \mathbf{Dcpo}\times \mathbf{Dcpo}</math>, <math>a\mapsto (a,a)</math>; <math>f\mapsto (f,f)</math>  dla <math>a\in \mathbf{Dcpo}_0</math>  <math>f\in \mathbf{Dcpo}_1</math> jest ciągłym funktorem.
'''Przykład'''. Przekątna <math>\Delta\colon \mathbf{Dcpo}\to \mathbf{Dcpo}\times \mathbf{Dcpo}</math>, <math>a\mapsto (a,a)</math>; <math>f\mapsto (f,f)</math>  dla <math>a\in \mathbf{Dcpo}_0</math>  <math>f\in \mathbf{Dcpo}_1</math> jest ciągłym funktorem.


== Lokalna ciągłość funktorów ==
== Lokalna ciągłość funktorów ==
Linia 152: Linia 152:
Ciągłość funktora jest często niełatwa do sprawdzenia. Na szczęście istnieje własność ''mocniejsza'', która jest łatwiej weryfikowalna: lokalna ciągłość.
Ciągłość funktora jest często niełatwa do sprawdzenia. Na szczęście istnieje własność ''mocniejsza'', która jest łatwiej weryfikowalna: lokalna ciągłość.


'''Definicja'''. Funktor <math>F\colon \mathcal{D}\to \mathcal{E}</math> pomiędzy kategoriami posetów <math>\mathcal{D}, \mathcal{E}</math>  jest {\em lokalnie ciągły} jeśli przekształcenia <math>f\mapsto F(f)</math>  typu <math>\mathrm{Hom}(D,D')\to \mathrm{Hom}(F(D),F(D'))</math>  są ciągłe w sensie Scotta dla każdej pary obiektów <math>D,D'\in \mathcal{D}_0</math>.
'''Definicja'''. Funktor <math>F\colon \mathcal{D}\to \mathcal{E}</math> pomiędzy kategoriami posetów <math>\mathcal{D}, \mathcal{E}</math>  jest \mathit{ lokalnie ciągły} jeśli przekształcenia <math>f\mapsto F(f)</math>  typu <math>\mathrm{Hom}(D,D')\to \mathrm{Hom}(F(D),F(D'))</math>  są ciągłe w sensie Scotta dla każdej pary obiektów <math>D,D'\in \mathcal{D}_0</math>.


Dla przykładu przeczytajmy tę definicję dla bifunktora <math>F\colon \mathbf{Dcpo}^{op}\times \mathbf{Dcpo}\to \mathbf{Dcpo}</math>: funktor <math>F</math>  jest lokalnie ciągły, jeśli dla dowolnych zbiorów skierowanych <math>A\subseteq [D_2\to D_1]</math> i <math>B\subseteq [D_3\to D_4]</math>, gdzie <math>D_1, ..., D_4\in \mathbf{Dcpo}_0</math> mamy <math>F(\bigvee A, \bigvee B) = \bigvee_{f\in A, g\in G} F(f,g).</math> Zauważmy, że supremum po prawej stronie istnieje w <math>[F(D_1,D_3)\to F(D_2, D_4)]</math>.   
Dla przykładu przeczytajmy tę definicję dla bifunktora <math>F\colon \mathbf{Dcpo}^{op}\times \mathbf{Dcpo}\to \mathbf{Dcpo}</math>: funktor <math>F</math>  jest lokalnie ciągły, jeśli dla dowolnych zbiorów skierowanych <math>A\subseteq [D_2\to D_1]</math> i <math>B\subseteq [D_3\to D_4]</math>, gdzie <math>D_1, ..., D_4\in \mathbf{Dcpo}_0</math> mamy <math>F(\bigvee A, \bigvee B) = \bigvee_{f\in A, g\in G} F(f,g)</math>. Zauważmy, że supremum po prawej stronie istnieje w <math>[F(D_1,D_3)\to F(D_2, D_4)]</math>.   


'''Przykład'''. Eksponent <math>[\_\to \_]\colon\mathbf{Dcpo}^{op}\times \mathbf{Dcpo}\to \mathbf{Dcpo}</math> jest lokalnie ciągły, ponieważ <math>[f\to g] = curry(g\circ ev\circ (1\times f))</math>  jest złożeniem funkcji ciągłych w sensie Scotta.
'''Przykład'''. Eksponent <math>[\_\to \_]\colon\mathbf{Dcpo}^{op}\times \mathbf{Dcpo}\to \mathbf{Dcpo}</math> jest lokalnie ciągły, ponieważ <math>[f\to g] = curry(g\circ ev\circ (1\times f))</math>  jest złożeniem funkcji ciągłych w sensie Scotta.
Linia 164: Linia 164:
Dowód: Połóżmy <math>\widehat{F}(a,b) = F(a,b)</math>, gdzie <math>a,b</math> są posetami ciągłymi z elementami najmniejszymi. Rozważmy pary e-p:
Dowód: Połóżmy <math>\widehat{F}(a,b) = F(a,b)</math>, gdzie <math>a,b</math> są posetami ciągłymi z elementami najmniejszymi. Rozważmy pary e-p:


[DIAGRAM]
[[Grafika:Diag13.9.png]]


Możemy wówczas stworzyć diagram
Możemy wówczas stworzyć diagram


[DIAGRAM]
[[Grafika:Diag13.10.png]]


i para morfizmów powyżej jest parą e-p. Rzeczywiście: <math>F(e,s)\circ F(p,j) = F(p\circ e, s\circ j) = F(1_a, 1_b) = 1_{F(a,b))}.</math> Wykorzystaliśmy kolejno: kontrawariantność <math>F</math> dla pierwszego argumentu, własności par e-p i definicję funktora. Ponadto,
i para morfizmów powyżej jest parą e-p. Rzeczywiście: <math>F(e,s)\circ F(p,j) = F(p\circ e, s\circ j) = F(1_a, 1_b) = 1_{F(a,b))}</math>. Wykorzystaliśmy kolejno: kontrawariantność <math>F</math> dla pierwszego argumentu, własności par e-p i definicję funktora. Ponadto,
<math>F(p,j)\circ F(e,s)  = F(e\circ p, j\circ s) \sqsubseteq F(1_{a'}, 1_{b'}) = 1_{F(a',b')}.</math>
<math>F(p,j)\circ F(e,s)  = F(e\circ p, j\circ s) \sqsubseteq F(1_{a'}, 1_{b'}) = 1_{F(a',b')}</math>.
Wykorzystaliśmy kolejno: definicję funktora, monotoniczność <math>F</math>, która wynika z lokalnej ciągłości i w końcu definicję <math>F</math> jeszcze raz.
Wykorzystaliśmy kolejno: definicję funktora, monotoniczność <math>F</math>, która wynika z lokalnej ciągłości i w końcu definicję <math>F</math> jeszcze raz.


Zdefiniujmy zatem <math>\widehat{F}((e,p),(j,s)) = (F(p,j),F(e,s))</math>. Oczywiście,\ <math>\widehat{F}</math>  jest funktorem. Aby pokazać ciągłość, załóżmy, że mamy w <math>Dcpo^{EP}_{\bot}\times Dcpo^{EP}_{\bot}</math>  diagram
Zdefiniujmy zatem <math>\widehat{F}((e,p),(j,s)) = (F(p,j),F(e,s))</math>. Oczywiście,\ <math>\widehat{F}</math>  jest funktorem. Aby pokazać ciągłość, załóżmy, że mamy w <math>Dcpo^{EP}_{\bot}\times Dcpo^{EP}_{\bot}</math>  diagram


<math>(A_1,B_1)\to  (A_2,B_2)\to (A_3,B_3)\to...,</math>
<math>(A_1,B_1)\to  (A_2,B_2)\to (A_3,B_3)\to...</math>


który ma granicę odwrotną <math>(D,E)</math>. A to znaczy, że w <math>\mathbf{Dcpo}</math> mamy
który ma granicę odwrotną <math>(D,E)</math>. A to znaczy, że w <math>\mathbf{Dcpo}</math> mamy
dwa diagramy:
dwa diagramy:


<math>A_1\to A_2\to A_3\to...</math>
<math>A_1\to A_2\to A_3\to..</math>.


i
i


<math>B_1\to B_2\to B_3\to...,</math>
<math>B_1\to B_2\to B_3\to...</math>


których granicami są odpowienio <math>D</math> i <math>E</math>  Z twierdzenia o koincydencji granicy prostej i odwrotnej (Twierdzenie ???) wiemy, że zachodzi <math>1_D = \bigvee_n e_n\circ p_n</math>  oraz <math>1_E = \bigvee_n j_n\circ s_n</math>, a więc <math>1_{(D,e)} = \bigvee (e_n\circ p_n, j_n\circ s_n)</math>. Aplikując lokalną ciągłość <math>F</math>  do ostatniej równości mamy
których granicami są odpowienio <math>D</math> i <math>E</math>  Z twierdzenia o koincydencji granicy prostej i odwrotnej (Twierdzenie ???) wiemy, że zachodzi <math>1_D = \bigvee_n e_n\circ p_n</math>  oraz <math>1_E = \bigvee_n j_n\circ s_n</math>, a więc <math>1_{(D,e)} = \bigvee (e_n\circ p_n, j_n\circ s_n)</math>. Aplikując lokalną ciągłość <math>F</math>  do ostatniej równości mamy


<math>1_{\widehat{F}(D,E)} = \widehat{F}(1_{(D,e)}) = (F(1_D,1_E),F(1_D,1_E)) = \bigvee (F(e_n\circ p_n, j_n\circ s_n),F(e_n\circ p_n, j_n\circ s_n)).</math>
<math>1_{\widehat{F}(D,E)} = \widehat{F}(1_{(D,e)}) = (F(1_D,1_E),F(1_D,1_E)) = \bigvee (F(e_n\circ p_n, j_n\circ s_n),F(e_n\circ p_n, j_n\circ s_n))</math>.


Ale Twierdzenie ??? mówi, że ostatnia równość charakteryzuje granicę odwrotną diagramu w <math>Dcpo^{EP}_{\bot}</math>:
Ale Twierdzenie ??? mówi, że ostatnia równość charakteryzuje granicę odwrotną diagramu w <math>Dcpo^{EP}_{\bot}</math>:


<math>\widehat{F}(A_1,B_1)\to \widehat{F}(A_2,B_2)\to \widehat{F}(A_3,B_3)\to ...</math>
<math>\widehat{F}(A_1,B_1)\to \widehat{F}(A_2,B_2)\to \widehat{F}(A_3,B_3)\to ..</math>.


a zatem <math>\widehat{F}(D,E)=F(D,E)</math> jest tą szukaną granicą odwrotną, co należało pokazać. QED.
a zatem <math>\widehat{F}(D,E)=F(D,E)</math> jest tą szukaną granicą odwrotną, co należało pokazać. QED.
Linia 201: Linia 201:
Zgodnie z poprzednim twierdzeniem możemy zdefiniować Eksponent <math>Exp\colon Dcpo^{EP}_{\bot}\times Dcpo^{EP}_{\bot} \to Dcpo^{EP}_{\bot}</math>  jako <math>\widehat{[\_\to\_ ]}</math>, który jest ciągły (ponieważ eksponent <math>[\_\to\_ ]</math>  jest lokalnie ciągły). Rozważmy złożenie:
Zgodnie z poprzednim twierdzeniem możemy zdefiniować Eksponent <math>Exp\colon Dcpo^{EP}_{\bot}\times Dcpo^{EP}_{\bot} \to Dcpo^{EP}_{\bot}</math>  jako <math>\widehat{[\_\to\_ ]}</math>, który jest ciągły (ponieważ eksponent <math>[\_\to\_ ]</math>  jest lokalnie ciągły). Rozważmy złożenie:


[DIAGRAM]
[[Grafika:Diag13.11.png]]


Definiuje ono funktor ciągły <math>F</math> (jako złożenie dwóch funktorów ciągłych). Jak on działa? Rozważmy parę:
Definiuje ono funktor ciągły <math>F</math> (jako złożenie dwóch funktorów ciągłych). Jak on działa? Rozważmy parę:


[DIAGRAM]
[[Grafika:Diag13.12.png]]


Mamy <math>F(P) = Exp\circ \Delta(P) = Exp(P,P) = [\_\to\_ ](P,P) = [P\to P]</math>  Podobnie <math>F(Q) = [Q\to Q]</math>  Działanie na morfizmach:
Mamy <math>F(P) = Exp\circ \Delta(P) = Exp(P,P) = [\_\to\_ ](P,P) = [P\to P]</math>  Podobnie <math>F(Q) = [Q\to Q]</math>  Działanie na morfizmach:


<math>F(e,p) = Exp((e,p),(e,p))  = ([\_\to\_ ](p,e), [\_\to\_ ](e,p)) = ([p\to e], [e\to p]).</math>
<math>F(e,p) = Exp((e,p),(e,p))  = ([\_\to\_ ](p,e), [\_\to\_ ](e,p)) = ([p\to e], [e\to p])</math>.


A zatem otrzymujemy:
A zatem otrzymujemy:


[DIAGRAM]
[[Grafika:Diag13.13.png]]


Wiemy już, że para funkcji powyżej tworzy parę e-p! Przypomnijmy jeszcze raz jak działają funkcje <math>[p\to e]</math>  i <math>[e\to p]</math> na elementy z odpowiednio <math>[P\to P]</math>  i <math>[Q\to Q]</math>: przykładowo, dla <math>f\in [P\to P]</math>  mamy dla <math>q\in Q</math>
Wiemy już, że para funkcji powyżej tworzy parę e-p! Przypomnijmy jeszcze raz jak działają funkcje <math>[p\to e]</math>  i <math>[e\to p]</math> na elementy z odpowiednio <math>[P\to P]</math>  i <math>[Q\to Q]</math>: przykładowo, dla <math>f\in [P\to P]</math>  mamy dla <math>q\in Q</math>


<math>[p\to e](f)(q) = curry(e\circ ev\circ (1\times p))(f)(q)  = (e\circ ev\circ (1\times p))(f,q) = e(ev((f,p(q)))) = e(f(p(q))) = e\circ f\circ p (q),</math>
<math>[p\to e](f)(q) = curry(e\circ ev\circ (1\times p))(f)(q)  = (e\circ ev\circ (1\times p))(f,q) = e(ev((f,p(q)))) = e(f(p(q))) = e\circ f\circ p (q)</math>


to znaczy <math>[p\to e](f) = e\circ f\circ p</math>  Podobnie <math>[e\to p](g) = p\circ g\circ e</math>  dla <math>g\in [Q\to Q]</math>.   
to znaczy <math>[p\to e](f) = e\circ f\circ p</math>  Podobnie <math>[e\to p](g) = p\circ g\circ e</math>  dla <math>g\in [Q\to Q]</math>.   
Linia 227: Linia 227:
'''Twierdzenie (Dana Scott)'''. Niech <math>P</math> będzie posetem zupełnym z elementem najmniejszym <math>\bot</math>. Zdefiniujmy diagram w <math>\mathbf{Dcpo}</math>  jak następuje:
'''Twierdzenie (Dana Scott)'''. Niech <math>P</math> będzie posetem zupełnym z elementem najmniejszym <math>\bot</math>. Zdefiniujmy diagram w <math>\mathbf{Dcpo}</math>  jak następuje:


[DIAGRAM]
[[Grafika:Diag13.14.png]]


gdzie
gdzie
Linia 241: Linia 241:
Niech <math>D_{\infty}</math> będzie granicą diagramu  
Niech <math>D_{\infty}</math> będzie granicą diagramu  


[DIAGRAM]
[[Grafika:Diag13.15a.png]]


w <math>\mathbf{Dcpo}</math>. Wówczas <math>D_{\infty}\cong [D_{\infty}\to D_{\infty}]</math>.
w <math>\mathbf{Dcpo}</math>. Wówczas <math>D_{\infty}\cong [D_{\infty}\to D_{\infty}]</math>.

Aktualna wersja na dzień 22:18, 11 wrz 2023

Twierdzenie o istnieniu granic w Dcpo

Udowodnijmy teraz podstawowe twierdzenie na temat diagramów w kategorii Dcpo.

Twierdzenie. W Dcpo istnieją granice dowolnych diagramów.

Dowód: Dowód przeprowadzimy dla szczególnego diagramu:

(Dowód ogólny jest analogiczny lecz wymaga bardziej technicznego zapisu, wiec go pominiemy.) Pokażemy, że granica powyższego diagramu jest dana jako

D={(x0,x1,...)(nω)(fn(xn+1)=xn)}.

Zauważmy, że zbiór D jest posetem, w którym elementy są uporządkowane po współrzędnych (to znaczy, że porządek jest dziedziczony z produktu ΠnωDn. Jeśli GD jest zbiorem skierowanym, to dla każdego nωzbiór πn[G]={xnxG}jest skierowanym podzbiorem Dn. Niech yn={xnxG}. Z ciągłości funkcji tworzących diagram mamy: fn(yn+1)=fn({xn+1xG})={xnxG}=yn. To znaczy, że (y0,y1,...)D i, jak łatwo zauważyć, element ten jest supremum skierowanym zbioru G. Pokazaliśmy więc, że D Dcpo.

Udowodnimy teraz, że D wraz z projekcjami {πn:DDnnω} jest granicą. Po pierwsze, dla GD mamy

πn(G)=yn={xnxG}=πn[G]

a więc projekcje są ciągłe. Po drugie, jeśli {gk:EDkkω} jest dowolną inną granicą, to zdefiniujmy h:ED jako h(x)=(g0(x),g1(x),...). Z definicji powyższej wynika, że dla każdego kω mamy $\pi_k \circ h = g_k</math>. Zauważmy, że to świadczy o jednoznaczności wyboru h. A zatem D jest granicą omawianego diagramu. Co więcej, z jednoznaczności granicy wnioskujemy, że DE. QED

Uwaga! Powyższe twierdzenie nie zachodzi dla klas dziedzin ciągłych i algebraicznych w ogólności. Aby granica była również posetem odpowiedniej klasy, musimy nałożyć poewne restrykcje zarówno na kształ diagramów, jak i na własności funkcji tworzących diagram.

Twierdzenie o zgodności granicy prostej i odwrotnej

Przedstawimy teraz twierdzenie o zgodności granicy prostej i odwrotnej pewnych szczególnych diagramów w kategorii posetów zupełnych. Wynik ten jest znany w literaturze angielskojęzycznej jako limit-colimt coincidence i jest jednym z kamieni milowych w teorii dziedzin. Twierdzenie to wykorzystuje się przede wszystkim przy rozwiązywaniu tak zwanych rekursywnych równań dziedzinowych (ang. recursive domain equations). Przykładem takiego równania jest D[DD]. Okazuje się, że jego nietrywialne rozwiązania istnieja! Tak więc istnieją posety, które są izomorficzne z przestrzenią swoich ciągłych endofunkcji! Jeden z takich częściowych porządków skonstruujemy poniżej, pod koniec wykładu.

Twierdzenie. Rozważmy diagram F w kategorii Dcpo taki, że:

1. Wierzchołkami F są posety D0,D1,D2,...;

2. Dla nm istnieją funkcje emn:DnDm i pnm:DmDn tworzące parę e-p; 3. Dla każdego nω mamy enn=1Dn;

4. Dla nmk mamy ekn=ekmemn oraz pnk=pnmpmk.

Zdefiniujmy:

D={(x0,x1,...)(nm)(xn=pnm(xm))}

pm:DDm,  (x0,x1,...)xm, mω

em:DmD, x(kn,mpnkekm(x)nω).

Wtedy:

5. Para (em,pm) jest parą e-p i zachodzi nωenpn=1D,

6.{pn:DDn} jest granicą diagramu F. Jeśli {gn:CDn} jest dowolną inną granicą, to izmorfizm h:CD jest dany jako h(x)=(gn(x)nω) lub h=nengn;

7.{en:DnD} jest granicą odwrotną diagramu F. Jeśli {fn:EDn} jest dowolną inną granicą, to izmorfizm f:DE jest dany jako f(xnnω)=nfn(xn) lub f=nfnpn.

Dowód: W Twierdzeniu ??? pokazaliśmy już, że granicą diagramu jest {pn:DDn} i że izomorfizm h:CD ma (pierwszą z) postulowanych postaci. Pokażmy teraz, że funkcje em są dobrze zdefiniowane, tj. że y=em(x) należy do D dla dowolnego mω. Niech m będzie dowolne i załóżmy, że nn. Mamy:

pnn(yn)=pnn(kn,mpnkekm(x))=kn,mpnnpnkekm(x)=kn,mpnkekm(x)=yn.

W dowodzie korzystaliśmy kolejno z: definicji yn, ciągłości pnn i definicji yn. A zatem y=(y0,y1,...)D. Co więcej, funkcje em są ciągłe, gdyż tylko funkcje ciągłe zostały użyte w ich definicji.

Przejdźmy do dowodu (5). Niech mω. Mamy:


empm(xnnω)=em(xm)=(kn,mpnkekm(xm)nω)=(kn,mpnkekmpmk(xk)nω)(kn,mpnk(xk)nω)=(knpnk(xk)nω)=(xnnω).

Ponadto, pmem(x)=pm(kn,mpnkekm(x)nω)=kmpmkekm(x)=x.

Bliższa analiza pokazuje, że empm pozostawi niezmienione te elementy ciągu (xnnω) gdzie nm:

pn(empm(xnnω))=...=pn(kn,mpnkekmpmk(xk)nω)=pn(kn,mpnmpmkekmpmk(xk)nω)=pn(kn,mpnmpmk(xk)nω)=pn(knpnk(xk)nω)=pn(knxnnω)=pn(xnnω)=xn.

To dowodzi, że nenpn=1D, czyli (5).

Korzystając z powyższego mamy też natychmiast:

h=1Dh=nEnpnh=emgn

co kończy dowód (6).

Do pokazania pozostała nam (7), czyli fakt, że {en:DnD} jest granicą odwrotną diagramu F Jeśli {fn:EDn} jest dowolną inną granicą, to sprawdźmy najpierw czy funkcja f=nfnpn jest dobrze zdefiniowana, tj. czy supremum jest nad zbiorem skierowanym. Ale tak jest, ponieważ dla nm:

fnpn=fmemnpnmpmfmpm.

Co więcej,

fem=nmfnpnem=nmfnpnenenm=nmfnenm=nmfm=fm.

W końcu pokażemy, że funkcja f o podanych własnościach jest tylko jedna. Jeśli dla f:DE zachodzi fem=fm, to fempm=fmpm, a zatem mfempm=mfmpm czyli z ciągłości f: f(mempm)=mfmpm. Ale mempm=1D oraz mfmpm=f co daje f1D=f czyli f=f. QED.

Kategoria DcpoEP

W tej kategorii obiektami są posety zupełne posiadające element najmniejszy, zaś morfizmami są pary e-p, o których była mowa na początku wykładu ???. Złożenie morfizmów

definiujemy w naturalny sposób jako morfizm

Czy (e2e1,p1p2) jest parą e-p? Tak, ponieważ: e2e1p1p2e21Ep2=e2p21F oraz p1p2e2e1=p11Ee1=p1e1=1D. A zatem złożenie par e-p jest dobrze zdefiniowane, a co za tym idzie, i co łatwo już teraz pokazać, DcpoEP jest kategorią.

Definicja. Nazwijmy ω-kategorią każdą kategorię, w której diagram postaci

posiada granicę odwrotną.


Zauważmy, że twierdzenie o zgodności granicy prostej i odwrotnej (Twierdzenie ???) mówi, że DcpoEP jest ω-kategorią!

Definicja. Funktor F między ω-kategoriami nazywamy ciągłym, jeśli zachowuje granice odwrotne, t.j. jeśli D jest granicą diagramu ???, to F(D) jest granicą diagramu

Lemat. Niech 𝐀 będzie ω-kategorią, F:𝐀𝐀 funktorem ciągłym, f:AF(A) morfizmem w 𝐀 oraz niech diagram


posiada granicę odwrotną D. Wówczas DF(D).


Dowód: Skoro D jest granicą odwrotną diagramu ???, to

komutuje. W szczególności

komutuje i jak łatwo zauważyć D jest jego granicą. Ale z ciągłości F mamy, że diagram

komutuje i F(D) jest jego granicą. A zatem DF(D) wynika z Lematu ???. QED.

Przykład. Przekątna Δ:𝐃𝐜𝐩𝐨𝐃𝐜𝐩𝐨×𝐃𝐜𝐩𝐨, a(a,a); f(f,f) dla a𝐃𝐜𝐩𝐨0 f𝐃𝐜𝐩𝐨1 jest ciągłym funktorem.

Lokalna ciągłość funktorów

Ciągłość funktora jest często niełatwa do sprawdzenia. Na szczęście istnieje własność mocniejsza, która jest łatwiej weryfikowalna: lokalna ciągłość.

Definicja. Funktor F:𝒟 pomiędzy kategoriami posetów 𝒟, jest \mathit{ lokalnie ciągły} jeśli przekształcenia fF(f) typu Hom(D,D)Hom(F(D),F(D)) są ciągłe w sensie Scotta dla każdej pary obiektów D,D𝒟0.

Dla przykładu przeczytajmy tę definicję dla bifunktora F:𝐃𝐜𝐩𝐨op×𝐃𝐜𝐩𝐨𝐃𝐜𝐩𝐨: funktor F jest lokalnie ciągły, jeśli dla dowolnych zbiorów skierowanych A[D2D1] i B[D3D4], gdzie D1,...,D4𝐃𝐜𝐩𝐨0 mamy F(A,B)=fA,gGF(f,g). Zauważmy, że supremum po prawej stronie istnieje w [F(D1,D3)F(D2,D4)].

Przykład. Eksponent [__]:𝐃𝐜𝐩𝐨op×𝐃𝐜𝐩𝐨𝐃𝐜𝐩𝐨 jest lokalnie ciągły, ponieważ [fg]=curry(gev(1×f)) jest złożeniem funkcji ciągłych w sensie Scotta.

Lemat. Niech funktor F:𝐃𝐜𝐩𝐨op×𝐃𝐜𝐩𝐨𝐃𝐜𝐩𝐨 będzie lokalnie ciągły. Wtedy istnieje ciągły funktor F^:DcpoEP×DcpoEPDcpoEP którego działanie na obiekty jest takie samo, jak funktora F.

Dowód: Połóżmy F^(a,b)=F(a,b), gdzie a,b są posetami ciągłymi z elementami najmniejszymi. Rozważmy pary e-p:

Możemy wówczas stworzyć diagram

i para morfizmów powyżej jest parą e-p. Rzeczywiście: F(e,s)F(p,j)=F(pe,sj)=F(1a,1b)=1F(a,b)). Wykorzystaliśmy kolejno: kontrawariantność F dla pierwszego argumentu, własności par e-p i definicję funktora. Ponadto, F(p,j)F(e,s)=F(ep,js)F(1a,1b)=1F(a,b). Wykorzystaliśmy kolejno: definicję funktora, monotoniczność F, która wynika z lokalnej ciągłości i w końcu definicję F jeszcze raz.

Zdefiniujmy zatem F^((e,p),(j,s))=(F(p,j),F(e,s)). Oczywiście,\ F^ jest funktorem. Aby pokazać ciągłość, załóżmy, że mamy w DcpoEP×DcpoEP diagram

(A1,B1)(A2,B2)(A3,B3)...

który ma granicę odwrotną (D,E). A to znaczy, że w 𝐃𝐜𝐩𝐨 mamy dwa diagramy:

A1A2A3...

i

B1B2B3...

których granicami są odpowienio D i E Z twierdzenia o koincydencji granicy prostej i odwrotnej (Twierdzenie ???) wiemy, że zachodzi 1D=nenpn oraz 1E=njnsn, a więc 1(D,e)=(enpn,jnsn). Aplikując lokalną ciągłość F do ostatniej równości mamy

1F^(D,E)=F^(1(D,e))=(F(1D,1E),F(1D,1E))=(F(enpn,jnsn),F(enpn,jnsn)).

Ale Twierdzenie ??? mówi, że ostatnia równość charakteryzuje granicę odwrotną diagramu w DcpoEP:

F^(A1,B1)F^(A2,B2)F^(A3,B3)...

a zatem F^(D,E)=F(D,E) jest tą szukaną granicą odwrotną, co należało pokazać. QED.

Twierdzenie Scotta

Zgodnie z poprzednim twierdzeniem możemy zdefiniować Eksponent Exp:DcpoEP×DcpoEPDcpoEP jako [__]^, który jest ciągły (ponieważ eksponent [__] jest lokalnie ciągły). Rozważmy złożenie:

Definiuje ono funktor ciągły F (jako złożenie dwóch funktorów ciągłych). Jak on działa? Rozważmy parę:

Mamy F(P)=ExpΔ(P)=Exp(P,P)=[__](P,P)=[PP] Podobnie F(Q)=[QQ] Działanie na morfizmach:

F(e,p)=Exp((e,p),(e,p))=([__](p,e),[__](e,p))=([pe],[ep]).

A zatem otrzymujemy:

Wiemy już, że para funkcji powyżej tworzy parę e-p! Przypomnijmy jeszcze raz jak działają funkcje [pe] i [ep] na elementy z odpowiednio [PP] i [QQ]: przykładowo, dla f[PP] mamy dla qQ

[pe](f)(q)=curry(eev(1×p))(f)(q)=(eev(1×p))(f,q)=e(ev((f,p(q))))=e(f(p(q)))=efp(q)

to znaczy [pe](f)=efp Podobnie [ep](g)=pge dla g[QQ].

Zauważmy w końcu, że dla dowolnego posetu zupełnego P, jeśli jako e:PF(P) weźmiemy funkcję yλx.y, zaś jako p:F(P)P weźmiemy funkcję ff(), to para (e,p) jest parą e-p typu PF(P).

A zatem otrzymujemy końcowy wniosek:

Twierdzenie (Dana Scott). Niech P będzie posetem zupełnym z elementem najmniejszym . Zdefiniujmy diagram w 𝐃𝐜𝐩𝐨 jak następuje:

gdzie

1. D0=P; Dn+1=[DnDn]

2. e0:P[PP] jest funkcją λy.λx.y; p0:[PP]P jest funkcją λf.f().

3.en+1:[DnDn]=Dn+1[Dn+1Dn+1] jest funkcją λf.enfpn; pn+1:[Dn+1Dn+1][DnDn] jest funkcją λg.pngen.


Niech D będzie granicą diagramu

w 𝐃𝐜𝐩𝐨. Wówczas D[DD].