• Nie Znaleziono Wyników

9 Rachunek kombinator´ ow

W dokumencie 1 Sk ladnia rachunku lambda (Stron 35-51)

Zdefiniujemy teraz system CL (beztypowego) rachunku kombinator´ow, zwany tak˙ze (z przy-czyn historycznych) logika kombinatoryczn, a, chocia˙z ta druga nazwa jest nieco myl, aca. Zbi´, or term´ow C definiujemy jako najmniejszy zbi´or o w lasno´sciach:

• Zmienne przedmiotowe nale˙z a do C;,

• Sta le K i S nale˙za do C;,

• Je´sli F, G ∈ C, to (F G) ∈ C.

Konwencje nawiasowe sa takie same jak dla term´, ow rachunku lambda. Podstawienie w CL definiujemy podobnie jak dla rachunku lambda, ale latwiej, bo nie ma zmiennych zwiazanych.,

• x[x := F ] = F oraz y[x := F ] = y dla y 6= x;

• K[x := F ] = K oraz S[x := F ] = S;

• GH[x := F ] = G[x := F ]H[x := F ].

Relacje s labej redukcji w zbiorze C definiujemy jako najmniejsz, a relacj, e →, w o w lasno´sciach:

• KAB →w A dla dowolnych A, B;

• SABC →w AC(BC) dla dowolnych A, B, C;

• Je´sli A →w B, to AC →w BC oraz CA →w CB, dla dowolnych A, B, C.

Jak zwykle, symbol w oznacza domkniecie przechodnio-zwrotne relacji →, w, a =w (s laba r´owno´s´c), to najmniejsza relacja r´ownowa˙zno´sci zawierajaca →, w. Termy rachunku kombi-nator´ow, kt´ore nie zawieraja zmiennych, nazywamy oczywi´, scie kombinatorami . Zamkniete, termy rachunku lambda przeje ly t, e nazw, e od swoich odpowiednik´, ow w C. Oto kilka wa˙znych kombinator´ow i zwiazane z nimi redukcje:,

• Niech I = SKK. Wtedy IF →wKF (KF ) →w F dla dowolnego F .

• Term Ω = SII(SII) redukuje sie sam do siebie.,

• Niech W = SS(KI). Wtedy WF G w F GG dla dowolnych F, G.

• Niech B = S(KS)K. Wtedy BF GH w F (GH), dla dowolnych F, G, H.

• Niech C = S(BBS)(KK). Wtedy CF GH wF HG dla dowolnych F, G, H.

• Niech B0= CB. Wtedy B0F GH w G(F H).

• Niech D = C(BC(B(CI)K)). Wtedy DF GH w H(KG)F .

• Niech 2 = SB(SB(KI)). Wtedy 2F G w F (F G).

Uwaga: Termy K, S, KS, SK, I, B, 2, W sa w postaci w-normalnej, a termy B, 0, C nie sa., Czasem wszystkie te kombinatory sa jednak traktowane jak sta le.,

System CL, jako system redukcyjny, ma w lasno´sci podobne do rachunku lambda. Na przy-k lad prawdziwe jest twierdzenie Churcha-Rossera, a taprzy-kie w lasno´sci jak normalizacja, silna normalizacja, czy r´owno´s´c, sa nierozstrzygalne. System CL ma bowiem podobn, a si l, e wyrazu,

— mo˙zna w nim na przyk lad zdefiniowa´c liczebniki i reprezentowa´c funkcje cze´,sciowo rekuren-cyjne. W istocie, logika kombinatoryczna zosta la wynaleziona przez Curry’ego i Sch¨onfinkela niezale˙znie od rachunku lambda i mniej wiecej w tym samym czasie, ale w gruncie rzeczy, w podobnym celu.

Podobie´nstwo pomiedzy CL i rachunkiem lambda mo˙zna wyrazi´, c definiujac translacje, ( )Λ: C → Λ ( )C : Λ → C

Pierwsza z nich jest latwa:

• (x)Λ = x dla x ∈ V ;

• (K)Λ = λxy.x;

• (S)Λ= λxyz.xz(yz);

• (F G)Λ= (F )Λ(G)Λ.

Nastepuj, acy latwy fakt wyra˙za poprawno´, s´c tej translacji ze wzgledu na redukcje., Fakt 9.1

• Je´sli F w G, to (F )Λβ (G)Λ.

• Je´sli F =w G, to (F )Λ=β (G)Λ.

Fakt 9.1 mo˙zna odczyta´c tak: translacje ( ), Λ mo˙zna uwa˙za´c za przekszta lcenie z C/=w

do Λ/=β, czyli za morfizm z teorii r´owno´sciowej CL do teorii r´owno´sciowej Λ.

Aby okre´sli´c translacje ( ), C: Λ → C musimy przede wszystkim zdefiniowa´c w CL konstrukcje, (zwana kombinatoryczn, a abstrakcj, a), kt´, ora zachowuje sie tak jak abstrakcja. Mo˙zna to zrobi´, c na kilka sposob´ow, na przyk lad tak:

• λx.F = KF , gdy x 6∈FV(F );

• λx.x = I;

• λx.F G = S(λx.F )(λx.G), w przeciwnym przypadku.

Dow´od poni˙zszego faktu pozostawiamy jako ´cwiczenie.

Fakt 9.2 (λx.F )G w F [x := G].

Wniosek 9.3 (kombinatoryczna zupe lno´s´c) Dla dowolnych x i F istnieje takie H, ˙ze dla dowolnego G zachodzi HG wF [x := G].

Teraz mo˙zemy zdefiniowa´c translacje ( ), C: Λ → C.

• (x)C = x dla x ∈ V ;

• (M N )C= (M )C(N )C;

• (λx.M )C = λx.(M )C.

Fakt 9.4 Dla dowolnego M ∈ Λ zachodzi ((M )C)Λ =β M .

Dow´od: Najpierw nale˙zy pokaza´c (λx.F )Λ=β λx (F )Λ, przez indukcje ze wzgl, edu na F ., Potem te˙z indukcja ze wzgledu na M .,

