Teoria kategorii dla informatyków/Wykład 14: Teoria dziedzin III

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Z poprzedniego wykładu wiemy, że 𝐃𝐜𝐩𝐨 - kategoria wszystkich dcpo wraz z funkcjami ciągłymi w sensie Scotta - patrz Wykład 12. - jest kartezjańsko zamknięta. Kategoria ta jest również zupełna. Dowód poniższego twierdzenia znajdziemy w rozwiązaniu Zadania 14.1.


Twierdzenie 14.1

W 𝐃𝐜𝐩𝐨 istnieją granice dowolnych diagramów.
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ć pewne restrykcje zarówno na kształt 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 𝐃𝐜𝐩𝐨. 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[D,D]. Okazuje się, że jego nietrywialne rozwiązania istnieją! Tak więc istnieją posety więcej niż jednoelementowe, które są izomorficzne z przestrzenią swoich ciągłych endofunkcji! Wynik jest o tyle zaskakujący, że w 𝐒𝐞𝐭 taka sytuacja, zgodnie z twierdzeniem Cantora nie może mieć miejsca.


Twierdzenie 14.2

Rozważmy diagram F w kategorii 𝐃𝐜𝐩𝐨 taki, że:
  • Wierzchołkami F są posety D0,D1,D2,..
  • Dla nm istnieją funkcje emn:DnDm, i pnm:DmDn tworzące parę e-p.
  • Dla każdego nω mamy enn=1Dn.
  • 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:

  • Para (em,pm) jest parą e-p i zachodzi nωenpn=1D.
  • {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.
  • {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 dowodzie Twierdzenia 14.1 podanym w Zadaniu 14.1

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.

Kategoria dcpo i par e-p

W tej kategorii obiektami są dcpo posiadające element najmniejszy, zaś morfizmami są pary e-p, o których była mowa podczas Wykładu 2. 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ć, 𝐃𝐜𝐩𝐨EP jest kategorią.


Definicja 14.3 [Omega-kategoria]

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 14.2 - mówi, że

𝔻𝕔𝕡𝕠EP

jest

ω

-kategorią!


Definicja 14.4 [Funktor ciągły]

Funktor F między ω-kategoriami nazywamy ciągłym, jeśli zachowuje granice odwrotne, tj.: jeśli D jest kogranicą powyższego diagramu, to F(D) jest kogranicą diagramu:
Uwaga
Tak naprawdę, aby być w zgodzie z definicją funktora ciągłego podaną przed Zadaniem Zadaniem 3.3, powinniśmy powyższą własność nazwać nie: ciągłością, ale ciągłością dualną, a funktor - funktorem dualnie ciągłym. Dla potrzeb tego wykładu przyjmijmy jednak powyższą nomenklaturę.


Lemat 14.5

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).


Zauważmy, że 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 14.6

Funktor F:𝐃𝐄 pomiędzy kategoriami posetów 𝐃,𝐄 jest 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[D2,D1] i B[D3,D4], 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)].

Dla przykładu, 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 14.7 [istnienie funktorów ciągłych]

Niech funktor F:𝐃𝐜𝐩𝐨op×𝐃𝐜𝐩𝐨𝐃𝐜𝐩𝐨 będzie lokalnie ciągły. Wtedy istnieje ciągły funktor F^:𝐃𝐜𝐩𝐨EP×𝐃𝐜𝐩𝐨EP𝐃𝐜𝐩𝐨EP, 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ą dcpo 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 𝐃𝐜𝐩𝐨EP×𝐃𝐜𝐩𝐨EP 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ą odpowiednio D i E. Z twierdzenia o koincydencji granicy prostej i odwrotnej (Twierdzenie 14.2) 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 14.2 mówi, że ostatnia równość charakteryzuje granicę odwrotną diagramu w 𝐃𝐜𝐩𝐨EP

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ć.


Dana S. Scott ur. 1932
Zobacz biografię

Twierdzenie Scotta

Zgodnie z poprzednim twierdzeniem możemy zdefiniować Eksponent Exp:𝐃𝐜𝐩𝐨EP×𝐃𝐜𝐩𝐨EP𝐃𝐜𝐩𝐨EP jako [,]^, który jest ciągły (ponieważ eksponent [,] jest lokalnie ciągły). Rozważmy złożenie 𝐃𝐜𝐩𝐨EPΔ𝐃𝐜𝐩𝐨EP×𝐃𝐜𝐩𝐨EPExp𝐃𝐜𝐩𝐨EP 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)=[P,P]. Podobnie F(Q)=[Q,Q]. Działanie na morfizmach:

F(e,p)=Exp((e,p),(e,p))=([,](p,e),[,](e,p))=([p,e],[e,p])

A zatem otrzymujemy:

Wiemy już, że para funkcji powyżej tworzy parę e-p! Przypomnijmy jeszcze raz, jak działają funkcje [p,e] i [e,p] na elementy z odpowiednio [P,P] i [Q,Q]. Przykładowo, dla f[P,P] 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 [p,e](f)=efp. Podobnie [e,p](g)=pge dla g[Q,Q].

Zauważmy w końcu, że dla dowolnego dcpo 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 14.8 [Scott]

Niech P będzie dcpo z elementem najmniejszym . Zdefiniujmy diagram w 𝐃𝐜𝐩𝐨, jak następuje:

gdzie:

  • D0=P, Dn+1=[Dn,Dn],
  • e0:P[P,P] jest funkcją λy.λx.y.

p0:[P,P]P jest funkcją λf.f().

  • en+1:[Dn,Dn]=Dn+1[Dn+1,Dn+1] jest funkcją λf.enfpn. pn+1:[Dn+1,Dn+1][Dn,Dn] jest funkcją λg.pngen.

Niech D będzie granicą diagramu:

w 𝐃𝐜𝐩𝐨. Wówczas:

D[D,D]