A zatem translacja ( )Λ wyznacza przekszta lcenie

”na” z ilorazu C/=w do Λ/=β. Poni˙zszy wniosek stwierdza, ˙ze termy K i S stanowia baz, e dla rachunku lambda.,

Wniosek 9.5 Ka˙zdy zamkniety lambda-term mo˙zna otrzyma´, c (z dok ladno´scia do =, β) z ter-m´ow K i S przez stosowanie aplikacji.

Dow´od: Natychmiast z Faktu 9.4.

Niestety, operacja ( )C nie ma tak dobrych w lasno´sci jak translacja ( )Λ. Nie mo˙zna jej uwa˙za´c za morfizm teorii r´owno´sciowych.

Fakt 9.6

• Z lo˙zenie (( )Λ)C nie jest identyczno´scia. Na przyk lad ((K, Λ)C = S(KK)I 6=wK.

• Z r´owno´sci M =β N nie wynika (M )C =w (N )C. Na przyk lad λx.KIx →β λx I, ale (λx.KIx)C= S(K(S(KK)II))I =w S(K(KI))I 6=w KI = (λx I)C.

A zatem

”s laba” r´owno´s´c jest w istocie silniejsza ni˙z =β. Przyczyna tego jest to, ˙ze kombina-, toryczna abstrakcja λ nie spe lnia warunku s labej ekstensjonalno´sci ze wzgledu na =, w:

M = N

λx.M = λx.N , (ξ)

W istocie

λx.KIx = S(K(KI))I 6=w KI = λx.I,

chocia˙z KIx →w I. Mo˙zna to poprawi´c kosztem wprowadzenia ekstensjonalno´sci. Niech =ext

bedzie najmniejsza relacj, a r´, ownowa˙zno´sci w C, taka ˙ze:,

• Je´sli G =w H, to G =ext H;

• Je´sli Gx =ext Hx i x 6∈FV(G) ∪FV(H), to G =ext H;

• Je´sli G =ext G0, to GH =ext G0H i HG =ext HG0.

Fakt 9.7

• Dla dowolnych G, H ∈ C, warunki G =ext H i (G)Λ=βη (H)Λ sa r´, ownowa˙zne.

• Dla dowolnych M, N ∈ Λ, warunki M =βηN i (M )C =ext (N )C sa r´, ownowa˙zne.

• R´ownanie ((G)Λ)C=ext G zachodzi dla dowolnego G ∈ C.

Paradoks Curry’ego

Skoro lambda-abstrakcja mo˙ze by´c zdefiniowana w rachunku CL, to si la wyrazu rachunku kombinator´ow jest podobna do si ly wyrazu rachunku lambda. Mo˙zemy na przyk lad zdefinio-wa´c kombinatory punktu sta lego:

Y = WS(BWB) Θ = WI(B(SI)(WI)).

Dlatego rachunek kombinator´ow jest zbyt silny na to, aby m´og l by´c prawdziwa logik, a kombi-, natoryczna. Zobaczmy jak dodanie logiki do systemu CL mo˙ze prowadzi´, c do sprzeczno´sci.

Zdefiniujemy system NCL

”naiwnej logiki kombinatorycznej”, dodajac do sk ladni now, a sta l, a P,, kt´ora ma przedstawia´c implikacje. Zamiast PF G b, edziemy pisa´, c F ⇒ G. W ten spos´ob dowolna zdaniow, a formu l, e implikacyjn, a mo˙zna uwa˙za´, c za term rachunku kombinator´ow.

Aby mo˙zna by lo udowodni´c taka formu l, e, regu ly wnioskowania systemu NCL pozwalaj, a, wyprowadza´c nie tylko r´owno´sci miedzy termami, ale te˙z same termy., System ma trzy schematy aksjomat´ow:

Ostatnia regu la to dobrze znana regu la odrywania. Opr´ocz niej mamy dwa niewinne aksjo-maty rachunku zda´n i dosy´c oczywiste w lasno´sci r´owna´n, w tym regu le konwersji: zdanie, r´owne zdaniu udowodnionemu nale˙zy uwa˙za´c za udowodnione. Niestety,

Fakt 9.8 (Paradoks Curry’ego) System NCL jest logicznie sprzeczny: ka˙zdy term (w tym ka˙zda formu la) ma dow´od.

Dow´od: We´zmy dowolny term F i niech N = Y(λx. x ⇒ F ). Nietrudno sprawdzi´c, ˙ze r´ownanie N = N ⇒ F ma dow´od w systemie NCL (term Y to kombinator punktu sta lego).

Zatem N ⇒ (N ⇒ F ) = N ⇒ N w NCL, a poniewa˙z N ⇒ N jest aksjomatem, wiec stosuj, ac, regu le (Conv) udowodnimy, ˙ze N ⇒ (N ⇒ F )., U˙zywajac (MP) i trzeciego aksjomatu,, wyprowadzimy stad N ⇒ F , ale przecie˙z mamy ju˙z N = N ⇒ F , wi, ec udowodnili´, smy tak˙ze N . Ale z N ⇒ F i N wynika F przez modus ponens, a F by lo dowolnym termem.

Cwiczenia´

1. Niech B = λxyz.x(yz) i niech C = λxyz.xzy. Pokaza´c, ˙ze ka˙zdy λI-term mo˙zna otrzyma´c (z dok ladno´scia do =, β) z term´ow S, B, C, I, poprzez stosowanie aplikacji. Wskaz´owka: zdefi-niowa´c konstrukcje λ, x.F w ten spos´ob, ˙ze:

• λx.F G = C(λx.F )G, gdy x ∈ FV(F ) oraz x 6∈ FV(G);

• λx.F G = BF (λx.G), gdy x 6∈ FV(F ) oraz x ∈ FV(G).

2. Term nazwiemy afinicznym, gdy ka˙zdy jego podterm postaci λx.M zawiera co najwy˙zej jedno wolne wystapienie zmiennej x., Pokaza´c, ˙ze ka˙zdy afiniczny lambda-term mo˙zna otrzyma´c (z dok ladno´scia do =, β) z term´ow B, C, K poprzez stosowanie aplikacji.

3. Term nazwiemy liniowym, gdy ka˙zdy jego podterm postaci λx.M zawiera dok ladnie jedno wolne wystapienie zmiennej x. Pokaza´, c, ˙ze ka˙zdy liniowy lambda-term mo˙zna otrzyma´c (z dok ladno´ s-cia do =, β) z term´ow B, C, I poprzez stosowanie aplikacji.

Problem otwarty:

Zdefiniowa´c taka (obliczaln, a) translacj, e T : Λ → C, ˙ze,

M =βN ⇐⇒ T (M ) =wT (N ).

10 Modele

Zaczniemy od pewnej og´olnej teorii, potrzebnej dla u´sci´slenia pojecia modelu dla rachunku, lambda. Naszym zamiarem jest interpretacja ka˙zdego lambda-termu M w pewnej konkretnej dziedzinie A, jako pewnego elementu [[M ]] ∈ A. Poniewa˙z mamy w termach zmienne wolne, wiec nasza interpretacja mo˙ze zale˙ze´, c od warto´sciowania v : V → A (gdzie V oznacza zbi´or wszystkich zmiennych), co zaznaczymy piszac [[M ]], v. Indeksv pomijamy, gdy v jest znane, lub M nie ma zmiennych wolnych. Poni˙zsza definicja formu luje nasze podstawowe oczekiwania w stosunku do takiej interpretacji.

Niech · bedzie dwuargumentow, a operacj, a w zbiorze A i niech [[ ]] : Λ × A, V → A. Struk-ture A = hA, ·, [[ ]] i nazywamy lambda-interpretacj, a, je˙zeli spe lnione s, a warunki (a) – (d), poni˙zej. Stosujemy notacje [[M ]], v na oznaczenie warto´sci [[ ]](M, v). Symbol v[x 7→ a] oznacza warto´sciowanie r´o˙zniace si, e od v tylko tym, ˙ze v[x 7→ a](x) = a.,

(a) Je´sli x jest zmienna, to [[x]], v = v(x);

(b) [[P Q]]v = [[P ]]v· [[Q]]v;

(c) [[λx.P ]]v· a = [[P ]]v[x7→a], dla dowolnego a ∈ A;

(d) Je´sli v|FV(P )= u|FV(P ), to [[P ]]v = [[P ]]u.

Na pierwszy rzut oka mo˙ze sie wydawa´, c, ˙ze warunki (a) – (d) stanowia indukcyjn, a definicj, e, funkcji [[ ]]. Tak nie jest, bo warunek (c) nie okre´sla kt´orym elementem modelu jest [[λx.P ]]v a postuluje tylko jego zachowanie przy aplikacji. (Elementu, kt´ory tak sie zachowuje, mo˙ze, w og´ole nie by´c.)

Je´sli a, b ∈ A, to napiszemy a ≈ b, gdy dla dowolnego c ∈ A zachodzi r´owno´s´c a · c = b · c.

Oznacza to, ˙ze zachowanie a i b jako funkcji jest takie samo. Interpretacja jest ekstensjonalna wtedy i tylko wtedy, gdy z warunku a ≈ b wynika a = b.

Lambda-interpretacje A = hA, ·, [[ ]] i nazywamy,

• lambda-algebra, gdy warunek M =, β N implikuje [[M ]]v= [[N ]]v dla dowolnego v (co zapiszemy A |= M = N );

• lambda-modelem, gdy warunek [[λx.M ]]v ≈ [[λx.N ]]v implikuje [[λx.M ]]v = [[λx.N ]]v. A wiec lambda-algebra to poprawna interpretacja beta-r´, owno´sci. Natomiast lambda-model to interpretacja s labo ekstensjonalna, tj. taka, w kt´orej ekstensjonalno´s´c zachodzi dla abstrakcji.

Aby zrozumie´c o co chodzi, zauwa˙zmy tu, ˙ze [[λx.M ]]v ≈ [[λx.N ]]v oznacza tyle samo co [[M ]]v[x7→a]= [[N ]]v[x7→a]dla wszystkich a. A zatem warunek s labej ekstensjonalno´sci w definicji

lambda-modelu m´owi, ˙ze znaczenie abstrakcji [[λx.M ]]v jest zdeterminowane przez funkcje,, kt´ora ka˙zdemu a przypisuje element [[M ]]v[x7→a]. Nieformalnie: warto´s´c [[λx.M ]] zale˙zy tylko od warto´sci [[M ]], podobnie jak [[M N ]] zale˙zy tylko od [[M ]] i [[N ]]. Oznacza to tyle, ˙ze abstrakcja jest operacja semantyczn, a (ma sens w modelu, niezale˙zny od sk ladni) tak samo jak aplikacja., Przyk lad 10.1 Szczeg´olnym przypadkiem interpretacji jest interpretacja zbudowana z sa-mych term´ow. Niech M(λ) = hΛ/=β, ·, [[ ]] i, gdzie [M ]β · [N ]β = [M N ]β oraz [[M ]]v jest (z dok ladno´scia do =, β) wynikiem jednoczesnego podstawienia termu v(x) na ka˙zda zmienn, a, wolna x termu M . Przez M, 0(λ) oznaczymy analogiczna interpretacj, e, kt´, orej dziedzine tworz, a, klasy term´ow zamknietych. Podobnie M(λη) i M, 0(λη) oznacza struktury w kt´orych zbi´or term´ow (odp. zbi´or kombinator´ow) podzielono przez =βη. Wszystkie te struktury sa lambda-, algebrami, ale M0(λ) i M0(λη) nie sa lambda-modelami.,

Nastepuj, acy lemat m´, owi o w lasno´sci, kt´orej oczekujemy od ka˙zdej sensownej semantyki.

Znaczenie podstawienia M [x := N ] powinno by´c takie samo jak znaczenie termu M przy odpowiednio zmienionym warto´sciowaniu.

Lemat 10.2 W dowolnym lambda-modelu zachodzi to˙zsamo´s´c [[M [x := N ]]]v = [[M ]]v[x7→[[N ]]v].

Dow´od: Udowodnimy najpierw, ˙ze teza zachodzi przy dodatkowym za lo˙zeniu x 6∈FV(N ).

Postepujemy przez indukcj, e ze wzgl, edu na M . Przypadki zmiennej i aplikacji s, a latwe, niech, wiec M = λy P , gdzie x 6= y 6∈, FV(N ). Korzystajac ze s labej ekstensjonalno´, sci udowodnimy r´owno´s´c [[λy. P [x := N ]]]v = [[λy P ]]v[x7→[[N ]]v]. Latwiej bedzie, je´, sli po obu stronach r´ owna-nia wystapi to samo warto´, sciowanie. Ale [[λy. P [x := N ]]]v = [[λy. P [x := N ]]]v[x7→[[N ]]v], bo za lo˙zyli´smy, ˙ze x 6∈FV(N ).

Dla dowolnego a, korzystajac z za lo˙zenia indukcyjnego o termie P , dostaniemy teraz, [[λy. P [x := N ]]]v[x7→[[N ]]v]· a = [[λy.P [x := N ]]]v· a = [[P [x := N ]]]v[y7→a] =

= [[P ]]v[y7→a][x7→[[N ]]v]= [[P ]]v[y7→a][x7→[[N ]]v]= [[λy. P ]]v[x7→[[N ]]v]· a.

Poniewa˙z mamy do czynienia z lambda-modelem, wiec z tego wynika,

[[λy. P [x := N ]]]v = [[λy. P [x := N ]]]v[x7→[[N ]]v]= [[λy P ]]v[x7→[[N ]]v].

Niech teraz x ∈FV(N ). Ustalmy nowa zmienn, a z (tj. tak, a, ˙ze x 6= z 6∈, FV(M ),FV(N )) i niech w = v[z 7→ [[N ]]v]. Wtedy z Wniosku 1.5 mamy M [x := N ] = M [x := z][z := N ], a poniewa˙z z 6∈FV(N ) i x 6∈FV(z), wiec z pierwszej cz,,sci wynika

[[M [x := N ]]]v = [[M [x := z]]]w = [[M ]]w[x7→[[z]]w]= [[M ]]v[x7→[[z]]w]= [[M ]]v[x7→[[N ]]v]. Przedostatnia r´owno´s´c bierze sie st, ad, ˙ze z 6∈, FV(M ).

Fakt 10.3 Ka˙zdy lambda-model jest lambda-algebra.,

Dow´od: Przez indukcje ze wzgl, edu na definicj, e beta-r´, owno´sci pokazujemy ˙ze je´sli M =β N , to [[M ]]v = [[N ]]v.

Najpierw zauwa˙zmy, ˙ze [[(λx.P )Q]]v= [[λx.P ]]v· [[Q]]v = [[P ]]v[x7→[[Q]]v]= [[P [x := Q]]]v na mocy lematu 10.2.

Niech teraz M = λx.P i N = λx.Q, gdzie P =β Q. Z za lo˙zenia indukcyjnego wynika, ˙ze [[P ]]u = [[Q]]u, przy ka˙zdym u, w szczeg´olno´sci gdy u = v[x 7→ a]. A zatem [[M ]]v · a = [[P ]]v[x7→a] = [[Q]]v[x7→a]= [[N ]]v· a dla dowolnego a. Stad [[M ]], v= [[N ]]v.

Pozosta le przypadki sa rutynowe.,

Twierdzenie 10.4 (o pe lno´sci) Nastepuj, ace warunki s, a r´, ownowa˙zne:

1) M =β N ;

2) A |= M = N dla dowolnej lambda-algebry A;

3) A |= M = N dla dowolnego lambda-modelu A.

Dow´od: Implikacja (1) ⇒ (2) wynika wprost z definicji, a implikacja (2) ⇒ (3) z Lema-tu 10.3. Natomiast implikacja (3) ⇒ (1) wynika stad, ˙ze M(λ) jest lambda-modelem, a termy, r´owne w M(λ) musza by´, c β-r´owne (rozpatrzmy trywialne warto´sciowanie v(x) = x).

Modele cze´,sciowo uporzadkowane,

Na poczatek przypomnijmy kilka definicji. Niech hA, ≤i b, edzie porz, adkiem cz,,sciowym.

• Podzbi´or B zbioru A jest skierowany wtedy i tylko wtedy, gdy dla dowolnych a, b ∈ B istnieje takie c ∈ B, ˙ze a, b ≤ c.

• Zbi´or A jest zupe lnym porzadkiem cz,,sciowym (cpo) wtedy i tylko wtedy, gdy ka˙zdy jego skierowany podzbi´or ma kres g´orny.

Oczywi´scie ka˙zdy la´ncuch jest zbiorem skierowanym. W szczeg´olno´sci elementy dowolnego ciagu wst, epuj, acego a, 0 ≤ a1 ≤ a2 ≤ . . . tworza zbi´, or skierowany. Tak˙ze zbi´or pusty jest zbiorem skierowanym. Z definicji porzadku zupe lnego wynika wi, ec istnienie elementu naj-, mniejszego sup ∅, tradycyjnie oznaczanego przez ⊥.

Niech teraz hA, ≤i i hB, ≤i bed, a porz, adkami cz,,sciowymi.

• Funkcja f : A → B jest monotoniczna wtedy i tylko wtedy, gdy dla dowolnych x, y ∈ A nier´owno´s´c x ≤ y implikuje f (x) ≤ f (y).

• Je´sli hA, ≤i i hB, ≤i sa zupe lnymi porz, adkami cz,,sciowymi to funkcja f : A → B jest ciag la wtedy i tylko wtedy, gdy f zachowuje kresy g´, orne niepustych zbior´ow skierowa-nych, tj. dla dowolnego skierowanego i niepustego podzbioru X ⊆ A istnieje sup f (X) i zachodzi r´owno´s´c f (sup X) = sup f (X).

Fakt 10.5 (´cwiczenie)

1) Ka˙zda funkcja ciag la jest monotoniczna., 2) Z lo˙zenie funkcji ciag lych jest ci, ag le.,

Zbi´or wszystkich funkcji ciag lych z A do B oznaczamy przez [A → B]. Ten zbi´, or, uporzad-, kowany warunkiem:

f ≤ g wtedy i tylko wtedy, gdy ∀a ∈ A(f (a) ≤ g(a)),

jest zupe lnym porzadkiem cz,,sciowym. Podobnie mo˙zna nada´c strukture cpo zbiorowi A × B, za pomoca zwyk lego uporz, adkowania,

”po wsp´o lrzednych”:,

ha, bi ≤ ha0, b0i wtedy i tylko wtedy, gdy a ≤ a0 i b ≤ b0. Lemat 10.6 Funkcja f : D1 × D2 → D jest ci

ag la wtedy i tylko wtedy gdy jest ci, ag la, ze wzgledu na obie wsp´, o lrzedne, tj. dla dowolnych a ∈ D, 1 i b ∈ D2 oraz dowolnych skierowa-nych A ⊆ D1 i B ⊆ D2 zachodzi f (sup A, b) = sup f (A, b) oraz f (a, sup B) = sup f (a, B).

Dow´od: Implikacja z lewej do prawej jest oczywista. Dla dowodu implikacji odwrotnej rozpatrzmy niepusty skierowany zbi´or X ⊆ D1× D2 i niech A = π1(X) oraz B = π2(X).

Oczywi´scie X ⊆ A × B, chocia˙z niekoniecznie na odwr´ot. Ale je´sli ha, bi ∈ A × B, to zawsze istnieje takie ha0, b0i ∈ X, ˙ze ha, bi ≤ ha0, b0i. Istotnie, mamy wtedy pary ha, b00i, ha00, bi ∈ X.

Skoro zbi´or X jest skierowany, to ha, b00i, ha00, bi ≤ ha0, b0i dla pewnego ha0, b0i ∈ X. Porz adek,

jest po wsp´o lrzednych, wi, ec ha, bi ≤ ha, 0, b0i.

Nietrudno zauwa˙zy´c, ˙ze sup X = sup(A × B) = hsup A, sup Bi. Niech ha0, b0i bedzie tym, kresem. Nale˙zy sprawdzi´c, ˙ze f (a0, b0) = sup f (X). Oczywi´scie f (a0, b0) ≥ sup f (X), przy-pu´s´cmy wiec, ˙ze c ≥ f (a, b) dla wszystkich (a, b) ∈ X. Wtedy tak˙ze c ≥ f (a, b) dla wszystkich, (a, b) ∈ A × B. Je´sli ustalimy dowolne b ∈ B, to na mocy ciag lo´, sci ze wzgledu na pierwsz, a, wsp´o lrzedn, a, otrzymamy c ≥ f (a, 0, b) = sup f (A, b). Dalej z ciag lo´, sci ze wzgledu na drug, a, wsp´o lrzedn, a wynika tak˙ze c ≥ f (a, 0, b0).

Lemat 10.7 Operacja aplikacji Ap : D1×[D1 → D2] → D2, okre´slona przez Ap(d, f ) = f (d), jest funkcja ci, ag l, a.,

Dow´od: Na mocy lematu 10.6 wystarczy sprawdzi´c ciag lo´, s´c ze wzgledu na wsp´, o lrzedne., Dla skierowanego A ⊆ D1 i ustalonego f mamy sup Ap(A, f ) = sup f (A) = f (sup A) = Ap(sup A, f ), bo f jest ciag la. A je´, sli F ⊆ [D1 → D2] jest skierowany oraz a ∈ D1 to sup Ap(a, F ) = sup{f (a) | f ∈ F } = (sup F )(a) = Ap(a, sup F ) z definicji sup F .

Lemat 10.8 Operacja abstrakcji Abs : [(D1 × D2) → D] → [D1 → [D2 → D]], dana przez Abs(f )(d)(e) = f (d, e), jest dobrze okre´slona i ciag la.,

Dow´od: Dla dowolnego d, funkcja Abs(f )(d) jest z lo˙zeniem funkcji ciag lej f z funkcj, a, ciag l, a g(e) = hd, ei, zatem jest ci, ag la.,

Dla A ⊆ D1 mamy Abs(f )(sup A)(e) = f (sup A, e) = sup f (A, e) = sup Abs(f )(A)(e) czyli Abs(f )(sup A) = sup Abs(f )(A), co oznacza, ˙ze funkcja Abs(f ) jest ciag la.,

Wreszcie gdy F jest skierowanym podzbiorem [(D1 × D2) → D], to Abs(sup F )(d)(e) = (sup F )(d, e) = sup{f (d, e) | f ∈ F } = sup{Abs(f )(d)(e) | f ∈ F } = sup Abs(F )(d)(e), czyli sama funkcja Abs te˙z jest ciag la.,

Refleksywne cpo

Kluczowa definicja jest taka. Zupe lny porzadek cz,,sciowy D jest refleksywny, gdy przestrze´n funkcyjna [D → D] jest retraktem D, tj. gdy istnieja przekszta lcenia ci, ag le F : D → [D → D], i G : [D → D] → D, takie, ˙ze F ◦ G = id[D→D]. Zauwa˙zmy, ˙ze wtedy [D → D] jest izomorficzne z pewnym podzbiorem D (obrazem funkcji G).

Na takim cpo mo˙zemy okre´sli´c lambda-interpretacje D = hD, ·, [[ ]] i, gdzie dla a, b ∈ D, a · b = F (a)(b),

a znaczenie term´ow jest okre´slone tak:

• Je´sli x jest zmienna, to [[x]], v = v(x);

• [[P Q]]v = [[P ]]v· [[Q]]v;

• [[λx.P ]]v = G(ξPv,x).

Powy˙zej, symbol ξv,xP oznacza funkcje okre´, slona r´, ownaniem ξPv,x(a) = [[P ]]v[x7→a], kt´ora niefor-, malnie mo˙zemy zapisa´c tak λλa.[[P ]]v[x7→a].

Nietrudno zauwa˙zy´c, ˙ze wtedy zachodza nast, epuj, ace warunki:,

• G(f ) · a = f (a), dla dowolnego f ∈ [D → D] i a ∈ D;

• [[λx.P ]]v· a = [[P ]]v[x7→a], dla dowolnego a ∈ D;

• Je´sli v|FV(P )= u|FV(P ), to [[P ]]v = [[P ]]u,

a zatem faktycznie mamy lambda-interpretacje. Nietrudno te˙z przeoczy´, c pewien drobiazg:

poprawno´s´c powy˙zszej definicji nie jest wcale oczywista i wymaga dowodu. Operacja G jest bowiem okre´slona tylko dla funkcji ciag lych.,

Lemat 10.9 Dla dowolnych M i v, funkcja ξMv,x (czyli λλa.[[M ]]v[x7→a]) jest ciag la.,

Dow´od: Indukcja ze wzgledu na M . Dla M = P Q, funkcja ξ, Mv,x = λλa.[[M ]]v[x7→a] jest z lo˙zeniem postaci Ap ◦ h, gdzie funkcja h dana wzorem h(a) = hF (ξPv,x(a)), ξQv,x(a)i jest ciag la. Je´, sli M = λy N to z za lo˙zenia indukcyjnego funkcja f , kt´ora parze ha, bi przypisuje warto´s´c [[N ]]v[x7→a][y7→b] jest ciag la ze wzgl, edu na obie wsp´, o lrzedne, a zatem ci, ag la, na mocy, lematu 10.6. Natomiast funkcja ξv,xM = λλa.G(λλb.[[N ]]v[x7→a][y7→b]) jest z lo˙zeniem G ◦ Abs(f ).

Twierdzenie 10.10 Je´sli D jest refleksywnym cpo, to lambda-interpretacja D = hD, ·, [[ ]] i jest lambda-modelem.

Dow´od: Pozostaje sprawdzi´c, ˙ze mamy s laba ekstensjonalno´, s´c. Wystarczy w tym celu zauwa˙zy´c, ˙ze warunek [[λx.M ]]v≈ [[λx.N ]]v implikuje ξv,xM = ξNv,x.

Fakt 10.11 Model jak wy˙zej jest ekstensjonalny wtedy i tylko wtedy, gdy G ◦ F = idD. Cwiczenia´

1. Pokaza´c, ˙ze M0(λ), M(λ), M(λη) i M0(λη) sa lambda-algebrami., 2. Pokaza´c, ˙ze M(λ) i M(λη) sa lambda-modelami.,

3. Znale´c w ksia˙zce Barendregta, ˙ze M, 0(λ) ani M0(λη) nie sa lambda-modelami.,

4. (Meyer) Niech 1 = [[1]]. Pokaza´c, ˙ze lambda-algebra jest lambda-modelem wtedy i tylko wtedy, gdy z warunku a ≈ b wynika 1 · a = 1 · b.

5. Czy z tego, ˙ze A |= λx.M x = M dla wszystkich M wynika ekstensjonalno´c interpretacji A?

Inaczej: czy interpretacja βη-konwersji musi by´c ekstensjonalna? Wskaz´owka: U˙zy´c zadania 3.

6. Pokaza´c, ˙ze je´sli D jest refleksywnym cpo i f : D → D jest ciag la, to istnieje takie a ∈ D, ˙ze, f (x) = a · x dla dowolnego x.

7. Czy funkcja odwrotna do ciag lej bijekcji musi by´, c ciag la?,

8. Je´sli FV(M ) = {x1, ..., xn}, to [[M ]] mo˙zna uwa˙za´c za funkcje z D, ndo D. Pokaza´c, ˙ze ta funkcja jest zawsze ciagla.

11 Model D

Skonstruujemy teraz konkretny przyk lad modelu — pewne refleksywne cpo, zwane modelem Scotta D. Zacznijmy od prostej definicji.

Niech A i B bed, a cpo. Projekcj, a z B na A nazywamy par, e funkcji ci, ag lych, ϕ : A → B i ψ : B → A,

spe lniajac, a warunki,

ψ ◦ ϕ = idA oraz ϕ ◦ ψ ≤ idB.

Zauwa˙zmy, ˙ze wtedy ϕ(⊥A) = ⊥B, bo ϕ(⊥A) ≤ ϕ(ψ(⊥B)) ≤ ⊥B.8 Gdy mamy taka projekcj, e,, to w szczeg´olno´sci A jest retraktem B. Identyfikujac element d ∈ A z jego obrazem ϕ(d),, mo˙zemy wtedy uwa˙za´c zbi´or A za podzbi´or B. Przyk ladem projekcji jest para funkcji

ϕ0 : D → [D → D] i ψ0 : [D → D] → D, okre´slona tak:

ϕ0(d)(a) = d, oraz ψ0(f ) = f (⊥)

dla dowolnych a, d ∈ D i f ∈ [D → D]. Mamy tu zanurzenie zbioru D w przestrze´n funkcyjna,, przy kt´orym ka˙zdy element D jest uto˙zsamiany z funkcja sta l, a.,

8Og´olniej: ϕ(x) to najmniejszy element y o w lasno´sci ψ(y) = x.

Je´sli mamy projekcje (ϕ, ψ) z B na A, to mo˙zemy,

”podnie´s´c” te projekcj, e na poziom funkcji,, czyli okre´sli´c nowa projekcj, e (ϕ, , ψ) z przestrzeni [B → B] na [A → A]. Dla f : A → A i g : B → B przyjmujemy

ϕ(f ) = ϕ ◦ f ◦ ψ oraz ψ(g) = ψ ◦ g ◦ ϕ, co ilustruje obrazek:

A ϕ //B A



ϕ //B

g



A

f

OO

ψ B

oo OO

A B

ψ

oo

Lemat 11.1 Je´sli (ϕ, ψ) jest projekcja z B na A, to para (ϕ, , ψ) jest projekcja z [B → B], na [A → A].

Dow´od: Cwiczenie.´

Przypu´s´cmy teraz, ˙ze mamy jakiekolwiek cpo D. Okre´slimy ciag zbior´, ow Dn zaczynajac od, D0 = D i indukcyjnie przyjmujac D, n+1= [Dn→ Dn]. Oczywi´scie wszystkie Dn sa cpo., Dalej definiujemy przez indukcje ci, ag projekcji (ϕ, n, ψn) z Dn+1 na Dn, przyjmujac,

n+1, ψn+1) = (ϕn, ψn).

Mamy wiec transmisj, e w obie strony:,

D0−→ Dϕ0 1−→ Dϕ1 2 −→ · · ·ϕ2 D0←− Dψ0 1←− Dψ1 2 ←− · · ·ψ2

Ka˙zdy ciag (x, n)n∈N z lo˙zony z element´ow xn ∈ Dn i spe lniajacy dla dowolnego n warunek, xn= ψn(xn+1) nazywamy nicia. Tak wygl, ada ni´, c:

x0←− xψ0 1←− xψ1 2←− · · ·ψ2 Dla nici stosujemy notacje x = (x, n)n∈N.

Zbi´or wszystkich nici oznaczamy przez D. Mo˙zna go uporzadkowa´, c po wsp´o lrzednych:, x ≤ y wtedy i tylko wtedy, gdy ∀n ∈ N(xn≤ yn).

Lemat 11.2 Zbi´or D jest zupe lnym porzadkiem cz,,sciowym.

Dow´od: Je´sli X ⊆ D jest skierowany, to ka˙zdy ze zbior´ow Xn = {xn | x ∈ X} jest skierowany, zatem istnieja kresy y, n= sup Xn. Wtedy dla dowolnego n:

ψn(yn+1) = ψn(sup Xn+1) = sup ψn(Xn+1) = sup Xn= yn,

bo funkcja ψn jest ciag la oraz ψ, n(Xn+1) = Xn. A zatem ciag y = (y, n)n∈N jest nicia (nale˙zy, do D). Pozostaje latwe sprawdzenie, ˙ze y = sup X.

Dla dowolnych n ≤ m, mamy oczywi´scie projekcje (ϕ, nm, ψnm) z Dm na Dn, czyli z lo˙zenie ϕnm = ϕm−1◦ · · · ◦ ϕn, ψnm= ψn◦ · · · ◦ ψm−1.

Lemat 11.3 Dla n ≤ m zachodzi ϕnm= ϕn+1,m+1 oraz ψnm= ψn+1,m+1. Mo˙zna te˙z okre´sli´c projekcje (ϕn∞, ψn∞) z D na Dn. Dla x ∈ Dn i y ∈ D:

n∞(x))i =

ψin(x), gdy i < n;

x, gdy i = n;

ϕni(x), gdy i > n.

ψn∞(y) = yn. Od tej pory mo˙zemy uwa˙za´c, ˙ze zachodza inkluzje,

D0 ⊆ D1 ⊆ D2⊆ · · · ⊆ D,

zadane przez powy˙zsze projekcje. W szczeg´olno´sci ka˙zdy element x ∈ Dnuto˙zsamiamy z nicia, prawie wszedzie r´, owna x:,

x0 ←− xψ0 1 ←− xψ1 2 ←− · · ·ψ2 ψ←− xn−2 n−1 ψ←− xn−1 ←− xψn ψ←− xn+1 ψ←− · · ·n+2

bo przecie˙z x uwa˙zamy za element wszystkich Dm dla m ≥ n. Zauwa˙zmy, ˙ze mamy tu nier´owno´sci x0 ≤ x1 ≤ x2≤ · · · ≤ xn−1≤ xn= x.

Lemat 11.4

1. Ka˙zda ni´c x jest ciagiem wst, epuj, acym (x, 0 ≤ x1≤ x2≤ . . .) i przy tym x = sup xn; 2. Najmniejszy element jest zawsze ten sam: ⊥D0 = ⊥Dn = ⊥D.

Dow´od: Cwiczenie.´

Lemat 11.5 Aplikacja w D okre´slona wzorem

x · y = sup{xn+1(yn) | n ∈ N}

jest operacja ci, ag l, a.,

Dow´od: Najpierw trzeba pokaza´c, ˙ze kres istnieje, elementy xn+1(yn) ∈ Dn nie musza, bowiem tworzy´c nici. Jest to jednak ciag wst, epuj, acy, co wynika z takich zwi, azk´, ow pomiedzy, elementami zbioru Dn:

ϕn−1(xn(yn−1)) = ϕn−1n−1(xn+1n−1(yn−1))) ≤

xn+1n−1(yn−1)) = xn+1n−1n−1(yn))) ≤ xn+1(yn).

Dow´od ciag lo´, sci korzysta z lematu 10.6. Ciag lo´, s´c ze wzgledu na x liczymy tak: Z jednej, strony supx∈Xx · y = supx∈Xsupn∈Nxn+1(yn), a z drugiej strony

(sup X) · y = supn∈N(sup X)n+1(yn) = supn∈N(sup Xn+1)(yn) = supn∈Nsupx∈Xxn+1(yn), gdzie Xn+1 = {xn+1 | x ∈ X}. A przecie˙z to jest to samo. Ciag lo´, s´c ze wzgledu na y jest, nawet latwiejsza. Mamy bowiem x · sup Y = supn(xn+1(sup Y )) = supnsupyxn+1(y) oraz sup(x · Y ) = supysupnxn+1(y).

Teraz troche o tym, jak dzia la aplikacja., Lemat 11.6

1. Je´sli x ∈ Dn+1, to x · y = x(yn), a je´sli dodatkowo y ∈ Dn, to x · y = x(y);

2. Je´sli y ∈ Dn to (x · y)n= xn+1(y).

3. Zawsze (x · ⊥)0 = x0.

4. Je´sli x ∈ D0, to x · y = x = x · ⊥.

Dow´od: 1. W cze´,sci pierwszej nale˙zy pokaza´c, ˙ze x · y = supmxm+1(ym) = xn+1(yn).

W tym celu zauwa˙zmy, ˙ze dla m < n mamy

xm+1(ym) = ψm+1,n+1(x)(ψmn(y)) = ψmn (xn+1)(ψmn(yn)) ≤ ψmn(xn+1(yn)), bo xn+1= x, yn= y, oraz ψmn(xn+1) = ψmn◦ xn+1◦ ϕmn. Natomiast dla m ≥ n

xm+1(ym) = ϕn+1,m+1(x)(ym) = ϕnm(x)(ym) = (ϕn,m◦ x ◦ ψn,m)(ym) = ϕn,m(x(yn)) bo ϕnm(x) = ϕnm◦ x ◦ ψnm oraz ψn,m(ym) = yn.

2. W cze´,sci drugiej, dla dowolnego i ≥ n mamy yi+1= ϕ(yi), wiec x, i+1(yi) = ψi(xi+2(yi+1)), co implikuje (xi+2(yi+1))n= (xi+1(yi))n= xn+1(y). A wszystko to wida´c na takim obrazku:

yi∈ Di oo ψϕi

i

//

xi+1



yi+1∈ Di+1

xi+2



Dn Di

ψni

oo oo ψi Di+1

3. Cze´,s´c trzecia wynika z drugiej, dla y = ⊥ ∈ D0, a cze´,s´c czwarta wprost z definicji.

Lemat 11.7 Aplikacja w D jest ekstensjonalna: je´sli x · z = y · z zachodzi dla dowolnego z, to elementy x i y sa r´, owne.

Dow´od: W istocie zachodzi implikacja

je´sli ∀z ∈ D(x · z ≤ y · z), to x ≤ y.

Nier´owno´s´c x0 ≤ y0 wynika z lematu 11.6(3), bo mamy x · ⊥ ≤ y · ⊥. Dalej, z lematu 11.6(2),

xn+1(z) = (x · z)n≤ (y · z)n= yn+1(z), dla dowolnego n i dowolnego z ∈ Dn, a wiec x, n+1≤ yn+1.

Lemat 11.8 Niech f ∈ Dn+1 i g ∈ Dn+2 bed, a takie, ˙ze ϕ, n(f (a)) ≤ g(ϕn(a)) dla a ∈ Dn. Wtedy f ≤ g w zbiorze D.

Dow´od: Nale˙zy sprawdzi´c, jakie nici wyznaczaja f i g. Poniewa˙z ϕ, n(f (a)) ≤ g(ϕn(a)) wiec f (a) = ψ, nn(f (a))) ≤ ψn(g(ϕn(a)) = ψn+1(g)(a), czyli f ≤ ψn+1(g) w zbiorze Dn+1. Inaczej m´owiac (f ), n+1 ≤ (g)n+1, a reszta wynika z monotoniczno´sci funkcji ϕi i ψi.

Twierdzenie 11.9 Zbi´or D jest refleksywnym cpo, co wiecej, jest on izomorficzny z prze-, strzenia funkcyjn, a [D, → D].

Dow´od: Funkcja F : D→ [D→ D] jest okre´slona w oczywisty spos´ob:

F (x)(y) = x · y.

Z lemat´ow 11.5 i 11.7 wynika, ˙ze F jest ciag la i r´, o˙znowarto´sciowa. Aby sprawdzi´c, ˙ze jest to surjekcja, we´zmy dowolna funkcj, e f ∈ [D, → D] i niech f(n) : Dn → Dn bedzie jej,

”aproksymacja” do D, n, tj. niech f(n)(y) = f (y)n dla y ∈ Dn.

Ciag f, (n)nie musi by´c nicia, ale jest wst, epuj, acy. Istotnie, zauwa˙zmy ˙ze elementy y ∈ D, noraz ϕn(y) ∈ Dn+1 wyznaczaja t, e sam, a ni´, c, zatem z punktu widzenia D sa po prostu r´, owne.

A wiec f (y) = f (ϕ, n(y)) w Dskad f, (n)(y) = f (y)n≤ f (ϕn(y))n+1= f(n+1)n(y)) zachodzi dla y ∈ Dn. ´Sci´slej, mamy nier´owno´s´c ϕn(f(n)(y)) ≤ f(n+1)n(y)) pomiedzy elementami, zbioru Dn+1, co na mocy lematu 11.8 oznacza f(n)≤ f(n+1).

Skoro ciag f, (n) jest wstepuj, acy, to ma kres a = sup, nf(n). Trzeba teraz sprawdzi´c, ˙ze F (a) = f . We´zmy dowolne y ∈ D. Poniewa˙z ciagi f, (n) i yn sa wst, epuj, ace, wi, ec,

F (a)(y) = a · y = (supnf(n)) · y = supn(f(n)· y) = supnf(n)(yn) = supnf (yn)n= f (y) Je´sli f, g ∈ [D→ D] oraz f ≤ g to oczywi´scie tak˙ze supnf(n)≤ supng(n). Oznacza to, ˙ze funkcja G : [D → D] → D, odwrotna do F jest monotoniczna. A zatem funkcja F jest izomorfizmem porzadk´, ow, w szczeg´olno´sci F i G sa ci, ag le.,

Wniosek 11.10 Zbi´or D wyznacza ekstensjonalny lambda-model D= hD, ·, [[ ]]i.

Twierdzenie 11.11 (Hyland, Wadsworth) Termy M i N sa obserwacyjnie r´, ownowa˙zne wtedy i tylko wtedy, gdy D|= M = N .

Dow´od: Mo˙zna go znale´z´c w ksia˙zce Barendregta.,

Cwiczenia´

1. Uzupe lni´c szczeg´o ly dowod´ow.

2. Jakie nici sa interpretacjami term´, ow K, ω, itd. w modelu D?

2. Jakie nici sa interpretacjami term´, ow K, ω, itd. w modelu D?

W dokumencie 1 Sk ladnia rachunku lambda (Stron 35-51)