Rachunek lambda
Transkrypt
Rachunek lambda
Materialy do wykladu Rachunek lambda Pawel Urzyczyn [email protected] 12 sierpnia 2008 Rachunek lambda i logika kombinatoryczna powstaly w latach trzydziestych dwudziestego wieku. Poczatkowo mialy stanowić alternatywne wobec teorii mnogości podejście do pod, staw matematyki, w którym funkcja (rozumiana intensjonalnie jako definicja) byla pojeciem , pierwotnym. Ten zamiar sie, nie powiódl, ale szybko okazalo sie, , że rachunek lambda jest niezwykle użytecznym aparatem w teorii obliczeń. Definicje, funkcji obliczalnej sformulowano wcześniej za pomoca, rachunku lambda, niż w jezyku maszyn Turinga. , Później, w miare, rozwoju informatyki, jezyk rachunku lambda okazal sie, niezastapionym , , narzedziem w teorii jezyków programowania. A wreszcie i w praktyce, gdy pojawily sie jezyki , , programowania funkcyjnego. Dzisiaj znajomość podstaw rachunku lambda jest niezbednym , elementem wyksztalcenia nowoczesnego informatyka. Poprzez zwiazki z logika, intuicjonistyczna,, rachunek lambda odzyskal też należne sobie miejsce , w podstawach matematyki, zwlaszcza w teorii dowodu. Dlatego ta tematyka powinna być interesujaca także dla studentów matematyki zainteresowanych logika., , Te notatki obejmuja, najważniejsze wiadomości z rachunku lambda bez typów i podstawowe informacje o systemach z typami. Zrozumienie ich nie wymaga w zasadzie przygotowania wykraczajacego poza material wykladany na I roku. Jednak wcześniejsze wysluchanie , wykladu z jezyków i automatów pozwoli na spojrzenie na pewne zagadnienia z szerszej pers, pektywy. 1 Skladnia rachunku lambda W rachunku lambda rozważamy obiekty zwane lambda-termami. Tradycyjnie lambda-termy definiowane sa, jako formalne wyrażenia pewnego jezyka, podobnie jak zwykle termy w alge, brze i logice pierwszego rzedu. Istotna różnica polega na tym, że lambda-termy pozostajace , , w pewnej relacji równoważności (alfa-konwersji) sa, ze soba, utożsamiane (uważane za identyczne). A wiec , lambda-termy to w istocie nie wyrażenia, ale klasy abstrakcji lambda-wyrażeń (nazywanych też pre-termami), które teraz zdefiniujemy. 12 sierpnia 2008, godzina 14: 39 strona 2 Przyjmijmy, że mamy pewien przeliczalny nieskończony zbiór zmiennych przedmiotowych. – Zmienne przedmiotowe sa, lambda-wyrażeniami; – Jeśli M i N sa, lambda-wyrażeniami, to (M N ) też; – Jeśli M jest lambda-wyrażeniem i x jest zmienna,, to (λxM ) jest lambda-wyrażeniem. Wyrażenie postaci (M N ) nazywamy aplikacja, , a wyrażenie postaci (λxM ) to λ-abstrakcja. Intuicyjny sens aplikacji (M N ) to zastosowanie operacji M do argumentu N . Abstrakcje, (λxM ) interpretujemy natomiast jako definicje, operacji (funkcji), która argumentowi x przypisuje M . Oczywiście x może wystepować w M , tj. M zależy od x. Narzuca sie, analogia , z procedura, (funkcja) , o parametrze formalnym x i treści M . Stosujemy nastepujace konwencje notacyjne: , – opuszczamy zewnetrzne nawiasy; , – aplikacja wiaże w lewo, tj. M N P oznacza (M N )P ; , – piszemy λx1 . . . xn .M zamiast λx1 (. . . (λxn M ) · · · ). Kropke, w wyrażeniu λx1 . . . xn .M można uważać za lewy nawias, którego zasieg sie, , rozciaga , do końca wyrażenia M . Operator lambda-abstrakcji λ wiaże x w wyrażeniu λxM , zmienne, tj. wszystkie wystapienia , uważa sie, za zwiazane (lokalne). Zmienne wolne (globalne) definiuje sie, tak: , – FV(x) = {x}; – FV(M N ) = FV(M ) ∪ FV(N ); – FV(λxM ) = FV(M ) − {x}. Alfa-konwersja Wybór zmiennych używanych w wyrażeniu jako zwiazane jest sprawa, drugorzedn a., Takie , , wyrażenia, jak na przyklad λx.xy i λz.zy, intuicyjnie definiuja, te, sama, operacje, ( zaapli” kuj dany argument do y”) wiec , z naszego punktu widzenia powinny być uważane za takie same. Dlatego lambda-wyrażenia różniace sie, tylko zmiennymi zwiazanymi chcemy ze soba, , , utożsamiać. Utożsamienie to nazywa sie, alfa-konwersja. , Pojecie alfa-konwersji można ściśle zdefiniować na wiele sposobów, my wybierzemy interpre, tacje, grafowa., Lambda-grafy Przez drzewo rozumiemy poniżej skończone drzewo etykietowane, w którym wystepować moga, , nastepuj ace rodzaje wierzcho lków: , , • wierzcholki o etykiecie @, które maja, zawsze dwa nastepniki: lewy i prawy; , • wierzcholki o etykiecie λ, które maja, zawsze jeden nastepnik; , • liście etykietowane zmiennymi przedmiotowymi; • liście bez etykiet. strona 3 12 sierpnia 2008, godzina 14: 39 Jeśli z każdego wierzcholka bez etykiety poprowadzimy nowa, krawedź do któregoś z poprzed, ników tego wierzcholka o etykiecie λ, to otrzymany graf skierowany nazwiemy lambda-drzewem. Liśćmi lambda-drzewa nazywamy jego wierzcholki końcowe (ich etykietami sa, zmienne). Na przyklad taki graf jest lambda-drzewem (wierzcholki bez etykiet oznaczono przez ◦). 1λp ll @ SSSSSS lll SSS l l l λj w @ FFFF www 4λ ◦ x @ FFFF xxx ◦ ◦ v @ HHHH vvv ◦ y Teraz dowolnemu lambda-wyrażeniu M przypiszemy lambda-drzewo G(M ). • Jeśli x jest zmienna, to G(x) sklada sie, tylko z jednego wierzcholka o etykiecie x. • Graf G(P Q) ma korzeń o etykiecie @. Jego lewym nastepnikiem jest korzeń grafu G(P ) , a prawym korzeń grafu G(Q). • Graf G(λx P ) jest otrzymany z G(P ) poprzez – Dodanie nowego korzenia o etykiecie λ. – Polaczenie go krawedzi a, z korzeniem grafu G(P ). , , – Dodanie krawedzi od wszystkich wierzcholków z etykieta, x do nowego korzenia. , – Usuniecie etykiet x. , Na przyklad G(λz.(λu.zu)((λu.uy)z)) to lambda-drzewo na rysunku powyżej. Latwo widzieć, że etykiety liści w G(M ) to dokladnie zmienne wolne M . Na dodatek mamy: Fakt 1.1 Jeśli T jest lambda-drzewem, to T = G(M ) dla pewnego lambda-wyrażenia M . Dowód: Indukcja ze wzgledu na liczbe, wierzcholków grafu T . Jeśli jest tylko jeden wierz, cholek, to jego etykieta, jest pewna zmienna x i mamy T = G(x). Jeśli etykieta, korzenia jest @, to T sklada sie, z korzenia i dwóch rozlacznych podgrafów T1 i T2 , do których stosu, jemy zalożenie indukcyjne. Mamy wiec T = G(M ) oraz T2 = G(M2 ). Oczywiście wtedy 1 1 , T = G(M1 M2 ). Pozostaje przypadek gdy etykieta, korzenia jest λ. Wtedy T sklada sie, z korzenia, podgrafu T1 zaczepionego w nastepniku korzenia i pewnej liczby krawedzi prowadza, , cych do korzenia z wierzcholków bez etykiet. Przypisujac tym wierzcho lkom etykiet e, z, która , nie wystepuje w grafie T1 , otrzymujemy z T1 lambda-drzewo T10 . Z zalożenia indukcyjnego , 0 T1 = G(M1 ) dla pewnego lambda-wyrażenia M1 i możemy napisać T = G(λz.M1 ). Relacje, alfa-konwersji (oznaczana, przez =α ) definiujemy tak: M =α N wtedy i tylko wtedy, gdy G(M ) = G(N ). strona 4 12 sierpnia 2008, godzina 14: 39 Od tej pory przez lambda-termy albo po prostu termy rozumiemy lambda-wyrażenia z doklad” nościa, do alfa-konwersji”, czyli w istocie klasy abstrakcji relacji =α . Każda taka klasa jest wyznaczona przez pewne lambda-drzewo, możemy wiec , uważać, że lambda-termy to tak naprawde, lambda-drzewa. Lambda-wyrażenia sa, tylko ich syntaktyczna, reprezentacja,, przy czym dowolne dwie alfa-równoważne reprezentacje tego samego termu (lambda-drzewa) sa, tak samo dobre. Na przyklad (λx.x(λx.xy))(λy.yx) to to samo co (λu.u(λx.xy))(λv.vx), ale nie to samo co (λy.y(λy.yx))(λx.xy). Podstawienie Dla danych lambda-grafow G i T przez podstawienie G[x := T ] rozumiemy graf otrzymany z G przez zamiane, każdego liścia z etykieta, x na korzeń odrebnej kopii grafu T . Ilustracja jest , chyba prostsza i bardziej zrozumiala niż jakakolwiek formalna definicja. Jeśli mamy grafy @ A @ @ G @ @ @ x x @ A T A A A A to graf G[x := T ] wyglada tak jak na Obrazku 1 (etykiety x już nie ma): , @ @ @ G @ @ @ @ A A A A T A A A A A T A A A Obrazek 1: Podstawienie G[x := T ] Jeśli G = G(M ) i T = G(N ) to graf G[x := T ] reprezentuje wynik podstawienia wyrażenia N na miejsce wszystkich wolnych wystapień zmiennej x w M . Ale ta interpretacja nie zawsze , jest poprawna. Problem powstaje wtedy, gdy jakaś zmienna z wolna w N przy naiwnym” ” tekstowym podstawieniu znalazlaby sie, w zasiegu wiazania λz. Na przyklad wynikiem pod, , stawienia z na x w termie λz.x(xz) nie powinno być λz.z(zz), ale λy.z(zy) (przy czym wybór strona 5 12 sierpnia 2008, godzina 14: 39 zmiennej y jest nieistotny). Mamy bowiem podstawić z na x nie w slowie ale w grafie λo x @ GGG xxx x u @ HHH uuu x ◦ w którym w ogóle nie ma żadnego z. Tekstowe podstawienie jest poprawne tylko wtedy, gdy nie wystepuje konflikt nazw wolnych i zwiazanych (globalnych i lokalnych). Dlatego wcześniej , , należy dokonać odpowiedniej wymiany zmiennych zwiazanych. , Jeśli M i N sa, lambda-wyrażeniami to notacja M [x := N ] oznacza lambda-term o grafie G(M )[x := G(N )]. Napiszemy wiec , na przyklad (λz.x(xz))[x := z] = λy.z(zy), pamietaj ac, jest nieistotny. Nastepuj acy lemat stanowi syntak, , że wybór zmiennej zwiazanej , , , tyczna, definicje, podstawienia. Lemat 1.2 Równość M [x := N ] = R ma miejsce wtedy i tylko wtedy, gdy zachodzi jeden z nastepuj acych przypadków: , , 1. M = x, oraz R = N ; 2. M jest zmienna, różna, od x, oraz R = M ; 3. M = P Q, oraz R = P [x := N ]Q[x := N ]; 4. M = λy P , gdzie y 6∈ {x} ∪ FV(N ), oraz R = λy.P [x := N ]. Dowód: Każdy term M jest albo zmienna, albo aplikacja, albo abstrakcja., Ta ostatnia możliwość to jedyny nieoczywisty przypadek, niech wiec abstrakcja., Jeśli z lambda, M b edzie , drzewa termu M odrzucimy korzeń wraz z prowadzacymi do niego kraw edziami, to otrzymamy , , graf M 0 , w którym niektóre wierzcholki końcowe nie maja, etykiet. Nadajac tym wierzcholkom , nowa” jako , etykiete, y otrzymamy taki term P , że M = λy P . Ponieważ y nie wystepuje , ” etykieta w lambda-drzewie N , wiec nie ma znaczenia czy najpierw w termie P zamienimy x , na N , a potem dodamy lambde, wiaż w odwrotnej kolejności. , ac , a, y, czy postapimy , Zapiszmy treść lematu 1.2 w nieco prostszej postaci: • x[x := N ] = N ; • y[x := N ] = y, gdy y jest zmienna, różna, od x; • (P Q)[x := N ] = P [x := N ]Q[x := N ]; • (λy P )[x := N ] = λy.P [x := N ], gdy y 6= x oraz y 6∈ FV(N ). Powyższe reguly można stosować w dowodach indukcyjnych. 12 sierpnia 2008, godzina 14: 39 strona 6 Lemat 1.3 1. FV(M [x := N ]) = (FV(M ) − {x}) ∪ FV(N ), jeśli x ∈ FV(M ); FV(M ), w przeciwnym przypadku. 2. Jeśli x 6∈ FV(M ) to M [x := N ] = M . 3. M [x := x] = M . 4. Jeśli λx.P = λy.Q to P [x := y] = Q i Q[y := x] = P . Latwy dowód tego lematu pomijamy, udowodnimy za to nastepny. , Lemat 1.4 (o podstawieniu) Jeśli x 6= y oraz albo x 6∈ FV(R) albo y 6∈ FV(M ), to M [x := N ][y := R] = M [y := R][x := N [y := R]]. Dowód: Dowód jest przez indukcje, ze wzgledu na rozmiar M . Rozważamy różne przy, padki, w zależności od postaci tego termu. Przypadek 1: Jeżeli M = x, to M [x := N ][y := R] = x[x := N ][y := R] = N [y := R] = x[x := N [y := R]] = x[y := R][x := N [y := R]]. Przypadek 2: Jeżeli M = y, to M [x := N ][y := R] = y[x := N ][y := R] = y[y := R] = R = R[x := N [y := R]] = y[y := R][x := N [y := R]], bo wtedy x 6∈ FV(R). Przypadek 3: Jeżeli M jest jakaś , inna, zmienna, z, to zarówno M [x := N ][y := R] jak też M [y := R][x := N [y := R]] jest równe z. Przypadek 4: Gdy M = P Q, to M [x:=N ][y:=R] = P [x:=N ][y:=R]Q[x:=N ][y:=R] = P [y:=R][x:=N [y:=R]]Q[y:=R][x:=N [y:=R]] = (P Q)[y:=R][x:=N [y:=R]], na mocy zalożenia indukcyjnego. Przypadek 5: Jeżeli M jest abstrakcja, to można zakladać, że M = λz Q, gdzie z 6= x, y. Po lewej stronie mamy wtedy λz. Q[x := N ][y := R] i z zalożenia indukcyjnego otrzymamy M [x := N ][y := R] = λz. Q[y := R][x := N [y := R]] = (λz. Q)[y := R][x := N [y := R]]. Wniosek 1.5 Jeśli y 6∈ FV(M ) to M [x := y][y := R] = M [x := R]. Ćwiczenia 1. Jaki blad , popelniono w tej definicji lambda-termu: M ::= x | M N | λx.M ? 2. Udowodnić lemat 1.3. 3. Napis M (a|b) oznacza wyrażenie powstale z M przez jednoczesna, zamiane, wszystkich wystapień symbolu a w M na wystapienia b i odwrotnie. Przez ≡α oznaczmy najmniejsza, relacja, , , równoważności w zbiorze lambda-wyrażeń, spelniajac warunki: , a, nastepujace , • λx.M ≡α λy.M (x|y), dla y 6∈ FV(M ); • jeżeli M ≡α M 0 , to λx.M ≡α λx.M 0 ; • jeżeli M =α M 0 i N =α N 0 to M N =α M 0 N 0 . Udowodnić, że M ≡α n wtedy i tylko wtedy, gdy M =α N . strona 7 12 sierpnia 2008, godzina 14: 39 2 Redukcje Relacja beta-redukcji to najmniejsza relacja w zbiorze lambda-termów, spelniajaca warunki: , • (λxP )Q →β P [x := Q]; • jeśli M →β M 0 , to M N →β M 0 N , N M →β N M 0 oraz λxM →β λxM 0 . 0 Inaczej mówiac, , M →β M zachodzi gdy podterm termu M postaci (λxP )Q, czyli β-redeks, zostaje zamieniony na P [x := Q]. Znakiem β oznaczamy domkniecie przechodnio-zwrotne , relacji →β , a znakiem =β najmniejsza, relacje, równoważności zawierajac , a, →β . Te, ostatnia, nazywamy relacja, beta-równości. Z punktu widzenia grafowego, beta-redeks to krawedź od @ do λ: , (1) @> λ >> >> > | (3) (2) Beta-redukcja plega na usunieciu tej krawedzi, tj. na wyprostowaniu” drogi od (1) do (2). , , ” Każda krawedź wchodz aca do λ (reprezentuj aca wyst apienie zmiennej zwiazanej) zostaje przy , , , , , tym skierowana do osobnej kopii termu zaczepionego w (3). Tj. podgraf postaci (1) @> 7λh >> >> > | (3) (2) ◦ ◦ zostaje zastapiony podgrafem postaci: , (1) (2) (3) (3) strona 8 12 sierpnia 2008, godzina 14: 39 Uwaga: może sie, zdarzyć, że lambda nie wiaże żadnego wystapienia zmiennej (nie ma żad, , , nej krawedzi prowadzacej do λ). Wtedy podgraf (3) znika. Odpowiada to redukcji postaci , , (λx.M )N →β M , gdzie x 6∈ FV(M ). Nastepuj acy latwy lemat stwierdza, że β-redukcja jest zgodna z operacja, podstawienia. , , Lemat 2.1 Jeśli M β M 0 i N β N 0 to M [x := N ] β M 0 [x := N 0 ]. Dowód: Należy pokazać dwa prostsze stwierdzenia: (1) Jeśli M →β M 0 , to M [x := N ] →β M 0 [x := N ]; (2) Jeśli N →β N 0 , to M [x := N ] β M [x := N 0 ], a nastepnie zastosować indukcje, ze wzgledu na liczbe, kroków redukcji. Zarówno (1) jak (2) , , można udowodnić przez indukcje, ze wzgledu na dlugość termu M . Istotny przypadek w dowo, dzie cześci (1) zachodzi wtedy, gdy M = (λy P )Q i M 0 = P [y:=Q], dla pewnych P, Q. Przyj, mujac , y 6∈ FV(N ), mamy M [x:=N ] = (λy.P [x:=N ])Q[x:=N ] →β P [x:=N ][y:=Q[x:=N ]] = P [y:=Q][x:=N ] = M 0 [x:=N ], na mocy lematu o podstawieniu 1.4. Szczególy pozostawiamy jako ćwiczenie. Teoria λ Rachunek lambda bez typów można przedstawić jako teorie, równościowa, o aksjomatach i regulach jak na Obrazku 2. Jeśli w tym systemie można wyprowadzić równość M = N , to napiszemy λ ` M = N . Latwo sprawdzić równoważność: λ ` M = N wtedy i tylko wtedy, gdy M =β N . (β) (λx M )N = M [x := N ] M =N MP = NP M =N N =M M =N PM = PN x=x (ξ) M =N λx M = λx N M = N, N = P M =P Obrazek 2: Rachunek lambda jako teoria równościowa Jednakże dla nas ważne sa, też wlasności beta-redukcji, a nie tylko beta-równości. Term postaci (λxP )Q nazywamy beta-redeksem. Jeśli w termie M nie wystepuje żaden beta-redeks, to dla , żadnego N nie zachodzi M →β N . Mówimy wtedy, że M jest w postaci β-normalnej, lub po prostu w postaci normalnej. Nietrudno zauważyć, że postaci normalne to dokladnie termy ~ , gdzie N ~ sa normalne. ksztaltu λ~x. y N , strona 9 12 sierpnia 2008, godzina 14: 39 Przyklad: Nastepuj ace termy sa, w postaci normalnej: , , I = λx.x K = λxy.x S = λxyz.xz(yz) ω = λx.xx Natomiast term Ω = ωω nie jest w postaci normalnej, bo Ω →β Ω. Jeśli M β N i N jest w postaci normalnej, to mówimy, że M ma postać normalna,, i że N jest postacia, normalna, termu M . Mówimy, że term M ma wlasność silnej normalizacji (jest silnie normalizowalny) jeżeli nie istnieje nieskończony ciag , redukcji M = M0 →β M1 →β M2 →β · · · Oczywiście term silnie normalizowalny musi mieć postać normalna., Jeszcze jedno przydatne czasem oznaczenie. Piszemy M ↓β N , gdy istnieje taki term P , że M β P β N . Glównym przedmiotem naszego zainteresowania jest beta-redukcja. Dlatego np. symbole → i domyślnie1 oznaczaja, →β i β . Ale czasami rozważamy także relacje, eta-redukcji. Jest to najmniejsza relacja →η , spelniajac , a, warunki: • λx.M x →η M , gdy x 6∈ FV(M ); • jeśli M →η M 0 , to M N →η M 0 N , N M →η N M 0 oraz λxM →η λxM 0 . Symbol →βη oznacza sume, tych relacyj. Używamy odpowiednio notacji np. η , =βη , mówimy o postaciach η-normalnych” itd. ” Jeżeli do aksjomatów i regul równościowych rozważanych powyżej dodamy nowy aksjomat (η) λx.M x = M, dla x 6∈ FV(M ), to oczywiście otrzymamy system wnioskowania, pozwalajacy na wyprowa, dzenie równości M = N wtedy i tylko wtedy gdy M =βη N . Mniej oczywiste jest to, że aksjomat (η) można równoważnie zastapić przez nastepuj ac , , , a, regule, ekstensjonalności: (ext) Mx = Nx (x 6∈ FV(M ) ∪ FV(N )) M =N Regula ekstensjonalności wyraża taka, myśl: funkcje, które dla tych samych argumentów daja, te same wyniki, sa, równe. Dygresja: Zauważmy, że beta- i eta-redukcja sa, w pewnym sensie dualne do siebie. Betaredeks to term, w którym najpierw utworzyliśmy funkcje, , tj. wprowadziliśmy abstrakcje, (czyli zapytanie o argument, prompt), a potem ja, eliminujemy przez dostarczenie argumentu. Etaredeks odpowiada odwrotnej kolejności: najpierw eliminujemy prompt, dostarczajac , zmiennej jako argumentu, a potem wprowadzamy abstrakcje, ze wzgledu na te, zmienna., , 1 W odniesieniu do znaku równości nie stosujemy tej konwencji (ale spotyka sie, to czesto w literaturze). , strona 10 12 sierpnia 2008, godzina 14: 39 Ćwiczenia 1. Napisać program, który drukuje wlasny tekst. (Nie wolno odwolywać sie, do nazwy pliku, miejsca w pamieci , itp.) Zadanie latwe w Lispie, trudne w Pascalu. 2. Udowodnić, że jeśli (λxP )Q = (λxP 0 )Q0 to P [x := Q] = P 0 [x := Q0 ]. Wskazówka: Użyć lematu 1.3 i wniosku 1.5. 3. Udowodnić, że aksjomat (η) jest równoważny regule (ext), tj. te same równości można wyprowadzić w systemie z Obrazka 2 rozszerzonym o (η) i w systemie rozszerzonym o regule, (ext). 3 Twierdzenie Churcha-Rossera W jednym termie może wystepować wiecej niż jeden redeks. Można wiec , , , go redukować na różne sposoby. Niedobrze jednak byloby, gdyby te różne ciagi redukcji prowadzily do , nieodwracalnie różnych rezultatów. Na szczeście mamy twierdzenie Churcha-Rossera. , Twierdzenie 3.1 Jeśli P β M β Q, to P ↓β Q. Treść twierdzenia Churcha-Rossera przedstawiamy za pomoca, diagramu (Obrazek 3). M@ @@ β @@ @@ @ ~~ ~~ ~ ~ ~~~ ~ β P A A β A A • ~}~ } } Q } β Obrazek 3: Twierdzenie Churcha-Rossera Inaczej mówiac, , twierdzenie to mówi, że relacja β ma tzw. wlasność rombu, która niestety nie zachodzi dla relacji →β . Jako przyklad można podać term M = (λx.xx)((λx.x)y). Zanim udowodnimy twierdzenie Churcha-Rossera, zauważmy, że zjawisko, o którym mówimy, może dotyczyć każdej relacji dwuargumentowej. Poniżej przyjmujemy taka, konwencje: , podwójna strzalka zawsze oznacza domkniecie przechodnio-zwrotne relacji oznaczonej strzalka, , pojedyncza., Mówimy, że relacja → w zbiorze A ma wlasność Churcha-Rossera (CR), jeżeli dla dowolnych elementów a, b, c ∈ A, takich że b a c, istnieje takie d, że b d c. Relacja → ma slaba, wlasność Churcha-Rossera (WCR), jeżeli b ← a → c implikuje b d c dla pewnego d. Oczywiście wlasność rombu implikuje CR (ale nie na odwrót), a wlasność CR implikuje WCR. Mniej oczywiste jest to, że wlasność CR nie wynika z WCR. Najprostszy przyklad jest taki: • ←− • ←→ • −→ • Jeśli jednak relacja → ma wlasność silnej normalizacji (SN), tj. nie istnieje nieskończony ciag , postaci a0 → a1 → a2 → · · · , to już jest dobrze. Fakt 3.2 (Lemat Newmana) Jednoczesne zachodzenie WCR i SN implikuje CR. strona 11 12 sierpnia 2008, godzina 14: 39 b ? ? ? b1 ? · ? ? ? ? ? ? a ?? ?? ?? ? ? d ? ? · ? ? ? c1 · ?? ?? ?? ? c Obrazek 4: Rysunek do lematu Newmana Dowód: Jeśli relacja → ma wlasność SN to relacja jest dobrym ufundowaniem zbioru A. Przez indukcje, ze wzgledu na porzadek dowodzimy, że każdy element a ∈ A ma wlasność: , , Dla dowolnych b, c, jeśli b a c, to b ↓ c. Jeśli a = b lub a = c to teza jest oczywista. Zalóżmy wiec, , że b b1 ← a → c1 c. Na mocy WCR jest takie d, że b1 d c1 . Z zalożenia indukcyjnego, zastosowanego do b1 i c1 mamy wiec , b ↓ d ↓ c1 i możemy zastosować zalożenie indukcyjne dla d. Dowód twierdzenia Churcha-Rossera 1 Dla dowodu zdefiniujemy pewna, pomocnicza, relacje. to relacja →, określona jako , Bedzie , najmniejsza relacja na termach, która spelnia nastepuj ace warunki: , , 1 – x → x, gdy x jest zmienna;, 1 1 – jeśli M → M 0 , to λxM → λxM 0 ; 1 1 1 1 – jeśli M → M 0 i N → N 0 , to M N → M 0 N 0 , oraz (λxM )N → M 0 [x := N 0 ]. 1 Relacja → odpowiada jednoczesnej redukcji kilku beta-redeksów. Lemat 3.3 1 (1) Dla dowolnego M zachodzi M → M . 1 1 1 (2) Jeśli M → M 0 i N → N 0 , to M [x := N ] → M 0 [x := N 0 ]. Dowód: Dowód cześci (1) jest przez indukcje, ze wzgledu na budowe, M , a dowód cześci (2) przez , , , 1 0 indukcje, ze wzgledu na wyprowadzenie M → M . W dowodzie punktu (2) nieoczywisty jest , strona 12 12 sierpnia 2008, godzina 14: 39 1 1 1 przypadek, gdy M = (λyP )Q → P 0 [y := Q0 ], gdzie P → P 0 oraz Q → Q0 . Zakladajac, , że zmienna zwiazana y jest tak wybrana, że y ∈ 6 FV (N ), i korzystaj ac z za lożenia indukcyjnego , , 1 1 o P → P 0 i Q → Q0 , mamy wtedy na mocy lematu o podstawieniu: 1 M [x:=N ] = (λyP [x:=N ])Q[x:=N ] → P 0 [x:=N 0 ][y:=Q0 [x:=N 0 ]]] = P 0 [y:=Q0 ][x:=N 0 ]. Uwaga: Użyty w powyższym dowodzie zwrot dowód przez indukcje, ze wzgledu na wyprowa, ” 1 1 0 0 dzenie M → M ” należy ściśle rozumieć tak: Zbiór par termów {(M, M ) | M → M 0 } przedstawiamy jako sume, wstepuj acego ciagu zbiorów Xi , gdzie X0 = {(x, x) | x jest zmienna}, , , , , oraz 0 0 0 Xi+1 powstaje z Xi przez dodanie wszystkich par (M N, M N ), ((λxM )N, M [x := N 0 ]) oraz (λxM, λxM 0 ), dla dowolnych (M, M 0 ) i (N, N 0 ), które sa, już w Xi . Indukcje, tak naprawde, prowadzimy ze wzgledu na najmniejsze takie i, że (M, M 0 ) ∈ Xi . , { 1 {{{ { { {} { M0 C C 1 C MD D C! M 000 DD 1 DD DD ! }z z z1 z M 00 Obrazek 5: Lemat 3.4 1 1 1 Lemat 3.4 Relacja → ma wlasność rombu, tj. jeśli M → M 0 i M → M 00 , to dla pewnego 1 1 termu M 000 zachodzi M 0 → M 000 ← M 00 . 1 Dowód: Dowód jest przez indukcje, ze wzgledu na wyprowadzenie M → M 0 . Wiekszość , , 1 1 przypadków jest latwa. Niech na przyklad M = λxP → λxP 0 = M 0 , gdzie P → P 0 . Wtedy 1 term M 00 musi być postaci λxP 00 i należy skorzystać z zalożenia indukcyjnego o P → P 0 . Mniej trywialny jest np. przypadek gdy M = (λxP )Q oraz M 0 = (λxP 0 )Q0 a M 00 = P 00 [x:=Q00 ]. 1 1 1 1 Wtedy P → P 0 , P 00 i Q → Q0 , Q00 . Z zalożenia indukcyjnego dla P → P 0 i Q → Q0 dostajemy } }} }} } } ~} 1 P0 A A 1 A P B B A P 000 } }} }} } }~ } BB 1 BB BB | |1 |~ | 1 Q0 A P 00 A 1 A QB B A Q000 BB 1 BB BB ~| | |1 | Q00 Aby z tego otrzymać teze, , należy skorzystać z lematu 3.3(2), jak na Obrazku 6. 1 Dowód twierdzenia 3.1: Ponieważ relacja → ma wlasność rombu, wiec , tym bardziej jej 1 domkniecie przechodnio-zwrotne ma wlasność rombu. , strona 13 12 sierpnia 2008, godzina 14: 39 (λxP )Q LLL LLL1 LLL L& t tt tt t t y t t 1 (λxP 0 )Q0 J J P 00 [x := Q00 ] J J 1 J$ P 000 [x yr := r r 1 r r Q00 ] Obrazek 6: Dowód lematu 3.4. Zauważmy teraz, że mamy nastepuj ace zawierania pomiedzy relacjami: , , , 1 →β ⊆ → ⊆ β . 1 Stad , latwo wywnioskować, że relacje i β sa, równe, a wiec , β ma wlasność rombu. Skoro udowodniliśmy twierdzenie Churcha-Rossera, zobaczmy jakie ma ono konsekwencje. Wniosek 3.5 0) Jeśli M ↓β N ↓β Q, to M ↓β Q. 1) Jeśli M =β N , to M ↓β N . 2) Każdy term ma co najwyżej jedna, postać normalna. , 3) Rachunek lambda jest niesprzeczny jako teoria równościowa: nie można np. wyprowadzić równości x = y, ponieważ x 6=β y. Dowód: Jedyna nieoczywista cześć to (1). Jeśli M =β N , to mamy taki ciag: , , M = M0 Q1 M1 Q2 M2 · · · Mn = N Dowodzimy M ↓ N , przez indukcje, ze wzgledu na n. Jeśli n = 0, to sprawa jest oczywista, , w przeciwnym razie z zalożenia indukcyjnego mamy M1 ↓β N . Ale M0 ↓β M1 na mocy CR, wiec (0). Zob. Obrazek 7. , M ↓β N wynika z cześci , A zatem sens twierdzenia Churcha-Rossera można wyrazić tak. Chociaż term może być redukowany na wiele sposobów, to wszystkie te sposoby sa, zgodne. Każde obliczenie zakończone sukcesem (uzyskaniem postaci normalnej) daje ten sam wynik. Ćwiczenia 1. Udowodnić nastepuj ace wzmocnienie lematu 3.4: , , 1 1 Dla dowolnego M istnieje taki term M • , że z warunku M → M 0 wynika M → M • . strona 14 12 sierpnia 2008, godzina 14: 39 M0 ? Q1 ?? ? ? • D D M1 D D D D Q2 ?? ? zz }z} z ... M2 D D D D D D D D D D D • D ?? ? Mn−1 w w{ { D" " Qn w w w w w w w w w Mn D" " • Obrazek 7: Dowód wniosku 3.5(1) 4 Eta-redukcja Każdy krok η-redukcji λx. M x →η M zmniejsza dlugość termu, zatem zachodzi Fakt 4.1 Relacja η-redukcji ma wlasność silnej normalizacji. Aby wywnioskować, że →η ma wlasność Churcha-Rossera, wystarczy wiec , pokazać WCR. W istocie mamy prawie2 wlasność rombu, co można latwo pokazać, badajac możliwe przypadki , wzajemnego polożenia redeksów. Lemat 4.2 Domkniecie zwrotne →= η relacji →η ma wlasność rombu. , Wniosek 4.3 Relacja η-redukcji ma wlasność Churcha-Rossera. Pokażemy teraz, że wlasność Churcha-Rossera zachodzi także dla relacji →βη . Lemat 4.4 Jeśli P η← M →β Q to istnieje takie N , że P →= β N η Q. η M> > >>β >> > Q P > >= > β > η N Dowód: Badajac , wzajemne polożenie beta- i eta-redeksów w grafie termu M (Obrazek 8), widzimy że kolejność, w której redukujemy te redeksy, na ogól nie ma znaczenia i rezultat strona 15 12 sierpnia 2008, godzina 14: 39 λc @9 99 99 λ @: :: :: : • Obrazek 8: Eta-redeks i beta-redeks jest taki sam. Pierwszy wyjatek, to sytuacja gdy eta-redeks znajduje sie, w argumencie beta, redeksu i wskutek redukcji może zostać usuniety lub powielony. Dlatego w treści lematu , po prawej stronie mamy strzalke, podwójna, η a nie pojedyncza., Pozostale dwa wyjatki , zachodza, wtedy, gdy nasze dwa redeksy wykorzystuja, ten sam wierzcholek grafu (lambde, lub aplikacje). Ma to miejsce (Obrazek 9) w podtermach postaci (λx.M x)N , gdzie x 6∈ FV(M ) , oraz postaci λx(λy M )x, gdzie x 6∈ FV(λy M ). Szcześliwie w obu przypadkach redukcja , λd @< << << < [λ] d [@] | || | ~| λ @B BB BB >> >> > • • Obrazek 9: Pary krytyczne dla beta-eta-redukcji każdego z konkurujacych redeksów daje ten sam rezultat. , Sytuacja zilustrowana na Obrazku 9 może dotyczyć także innych systemów redukcyjnych. Jeśli redukcja każdego z dwóch redeksów wymaga zużycia tego samego zasobu”, to mówimy, ” że redeksy te tworza, pare, krytyczna. , Jeśli każda, pare, krytyczna, można ”uzgodnić” to dana relacja redukcji ma slaba, wlasność Churcha-Rossera.3 Z lematu 4.4 wynika latwo, że mamy nastepuj acy diagram: , , ·< <<<= < β << ·< · <= < η β < η · 2 Wlasność rombu nie zachodzi bo y η ← λx. yx →η y, tymczasem nie ma termu, do którego y redukowalby sie, w jednym kroku. 3 Dla systemów o wlasności SN i bez par krytycznych mamy wiec , ogólna, metode, dowodzenia wlasności Churcha-Rossera: zastosować lemat Newmana 3.2. strona 16 12 sierpnia 2008, godzina 14: 39 Z tego diagramu otrzymamy nastepny. Mówi on, że relacje β i η sa, przemienne: , ·< <<<β << < ·< · < < η β < η · Ponieważ obie relacje maja, wlasność Churcha-Rossera, nietrudno teraz pokazać Twierdzenie 4.5 Relacja →βη ma wlasność Churcha-Rossera. Beta-eta-redukcja Wlasności βη-redukcji sa, czesto podobne do wlasności β-redukcji. Wymienimy tu kilka z nich, , pomijajac wi ekszość dowodów. Zaczniemy od technicznego lematu. , , Lemat 4.6 Niech M →η N →β P ale M 6→β N . Wtedy istnieje takie Q, że M →β Q η P . Dowód: Zauważmy, że jedyna sytuacja, w której eta-redukcja może wykreować nowy betaredeks wyglada tak, jak na Obrazku 10. To jest akurat sytuacja zabroniona, bo zamiast eta, @> >> >> λe λ @> >> >> • Obrazek 10: Eta-redukcja tworzy beta-redeks redeksu możemy z tym samym skutkiem zredukować beta-redeks. W pozostalych przypadkach beta-redeks redukowany w drugim kroku już istnieje w termie M i może zostać zredukowany zanim wykonana bedzie eta-redukcja. Potem dopiero wykonamy tyle eta-redukcji ile kopii , naszego redeksu (być może zero) wystepuje w Q. , Wniosek 4.7 Jeśli M βη P →β N to M →β Q βη N , dla pewnego Q. Graficznie: @@ · < <<<β << < ·< @· < β βη @ < < βη · strona 17 12 sierpnia 2008, godzina 14: 39 Wniosek 4.8 Term ma nieskończona, β-redukcje, wtedy i tylko wtedy gdy ma nieskończona, βη-redukcje. , (Inaczej: term ma wlasność β-SN wtedy i tylko wtedy, gdy ma wlasność βη-SN.) Dowód: Implikacja z lewej do prawej jest oczywiście oczywista. Zalóżmy wiec, że mamy , nieskończona, βη-redukcje. a, w tej redukcji nieskończenie wiele razy, , Jeśli beta-kroki wystepuj , to wniosek 4.7 pozwala z niej uzyskać nieskończona, β-redukcje, (poprzez przesuwanie” beta” kroków w lewo). A nie może być tak, że prawie wszystkie kroki sa, typu eta. Pokażemy teraz, że każdy ciag , beta-eta redukcji można ”posortować” tak aby eta-redukcje byly na końcu. Twierdzenie 4.9 (o odkladaniu η-redukcji) Jeśli M βη N to M β P η N , dla pewnego P . Dowód: Niech oznacza najmniejsza, relacje, w zbiorze termów, spelniajac , a, warunki: • x x, dla dowolnej zmiennej x; • jeśli A A0 oraz x 6∈ FV(A), to λx.Ax A0 ; • jeśli A A0 , to λx.A λx.A0 ; • jeśli A A0 oraz B B 0 , to AB A0 B 0 . 1 Relacja mniej wiecej tak sie, ma do eta-redukcji, jak relacja → do beta-redukcji. Jej naj, ważniejsza wlasność jest taka: Jeśli A B →β C to istnieje taki term D, że A β D C. (*) Niech teraz M βη N . Każdy krok eta-redukcji można uważać za krok typu i przesuwać” ” w prawo z pomoca, (*). Szczególy pozostawiamy jako ćwiczenie 3. Twierdzenie 4.10 beta-eta-normalna. , Term ma postać beta-normalna, wtedy i tylko wtedy, gdy ma postać Dowód: Latwiejsza jest implikacja z lewej do prawej. Wystarczy zauważyć, że etaredukowanie postaci beta-normalnej nie tworzy nowych beta-redeksów (ćwiczenie 2), musi wiec , w końcu dać postać βη-normalna. , W dowodzie implikacji odwrotnej korzysta sie, z twierdzenia o odkladaniu eta-redukcji. Szczególy tego dowodu pozostawiamy jako ćwiczenie 4. Ćwiczenia 1. W jaki sposób beta-redukcja może spowodować powstanie nowego beta-redeksu? Eta-redeksu? 2. Pokazać, że jeśli M jest w postaci β-normalnej oraz M →η N to N jest w postaci β-normalnej. 12 sierpnia 2008, godzina 14: 39 strona 18 3. Udowodnić nastepuj ace wlasności relacji , określonej w dowodzie twierdzenia 4.9: , , (a) →η η ; (b) Jeśli A A0 oraz B B 0 , to A[x := B] A0 [x := B 0 ]. Wywnioskować z nich wlasność (*) o której mowa w dowodzie twierdzenia i uzupelnić dowód twierdzenia. 4. Udowodnić cześć (⇐) twierdzenia 4.10. Wskazówka: Pokazać najpierw, że jeśli M N oraz N , ma postać beta-normalna, to M też ma (indukcja ze wzgledu na liczbe, kroków potrzebna, do zre, dukowania N do postaci normalnej). Nastepnie skorzystać z twierdzenia 4.9 i z ćwiczenia 3(a). , 5 Standaryzacja W jednym termie może wystepować wiecej niż jeden redeks. Możliwe sa, wiec , , , różne strategie redukcji. Jedna z nich polega na wybieraniu zawsze tego redeksu, który zaczyna sie, najbardziej na lewo. Mówimy wtedy o redukcji lewostronnej . Okazuje sie, , że strategia redukcji lewostronnej jest strategia, normalizujaca, , tj. ta, metoda, zawsze dojdziemy do postaci normalnej, jeśli ona istnieje. Popatrzmy na przyklad na term KzΩ. W zależności od wyboru strategii redukcji możemy dojść do postaci normalnej lub redukować ten term w nieskończoność. W istocie prawdziwe jest nieco silniejsze twierdzenie, zwane twierdzeniem o standaryzacji. Powiemy, że wyprowadzenie M0 → M1 → · · · → Mn jest standardowe, jeżeli dla dowolnego i = 0, . . . , n − 2, w kroku Mi → Mi+1 redukujemy redeks polożony nie dalej od poczatku termu niż redeks, który redukujemy w nastepnym , , kroku Mi+1 → Mi+2 . Na przyklad ta redukcja jest standardowa: (λx.xx)((λzy.z(zy))(λu.u)(λw.w)) → (λx.xx)((λy.(λu.u)((λu.u)y))(λw.w)) → → (λx.xx)((λu.u)((λu.u)(λw.w))) → (λx.xx)((λu.u)(λw.w)) → (λx.xx)(λw.w). a ta nie jest: (λx.xx)((λzy.z(zy))(λu.u)(λw.w)) → (λx.xx)((λy.(λu.u)((λu.u)y))(λw.w)) → (λx.xx)((λy.(λu.u)y)(λw.w)) → (λx.xx)((λy.y)(λw.w)) → (λx.xx)(λw.w). Twierdzenie 5.1 Jeśli M β N , to istnieje standardowa redukcja z M do N . Zajmiemy sie, teraz dowodem twierdzenia 5.1. Zaczniemy od tego, że każdy term M jest jednej z dwóch możliwych postaci: ~ 1) λ~x.z R; ~ 2) λ~x.(λy.P )QR, gdzie dlugość wektora ~x może być zerem, a z może wystepować wśród zmiennych ~x lub , nie. W przypadku (1) mówimy, że term jest w czolowej postaci normalnej 4 . Natomiast w przypadku (2) mówimy, że term ma redeks czolowy (λy.P )Q. Krok redukcji ~ →β λ~x.P [y := Q]R ~ =N M = λ~x.(λy.P )QR 4 Uwaga: czolowa postać normalna nie jest na ogól postacia, normalna. , strona 19 12 sierpnia 2008, godzina 14: 39 h nazywamy wtedy redukcja, czolowa, i zapisujemy M → N . Inne kroki redukcji nazywamy i wewnetrznymi, a w takim przypadku używamy symbolu →. Kluczowy lemat mówi, że re, dukcje czolowe można wykonać przed wewnetrznymi: , h i Lemat 5.2 Jeżeli M β N , to M P N , dla pewnego P . Jeśli udowodnimy ten lemat, to pozostaje tylko zauważyć, że po wykonaniu wszystkich h ~ albo redukcji czolowych ksztalt termu sie, cześciowo ustala” tj. mamy albo M λ~x.z R , ” h ~ i dalsze redukcje odbywaja sie wewnatrz P , Q i R. ~ Stosujac indukcje do M λ~x.(λy.P )QR , , , , , ~ otrzymujemy standardowe redukcje, które wykonujemy od lewej” tj. najtermów P , Q i R, ” ~ pierw w P , potem w Q i potem w kolejnych wyrazach ciagu R. , Naiwna próba dowodu lematu 5.2 moglaby być taka: @@ · ·< <h < < i · i << <<h << < · @ @ i h Niestety redukcja (λx P )Q (λx P 0 )Q0 → P 0 [x := Q0 ] może nie dać sie, zastapić przez , i h 0 0 (λx P )Q → P [x := Q] P [x := Q ], bo kroki wewnatrz P lub wewnatrz Q moga, być , , 1 czolowe. Idea dowodu polega na użyciu redukcji postaci →, które latwiej rozbić na cześć , czolowa, i wewnetrzn a. Zaczniemy od takiego ( latwego) diagramu , , @· ·< < < h < 1i · << <<h << < · @ 1 1i 1 gdzie → oznacza ciag które jednocześnie stanowia, redukcje, postaci →. , redukcji wewnetrznych, , 1 1i Jeśli teraz uda nam sie, rozbić → na faze, czolowa, i faze, postaci →, to dostaniemy diagram @· ·< <+ < h < 1i · << <<h << < · @ 1i A zatem chcemy udowodnić, że 1 h 1i Jeśli M → N to M L → N , dla pewnego L, (*) strona 20 12 sierpnia 2008, godzina 14: 39 i natychmiast mamy klopot, gdy M jest redeksem (λx P )Q. Chcemy bowiem wywnioskować, 1 1 1i że P [x := Q] → P 0 [x := Q0 ], a wiemy tylko, że P → P 0 i Q → Q0 , skad , mamy zaledwie 1 0 0 P [x := Q] → P [x := Q ]. Potrzebna jest relacja V, która ma taka, wlasność: Jeśli M V M 0 oraz N V N 0 to M [x := N ] V M 0 [x := N 0 ], h 1i (**) 1 rozklada sie, na i →, i na dodatek zawiera relacje, →. Definiujemy ja, tak: M V N zachodzi h h 1i wtedy gdy M P → N , oraz każdy term Q wystepuj acy w redukcji M P spelnia warunek , , 1 Q → N. Należy teraz udowodnić wlasność (**). Z jej pomoca, przez indukcje, ze wzgledu na definicje, , 1 1 relacji → dowodzi sie, , że → ⊆ V a teraz (*) jest już oczywiste. Udowodniliśmy wiec , twierdzenie o standaryzacji. A oto najważniejszy wniosek z niego. Wniosek 5.3 Jeśli M ma postać normalna, N , to istnieje lewostronna redukcja z M do N . Powyższy wniosek5 można odczytać tak: Jeśli istnieje nieskończona redukcja lewostronna zaczynajaca sie, od M , to term M nie ma postaci normalnej. Można to stwierdzenie wzmocnić , w taki sposób. Powiemy, że nieskończony ciag , redukcji jest quasi-lewostronny, jeśli nieskończenie wiele razy nastepuje w tym ci agu redukcja redeksu polożonego najbardziej na lewo. , , Fakt 5.4 Jeśli istnieje nieskończony quasi-lewostronny ciag sie, od M , , redukcji zaczynajacy , to term M nie ma postaci normalnej. Dowód: Na potrzeby tego dowodu powiedzmy, że term jest wytrzymaly, gdy ma nieskońh czona, redukcje, quasi-lewostronna,, w której wystepuje nieskończenie wiele kroków postaci →. h Zauważmy, że jeśli N jest wytrzymaly, to N + N 0 dla pewnego wytrzymalego termu N 0 (ćwiczenie 4). Zalóżmy teraz, że M ma postać normalna., Przez indukcje, ze wzgledu na jej dlugość udowod, nimy, że M nie może mieć nieskończonej redukcji quasi-lewostronnej. Przypuśćmy najpierw, że M jest termem wytrzymalym. Używajac , ćwiczenia 4 można wtedy zdefiniować ciag , wytrzyh malych termów Ni , takich że N0 = M oraz Ni + Ni+1 dla dowolnego i ∈ N. Inaczej mówiac, , wyciagaj ac na poczatek” redukcje czolowe otrzymamy nieskończona, redukcje, czolowa, (a wiec , , , , ” lewostronna) termu M . Nie może wi ec istnieć postać normalna. , , Zatem jeśli M = M0 → M1 → M2 → · · · jest nieskończona, redukcja, quasi-lewostronna,, to od i i i pewnego miejsca mamy tylko redukcje wewnetrzne postaci λ~z.y P~ → λ~z.y P~ 0 → λ~z.y P~00 → · · · , Spośród redukcji lewostronnych wystepuj acych w tym ciagu, nieskończenie wiele dotyczy tej , , , samej skladowej wektora P~ , wiec wystarczy użyć za lożenia indukcyjnego. , 5 Ten fakt bywa nazywany twierdzeniem o normalizacji. Obecnie rzadziej używa sie, tej nazwy, bo norma” lizacja” zwykle oznacza istnieniem postaci normalnych. strona 21 12 sierpnia 2008, godzina 14: 39 Ćwiczenia 1. Jaki jest parametr indukcji w dowodzie twierdzenia 5.1? 1i 1i 1 i 2. Zdefiniować poprawnie relacje, →. Dlaczego definicja → jako iloczynu → i nie jest poprawna? 3. Zdefiniować poprawnie relacje, V i uzupelnić brakujace fragmenty dowodu twierdzenia 5.1. , 4. Term nazwiemy wytrzymalym, gdy ma nieskończona, redukcje, quasi-lewostronna,, w której wyste, h h puje nieskończenie wiele kroków postaci →. Udowodnić, że jeśli N jest wytrzymaly, to N + N 0 dla pewnego wytrzymalego termu N 0 . Wskazówka: Korzystajac , z twierdzenia o standaryzacji pokazać poprawność diagramu · @ @ <<< i <<h << ·< @· @ <+ i < h < · 6 Rachunek λI Term M jest nazywany λI-termem, jeżeli nie wystepuje w nim jako podterm żadna abstrakcja , postaci λx.N , gdzie x 6∈ FV(N ). To znaczy, że każda abstrakcja wiaże przynajmniej jedno , wystapienie zmiennej. Nietrudno zauważyć, że jeśli M jest λI-termem, oraz M β M 0 , to M 0 , też jest λI-termem (chociaż nie na odwrót). Dlatego można mówić o rachunku λI, w którym rozważa sie, tylko takie termy. Pelny rachunek lambda nazywany też bywa rachunkiem λK. Ta terminologia bierze sie, z tradycyjnych oznaczeń: I = λx.x K = λxy.x Najciekawsza wlasność λI-termów jest taka: Twierdzenie 6.1 Jeśli λI-term ma postać normalna, , to ma wlasność silnej normalizacji . Dowód: Ćwiczenie 1. Ćwiczenia 1. Niech ∆ = (λx.P )Q bedzie redeksem lewostronnym w termie M i niech Q ∈ SN. Pokazać, że , jeśli N ∈ SN powstaje z M przez redukcje, redeksu ∆ to także M ∈ SN. Uwaga: zalożenie, że ∆ jest redeksem lewostronnym jest istotne. Przyklad: (λy.(λx.z)(yω))ω. 2. Udowodnić twierdzenie 6.1. Wskazówka: Użyć zadania 1 i wniosku 5.3. 3. W pewnej ksiażce wniosek 5.3 wyprowadza sie, z twierdzenia 6.1 w taki sposób: , Zalóżmy, że term M ma postać normalna, ale ma też nieskończona, redukcje. , Z Twierdzenia 6.1 wynika, że przyczyna, tego musi być jakiś podterm wlaściwy B termu M , który wcale nie ma strona 22 12 sierpnia 2008, godzina 14: 39 postaci normalnej i który jest wycinany” przez pewien ciag , redukcji. Wybierzmy takie B możli” wie najbardziej na lewo. Skoro ten term jest wycinany” przez jakiś ciag , redukcji, to tym bardziej ” przez redukcje, lewostronna. , Gdzie jest istotny blad w tym rozumowaniu? , 7 Sila wyrazu Rachunek lambda jest systemem pozornie bardzo prostym. Abstrakcja i aplikacja wydaja, sie, trywialnymi operacjami, i może sie, zdawać, że niczego ciekawego nie da sie, z nich uzyskać. Okazuje sie, jednak, że sila wyrazu tego rachunku jest tak duża jak moc obliczeniowa maszyn Turinga. Kombinator(y) punktu stalego Zaczniemy od dość paradoksalnej wlasności rachunku lambda. Każde równanie stalopunktowe ma w nim rozwiazanie. Odpowiedzialny za to jest na przyklad taki term: , Y := λf.(λx.f (xx))(λx.f (xx)). Glówna wlasność termu Y jest taka: Dla dowolnego termu F zachodzi beta-równość: (∗) F (Y(F )) =β Y(F ). Rzeczywiście, Y(F ) =β (λx.F (xx))(λx.F (xx) =β F ((λx.F (xx))(λx.F (xx)) =β F (Y(F )). Termy o wlasności (∗) nazywamy kombinatorami punktu stalego. Fakt 7.1 Dla dowolnego termu M istnieje taki term N , że N =β M [x := N ]. Dowód: Wystarczy przyjać , N = Y(λx.M ). Przyklad 7.2 • Istnieje taki term M , że M xy =β M yxM . Można przyjać , M = Y(λmxy.myxm). Wtedy M =β λxy.M yxM , skad także M xy = M yxM . β , • Istnieje taki term M , że dla dowolnego N zachodzi M N =β M N N , na przyklad M = Y(λmx.mxx). Proste rzeczy Teraz pokażemy jak w rachunku lambda można zinterpretować pewne proste konstrukcje. Zaczniemy od wartości logicznych true = λxy.x false = λxy.y strona 23 12 sierpnia 2008, godzina 14: 39 i instrukcji warunkowej if P then Q else R = P QR. Latwo sprawdzić, że if true then Q else R β Q oraz if false then Q else R β R. Nastepna konstrukcja to para uporzadkowana. Przyjmiemy , , hM, N i = λx.xM N ; πi = λx1 x2 .xi dla i = 1, 2. Jak należy sie, spodziewać, mamy hM1 , M2 iπi β Mi . Zauważmy jednak, że nie zachodzi równość hM π1 , M π2 i =β M , tj. nasza para uporzadkowana nie jest surjektywna. , Uwaga: Dodanie do rachunku lambda surjektywnej pary uporzadkowanej powoduje utrate, , wlasności Churcha-Rossera. Oznacza to w szczególności, że w (beztypowym) rachunku lambda nie można takiej operacji zdefiniować. Liczby naturalne reprezentujemy w rachunku lambda jako tzw. liczebniki Churcha: cn = λf x.f n (x), gdzie notacja f n (x) oznacza oczywiście term f (f (· · · (x) · · · )), w którym f wystepuje n razy. , Zwykle zamiast cn bedziemy pisać n, co jest mniej precyzyjne ale wygodne. Wi ec na przyk lad: , , 0 = λf x.x; 1 = λf x.f x; 2 = λf x.f (f x), i tak dalej. Zauważmy, że 1 =βη I, ale 1 6=β I. Powiemy, że funkcja cześciowa f : Nk −◦ N jest definiowalna w beztypowym rachunku , lambda (λ-definiowalna) jeżeli istnieje term zamkniety F , spelniajacy dla dowolnych liczeb, , ników n1 , . . . , nk ∈ N nastepujace warunki: , • Jeżeli f (n1 , . . . , nk ) = m, to F n1 . . . nk =β m; • Jeżeli f (n1 , . . . , nk ) jest nieokreślone, to F n1 . . . nk nie ma postaci normalnej. Mówimy oczywiście, że F definiuje lub reprezentuje funkcje, f w rachunku lambda. W przypadku, gdy dodatkowo dla wszystkich n1 , . . . , nk ∈ N spelniony jest warunek • Jeżeli f (n1 , . . . , nk ) jest określone, to F n1 . . . nk ma wlasność silnej normalizacji, to powiemy, że F dobrze definiuje funkcje, f , która, nazwiemy dobrze definiowalna., Kilka przykladów termów definiujacych pewne funkcje mamy poniżej. , Przyklad 7.3 • Nastepnik: succ ≡ λnf x.f (nf x); • Dodawanie: add ≡ λmnf x.mf (nf x); 12 sierpnia 2008, godzina 14: 39 strona 24 • Mnożenie: mult ≡ λmnf x.m(nf )x; • Potegowanie: exp ≡ λmnf x.mnf x; • Test na zero: zero ≡ λm.m(λy.false)true; • Funkcja k-argumentowa stale równa zeru: Zk = λm1 . . . mk .0; • Rzut k-argumentowy na i-ta, wspólrzedn a:, Πik = λm1 . . . mk .mi . , Reprezentowanie funkcji cześciowo rekurencyjnych , Przypomnijmy, że funkcje cześciowo rekurencyjne tworza, najmniejsza, klase, funkcji cześ, , ciowych nad N zawierajac a funkcje bazowe: , , • nastepnik, succ(n) = n + 1; , • rzuty, Πik (n1 , . . . , nk ) = ni ; • funkcje stale równe zeru, Zk (n1 , . . . , nk ) = 0, i zamkniet na skladanie, rekursje, prosta, i operacje, minimum. Na wszelki wypadek, , a, ze wzgledu , przypomnijmy też znaczenie tych terminów. • Funkcja f : Nk −◦ N powstaje przez skladanie funkcji h : N` −◦ N z funkcjami g1 , . . . , g` : Nk −◦ N, gdy – Dom(f ) = {~n | ~n ∈ Dom(gi ) dla wszystkich i, oraz (g1 (~n), . . . , g` (~n)) ∈ Dom(h)}; – f (~n) = h(g1 (~n), . . . , g` (~n)), dla dowolnego ~n ∈ Dom(f ). • Funkcja f : Nk+1 −◦ N powstaje przez rekursje, prosta, z funkcji h : Nk+2 −◦ N i funkcji g : Nk −◦ N, jeżeli dla dowolnego n ∈ N i dowolnego ~n ∈ Nk spelnione sa, równania – f (0, ~n) = g(~n); – f (n + 1, ~n) = h(f (n, ~n), n, ~n), przy czym równanie uważamy za spelnione, gdy obie strony sa, określone i równe, lub obie strony sa, nieokreślone. Wartość wyrażenia h(f (n, ~n), n, ~n) jest określona wtedy i tylko wtedy gdy (n, ~n) ∈ Dom(f ) oraz (f (n, ~n), n, ~n) ∈ Dom(h). • Funkcja f : Nk −◦ N powstaje z funkcji h : Nk+1 −◦ N przez zastosowanie operacji minimum, co zapisujemy f (~n) = µy[h(~n, y) = 0], gdy dla dowolnego ~n ∈ Nk , – Jeśli istnieje takie m, że h(~n, m) = 0 oraz wszystkie wartości h(~n, i) dla i < m sa, określone i różne od zera, to f (~n) = m. – Jeśli takiego m nie ma, to f (~n) jest nieokreślone. strona 25 12 sierpnia 2008, godzina 14: 39 Klasa funkcji pierwotnie rekurencyjnych to najmniejsza klasa funkcji calkowitych nad N zawierajaca funkcje bazowe i zamknieta ze wzgledu na skladanie i rekursje, prosta., Szczególne , , , funkcje pierwotnie rekurencyjne to funkcja pary (m + n)(m + n + 1) + m, 2 i dwie funkcje left i right, takie że dla dowolnego n, p(m, n) = n = p(left(n), right(n)), czyli funkcje odwrotne do funkcji pary. Mamy nastepuj ace , , Twierdzenie 7.4 (o postaci normalnej Kleene’go) Każda, funkcje, cześciowo rekurencyj, na, można przedstawić w postaci f (~n) = left(µy[g(~n, y) = 0]), 6 gdzie g jest funkcja, pierwotnie rekurencyjna. , Udowodnimy teraz, że każda funkcja cześciowo rekurencyjna jest definiowalna w rachunku , lambda. Zaczynamy od najlatwiejszego. Lemat 7.5 Funkcje bazowe sa, lambda-definiowalne. Dowód: Przyklad 7.3. Lemat 7.6 Jeśli funkcja calkowita f powstaje przez skladanie lambda-definiowalnych funkcji calkowitych, to też jest lambda-definiowalna. Dowód: Oczywiste. Ale tylko dlatego, że mowa o funkcjach calkowitych. Lemat 7.7 Jeśli funkcja calkowita f powstaje przez rekursje, prosta, z lambda-definiowalnych funkcji calkowitych, to też jest lambda-definiowalna. Dowód: To już nie jest oczywiste. Zalóżmy, że f jest zdefiniowana równaniami f (0, ~n) = g(~n); f (n + 1, ~n) = h(f (n, ~n), n, ~n), i że funkcje g i h sa, definiowalne odpowiednio za pomoca, termów G i H. Zdefiniujmy pomocnicze termy Step ≡ λp.hsucc(pπ1 ), H(pπ2 )(pπ1 )x1 . . . xm i; Init ≡ h0, Gx1 . . . xm i. 6 Tak naprawde, to jest nawet funkcja elementarnie rekurencyjna. strona 26 12 sierpnia 2008, godzina 14: 39 Funkcja f jest wtedy definiowalna termem F ≡ λxx1 . . . xm .x Step Initπ2 . Ta definicja wyraża nastepuj acy algorytm obliczania wartości funkcji f : generujemy ciag , , , par (0, a0 ), (1, a1 ), . . . , (n, an ), gdzie a0 = g(n1 , . . . , nm ), każde ai+1 to h(ai , i, n1 , . . . , nm ) oraz an = f (n, n1 , . . . , nm ). Wniosek 7.8 Funkcje pierwotnie rekurencyjne sa, lambda-definiowalne. Ponieważ mamy twierdzenie Kleene’go, wiec , pozostaje już (prawie) tylko pokazać lambdadefiniowalność funkcji określonych przez minimum. Można do tego wykorzystać kombinator punktu stalego Y, rozwiazuj ac , , odpowiednie równanie stalopunktowe. My to zrobimy troche, delikatniej, opóźniajac” dzia lanie kombinatora, dzieki czemu uzyskamy silniejszy wynik. , ” Twierdzenie 7.9 Wszystkie funkcje cześciowo rekurencyjne sa, lambda-definiowalne. , Dowód: Niech f (~n) = left(µy[g(~n, y) = 0]), gdzie g jest funkcja, pierwotnie rekurencyjna., Na mocy wniosku 7.8, zarówno g jak left sa, lambda-definiowalne pewnymi termami G i L. Określimy pomocniczy term W ≡ λy.if zero(G~xy) then λw.Ly else λw.w(succ y)w. Funkcja f jest definiowana termem F ≡ λ~x.W 0W. Rzeczywiście, przypuśćmy najpierw, że µy[g(~n, y) = 0] = n, oraz left(n) = r. Wtedy mamy taki ciag , redukcji: F ~n β W 0W β W 1W β · · · β W nW β Ln β r, (1) gdzie W oznacza wynik podstawienia ~n na ~x w termie W . Jeśli minimum jest nieokreślone, to znaczy, że wszystkie wartości g(~n, m) sa, określone i różne od zera, bo funkcja g jest calkowita. Wtedy mamy nieskończony ciag , redukcji F ~n β W 0W β W 1W β · · · β W nW β · · · Ten ciag , jest quasi-lewostronny, a zatem na mocy Faktu 5.4 postaci normalnej nie ma. W istocie prawdziwy jest silniejszy fakt: Fakt 7.10 Wszystkie funkcje cześciowo rekurencyjne sa, dobrze lambda-definiowalne. , Dowód Faktu 7.10 opiera sie na tej samej konstrukcji co dowód twierdzenia 7.9, ale wymaga dodatkowo dowodu silnej normalizacji, który opuszczamy. strona 27 12 sierpnia 2008, godzina 14: 39 Wniosek 7.11 Nastepuj ace problemy sa, nierozstrzygalne: , , • Dane termy M i N . Czy M β N ? • Dane termy M i N . Czy M =β N ? • Dany term M . Czy M ma postać normalna? , • Dany term M . Czy M ma wlasność silnej normalizacji? Ćwiczenia 1. Pokazać, że istnieje nieskończenie wiele kombinatorów punktu stalego. 2. I że żaden z nich nie ma postaci normalnej. 3. Niech G = SI =β λyf.f (yf ). Term jest kombinatorem punktu stalego wtedy i tylko wtedy, gdy jest punktem stalym G. 4. Zdefiniować w rachunku lambda poprzednik dla liczb naturalnych. 5. Pokazać, że w definicji funkcji definiowalnej można żadać F n1 . . . nk β f (n1 , . . . , nk ), i że nic , sie, nie zmieni, jeśli dopuścić F V (F ) 6= ∅. 6. Nic sie, też nie zmieni, jeśli w definicji funkcji λ-definiowalnej zamiast =β użyjemy =βη . 8 Lambda-teorie i drzewa Böhma Jak już mówiliśmy, zwykly rachunek lambda można uważać (w uproszczeniu) za pewna, teorie, równościowa., Inna, teorie, otrzymamy, jeśli do aksjomatów beta-konwersji dolożymy ekstensjonalość w postaci reguly (ext) lub aksjomatu (η). A co jeśli dodać jako nowy aksjomat na przyklad równość K = S? Wtedy dla dowolnego termu M wywnioskujemy M = SI(KM )I = KI(KM )I = I, a wiec takie rozszerzenie rachunku lambda byloby sprzeczne. Termy K i S to tylko przyklad. Okazuje sie, , że sprzeczna musi być każda teoria, która skleja ze soba, dwie różne postaci βη-normalne. Wynika to z nastepuj acego twierdzenia Böhma: , , Twierdzenie 8.1 (C. Böhm, 1968) Niech M i N bed , a, kombinatorami w postaci β-normalnej i niech M 6=βη N . Wtedy istnieje taki ciag termów P~ , że M P~ =β true , zamknietych , oraz N P~ =β false. Pelny dowód twierdzenia Böhma jest za dlugi jak na nasze możliwości. Ale warto, choćby na przykladzie, zobaczyć jak można odróżnić jeden term od drugiego. Weźmy na przyklad M = λxy.x(λz.xzy)y i N = λxy.x(λzv.xzxv)y. Wygodnie jest przedstawić oba termy za pomoca, drzew (Obrazek 11). Istotna różnica pomiedzy tymi drzewami to liście odpowiadajace zmiennej y w termie M , , i zmiennej x w termie N . (Wystapienie v w termie N jest nieistotne, bo λzv.xzxv =η λz.xzx.) , Aby wykorzystać te, różnice, do odseparowania” termów M i N należy zaaplikować je do takich ” strona 28 12 sierpnia 2008, godzina 14: 39 λxy.xx BB z x xx xx x xx λz.x DD DD DD DD D λxy.v x >> BB BB B y y z v vv vv v vv λzv.x FF FF FF FF F x >> >> >> y v Obrazek 11: Drzewa dla M = λxy.x(λz.xzy)y i N = λxy.x(λzv.xzxv)y argumentów, które wyciagn , a, z nich ”na wierzch” wlaśnie te liście. Poslużymy sie, trickiem, zwanym Böhm-out technique”. Niech P = λuw.hu, wi. Wtedy dla dowolnego Q zachodzi ” M P Q =β hλz.hz, Qi, Qi. Dalej M P Q true R false =β Q dla dowolnego R. Tymczasem ~ N P Q true R false =β P . Wybierzmy wiec , jakiekolwiek R oraz Q = λuvw. true i niech P ~ ~ oznacza ciag , (P, Q, true, R, false, false, I, true). Wtedy M P =β true oraz N P =β false. Rozwiazalność , Pierwsza intuicja zwiazana z rachunkiem lambda (rozumianym jako abstrakcyjny jezyk pro, , gramowania) jest taka: wartościa” termu jest jego postać normalna. A zatem term, który , ” nie ma postaci normalnej jest pozbawiony wartości. Każdy taki term jest równie dobry, albo raczej równie zly, i nie powinno być przeszkód w utożsamieniu ich wszystkich ze soba., Niestety, utożsamienie na przyklad termów λx.xKΩ i λx.xSΩ daje w wyniku sprzeczna, teorie, — wystarczy oba zaaplikować do K. Term bez postaci normalnej może wiec , czasem objawiać dobrze określone dzialanie, czyli w pewnym sensie mieć wartość”. Można uważać, że ta, wartościa, jest czolowa postać nor” ~ malna, o ile istnieje. Przypomnijmy, że czolowa postać normalna to każdy term postaci λ~x.z R. Term M ma czolowa, postać normalna, N gdy M =β N i N jest w czolowej postaci normalnej. Powiemy, że term zamkniety M jest rozwiazalny jeżeli M P~ =β I dla pewnych kombinato, , rów P~ . Term ze zmiennymi wolnymi ~x jest rozwiazalny jeżeli rozwiazalne jest jego domkniecie, , , , czyli kombinator λ~x.M Lemat 8.2 Term jest rozwiazalny wtedy i tylko wtedy, gdy ma czolowa, postać normalna. , , Dowód: Bez straty ogólności można zalożyć, że mowa o termie zamknietym. , Jeśli M =β λx1 x2 . . . xn .xi R1 . . . Rm , to oczywiście M P1 P2 . . . Pn =β I, gdzie Pi = λy1 . . . ym .I. ~ Na odwrót, jeżeli M P~ =β I, to w istocie M P~ β I. Skoro wiec , M P ma czolowa, postać normalna, I, to i M musi mieć czolowa, postać normalna, (ćwiczenie 3). Jeśli termy nierozwiazalne uznamy za pozbawione wartości, to znaczy, że postulujemy teorie, , równościowa,, w której te wszystkie termy sa, równe. Jakie rozwiazalne termy powinny być , równe w tej teorii? Nie możemy identyfikować termów za pomoca, ich czolowych postaci strona 29 12 sierpnia 2008, godzina 14: 39 normalnych, bo każdy term rozwiazalny ma ich nieskończenie wiele. Nie mozemy sie, też , poslużyć beta-równościa,, bo chcemy aby xΩ bylo w naszej teorii równe x(Ωy). Pozostaje obserwować zachowanie termów w różnych sytuacjach. Jeśli jest ono zawsze takie samo, to powinniśmy dane termy utożsamić. Niech M i N bed x. Powiemy, że M i N sa, , a, dowolnymi termami i niech FV(M ) ∪ FV(N ) = ~ obserwacyjnie równoważne, i napiszemy M ≡ N , gdy dla dowolnego kombinatora P , P (λ~x.M ) jest rozwiazalny ⇐⇒ P (λ~x.N ) jest rozwiazalny. , , Nietrudno zauważyć, że ≡ jest rozszerzeniem ekstensjonalnej teorii równościowej λβη i że M ≡ N dla dowolnych nierozwiazalnych M i N (ćwiczenie 4). Ponadto, z twierdzenia Böhma , wynika, że dla termów w postaci normalnej zachodzi równoważność M ≡N ⇐⇒ M =βη N. Drzewa Böhma Drzewo Böhma termu M , oznaczane przez BT (M ), definiujemy przez indukcje. , • Jeśli term M jest nierozwiazalny, to BT (M ) sklada sie, tylko z jednego wierzcholka, , oznaczonego przez Ω. • Jeśli term M ma czolowa, postać normalna, λ~x.yP1 . . . Pn , to drzewo BT (M ) jest zbudowane jak na Obrazku 12. λ~x. y < x < xx xx x xx xx x xx xx x x xx xx x xx xx x xx xx BT (P1 ) BT (P2 ) ... << << << << << << << << << << << << ... ... BT (Pn ) Obrazek 12: Drzewo BT (λ~x.yP1 . . . Pn ) Drzewo Böhma to uogólnienie postaci normalnej. Zwykla postać normalna to skończone drzewo Böhma bez wystapień Ω. , Chcemy teraz uogólnić pojecie eta-równości na drzewa Böhma. Jasne, co powinno znaczyć , B →η B 0 , ale w przypadku nieskończonych drzew musimy pozwolić na nieskończenie wiele różnic. Oczywiście drzewo Böhma można uważać za granice” termów skończonych, w których , ciagu , ” może wystepować sta la Ω. Ściślej, powiemy, że ci ag drzew Tn jest zbieżny do drzewa B , , strona 30 12 sierpnia 2008, godzina 14: 39 jeżeli dla dowolnego n istnieje takie m, że wszystkie drzewa Tm , Tm+1 , . . . sa, do glebokości n , identyczne z drzewem B. Ciag , skończony jest zaś zbieżny do swojego ostatniego elementu. Powiemy, że drzewa Böhma B i B 0 sa, η-równoważne (B ≈η B 0 ), gdy istnieja, (skończone lub nieskończone) ciagi , eta-ekspansji: B = B0 η ← B1 η ← B2 η ← B3 η ← · · · oraz B 0 = B00 η ← B10 η ← B20 η ← B30 η ← · · · zbieżne do tego samego drzewa. Przebrnawszy przez te, ostatnia, definicje, , , możemy sformulować twierdzenie Wadswortha: Twierdzenie 8.3 (Wadsworth, 1975) Termy M i N sa, obserwacyjnie równoważne wtedy i tylko wtedy, gdy BT (M ) ≈η BT (N ). Dowód z lewej do prawej polega na zastosowaniu techniki Böhm-out”. W przeciwna, strone, ” stosuje sie, metody semantyczne. Ćwiczenia 1. Skonstruować takie X, że X(λyz.y(yz(yy))z) βη K oraz X(λyz.y(yz(yz))z) βη S. Rozwiazanie: X = λx.x(λuv.hu, vi)(λuvw.S)π1 π2 Iπ1 KIπ1 . , 2. Udowodnić, ze jeśli M nie ma czolowej postaci normalnej (tj. ma nieskończona, redukcje, czolowa) , h to żaden term postaci M [x := P ] nie ma czolowej postaci normalnej. Wskazówka: Jeśli M → N h to M [x := P ] → N [x := P ]. 3. Udowodnić, ze jeśli M nie ma czolowej postaci normalnej, to M N też nie ma czolowej postaci normalnej. Wskazówka: Użyć poprzedniego ćwiczenia. 4. Udowodnić, ze jeśli M nie ma czolowej postaci normalnej, ale P M ma czolowa, postać normalna,, to każdy term postaci P N ma czolowa, postać normalna., Wskazówka: Jak wyglada czolowa , postać normalna termu P ? 5. Zalóżmy, że kombinatory M i N sa, obserwacyjnie równoważne i że P M =βη λx1 . . .xn . xi A1 . . .Ak , dla pewnych A1 , . . . , Ak . Udowodnić, że P N =βη λx1 . . .xn . xi B1 . . .Bk dla pewnych B1 , . . . , Bk . 6. Znaleźć term, którego drzewo Böhma to jedna nieskończona galaź , postaci λx1 .x1 (λx2 .x2 (λx3 . . . Wskazówka: użyć kombinatora Y. 7. Skonstruować term M o takiej wlasności: drzewo Böhma BT (M ) jest nieskończone i każdy jego wierzcholek ma wiecej synów niż mial jego ojciec. , Rozwiazanie: M = YF 1, gdzie F = λV λnλx.n(λy.y(V (succ n))x. , 8. Czy zawsze istnieje taki term M , że drzewo BT (M ) ma żadany ksztalt? , 9 Rachunek kombinatorów Zdefiniujemy teraz system CL (beztypowego) rachunku kombinatorów, zwany także (z przyczyn historycznych) logika, kombinatoryczna, Zbiór , chociaż ta druga nazwa jest nieco mylaca. , termów C definiujemy jako najmniejszy zbiór o wlasnościach: • Zmienne przedmiotowe należa, do C; 12 sierpnia 2008, godzina 14: 39 strona 31 • Stale K i S należa, do C; • Jeśli F, G ∈ C, to (F G) ∈ C. Konwencje nawiasowe sa, takie same jak dla termów 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, slabej redukcji w zbiorze C definiujemy jako najmniejsza, relacje, →w o wlasnościach: • KAB →w A dla dowolnych A, B; • SABC →w AC(BC) dla dowolnych A, B, C; • Jeśli 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 (slaba , równość), to najmniejsza relacja równoważności zawierajaca →w . Termy rachunku kombina, torów nazywamy oczywiście kombinatorami. Zamkniete termy rachunku lambda przeje, ly te, , nazwe, od swoich odpowiedników w C. Oto kilka ważnych kombinatorów i zwiazane z nimi , redukcje: • Niech I = SKK. Wtedy IF →w KF (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 w F HG dla dowolnych F, G, H. • Niech B0 = CB. Wtedy B0 F GH w G(F H). • 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 B0 , C nie sa., Czasem wszystkie te kombinatory sa, jednak traktowane jak stale. System CL, jako system redukcyjny, ma wlasności podobne do rachunku lambda. Na przyklad prawdziwe jest twierdzenie Churcha-Rossera, a takie wlasności jak normalizacja, silna normalizacja, czy równość, sa, nierozstrzygalne. System CL ma bowiem podobna, sile, wyrazu — można w nim na przyklad zdefiniować liczebniki i reprezentować funkcje cześciowo rekuren, cyjne. W istocie, logika kombinatoryczna zostala wynaleziona przez Curry’ego i Schönfinkela niezależnie od rachunku lambda i mniej wiecej w tym samym czasie, ale w gruncie rzeczy , w podobnym celu. Podobieństwo pomiedzy CL i rachunkiem lambda można wyrazić definiujac , , translacje strona 32 12 sierpnia 2008, godzina 14: 39 ( )Λ : 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ża poprawność tej translacji ze wzgledu na redukcje. , , , Fakt 9.1 • Jeśli F w G, to (F )Λ β (G)Λ . • Jeśli F =w G, to (F )Λ =β (G)Λ . Fakt 9.1 można odczytać tak: translacje, ( )Λ można uważać za przeksztalcenie z C/=w do Λ/=β , czyli za morfizm z teorii równościowej CL do teorii równościowej Λ. Aby określić translacje, ( )C : Λ → C musimy przede wszystkim zdefiniować w CL konstrukcje, (zwana, kombinatoryczna, abstrakcja), , która zachowuje sie, tak jak abstrakcja. Można to zrobić na kilka sposobów, na przyklad tak: • λ∗ x.F = KF , gdy x 6∈ FV(F ); • λ∗ x.x = I; • λ∗ x.F G = S(λ∗ x.F )(λ∗ x.G), w przeciwnym przypadku. Dowód poniższego faktu pozostawiamy jako ćwiczenie. Fakt 9.2 (λ∗ x.F )G w F [x := G]. Wniosek 9.3 (kombinatoryczna zupelność) Dla dowolnych x i F istnieje takie H, że dla dowolnego G zachodzi HG w F [x := G]. Teraz możemy zdefiniować 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 . strona 33 12 sierpnia 2008, godzina 14: 39 Dowód: Indukcja ze wzgledu na M . , A zatem translacja ( )Λ wyznacza przeksztalcenie na” z teorii C/=w do Λ/=β . Poniższy ” wniosek stwierdza, że termy K i S stanowia, baze, dla rachunku lambda. Wniosek 9.5 Każdy zamkniety lambda-term można otrzymać (z dokladnościa, do =β ) z ter, mów K i S przez stosowanie aplikacji. Dowód: Natychmiast z Faktu 9.4. Niestety, operacja ( )C nie ma tak dobrych wlasności jak translacja ( )Λ : Fakt 9.6 • Zlożenie (( )Λ )C nie jest identycznościa. , Na przyklad ((KΛ )C = S(KK)I 6=w K. • Z równości M =β N nie wynika (M )C =w (N )C . Na przyklad λ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 slaba” równość jest w istocie silniejsza niż =β . Przyczyna, tego jest to, że kombina” toryczna abstrakcja λ∗ nie spelnia warunku slabej ekstensjonalności ze wzgledu na =w : , M =N λx.M = λx.N , (ξ) W istocie λ∗ x.KIx = S(K(KI))I 6=w KI = λ∗ x.I, chociaż KIx →w I. Można to poprawić kosztem wprowadzenia ekstensjonalności. Niech =ext bedzie najmniejsza, relacja, równoważności w C, taka, że: • Jeśli G =w H, to G =ext H; • Jeśli Gx =ext Hx i x 6∈ FV(G) ∪ FV(H), to G =ext H; • Jeśli G =ext G0 , to GH =ext G0 H i HG =ext HG0 . Fakt 9.7 • Dla dowolnych G, H ∈ C, warunki G =ext H i (G)Λ =βη (H)Λ sa, równoważne. • Dla dowolnych M, N ∈ Λ, warunki M =βη N i (M )C =ext (N )C sa, równoważne. • Równanie ((G)Λ )C =ext G zachodzi dla dowolnego G ∈ C. strona 34 12 sierpnia 2008, godzina 14: 39 Ćwiczenia 1. Udowodnić Fakt 9.2. 2. Niech B = λxyz.x(yz) i niech C = λxyz.xzy. Pokazać, że każdy λI-term można otrzymać (z dokladnościa, do =β ) z termów S, B, C, I, poprzez stosowanie aplikacji. Wskazówka: zdefiniować konstrukcje, λ◦ x.F w ten sposób, że: • λ◦ 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). 3. Term nazwiemy afinicznym, gdy każdy jego podterm postaci λx.M zawiera co najwyżej jedno wolne wystapienie zmiennej x. Pokazać, że każdy afiniczny lambda-term można otrzymać , (z dokladnościa, do =β ) z termów B, C, K poprzez stosowanie aplikacji. 4. Term nazwiemy liniowym, gdy każdy jego podterm postaci λx.M zawiera dokladnie jedno wolne wystapienie zmiennej x. Pokazać, że każdy liniowy lambda-term można otrzymać (z dokladnoś, cia, do =β ) z termów B, C, I poprzez stosowanie aplikacji. Problem otwarty: Zdefiniować taka, (obliczalna) , translacje, T : Λ → C, że M =β N 10 ⇐⇒ T (M ) =w T (N ). Modele Zaczniemy od pewnej ogólnej teorii, potrzebnej dla uściślenia pojecia modelu dla rachunku , lambda. Naszym zamiarem jest interpretacja każdego lambda-termu M w pewnej konkretnej dziedzinie A, jako pewnego elementu [[M ]] ∈ A. Ponieważ mamy w termach zmienne wolne, wiec , nasza interpretacja może zależeć od wartościowania v : V → A (gdzie V oznacza zbiór wszystkich zmiennych), co zaznaczymy piszac , [[M ]]v . Indeks v pomijamy, gdy v jest znane, lub M nie ma zmiennych wolnych. Poniższa definicja formuluje nasze podstawowe oczekiwania w stosunku do takiej interpretacji. Niech · bedzie dwuargumentowa, operacja, w zbiorze A i niech [[ ]] : Λ × AV → A. Struk, ture, A = hA, ·, [[ ]] i nazywamy lambda-interpretacja, , jeżeli spelnione sa, warunki (a) – (d) poniżej. Stosujemy notacje, [[M ]]v na oznaczenie wartości [[ ]](M, v). Symbol v[x 7→ a] oznacza wartościowanie różniace sie, od v tylko tym, że v[x 7→ a](x) = a. , (a) Jeśli 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śli v|FV(P ) = u|FV(P ) , to [[P ]]v = [[P ]]u . Na pierwszy rzut oka może sie, wydawać, że warunki (a) – (d) stanowia, indukcyjna, definicje, funkcji [[ ]]. Tak nie jest, bo warunek (c) nie określa którym elementem modelu jest [[λx.P ]]v 12 sierpnia 2008, godzina 14: 39 strona 35 a postuluje tylko jego zachowanie przy aplikacji. (Istnienie elementu, który tak sie, zachowuje, nie jest zreszta, oczywiste.) Jeśli a, b ∈ A, to napiszemy a ≈ b, gdy dla dowolnego c ∈ A zachodzi równość a · c = b · c. Oznacza to, że 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ówności. Natomiast lambda-model to interpretacja slabo ekstensjonalna, tj. taka, w której ekstensjonalność zachodzi dla abstrakcji. Aby zrozumieć o co chodzi, zauważmy tu, że [[λx.M ]]v ≈ [[λx.N ]]v oznacza tyle samo co [[M ]]v[x7→a] = [[N ]]v[x7→a] dla wszystkich a. A zatem definicja lambda-modelu mówi, że znaczenie abstrakcji [[λx.M ]] jest zdeterminowane przez funkcje, , która każdemu a przypisuje element [[M ]]v[x7→a] . Oznacza to tyle, że abstrakcja jest operacja, semantyczna, (ma sens w modelu, niezależny od skladni) tak samo jak aplikacja. Przyklad 10.1 Szczególnym przypadkiem interpretacji jest interpretacja zbudowana z samych termów. Niech M(λ) = hΛ/=β , ·, [[ ]] i, gdzie [M ]β · [N ]β = [M N ]β oraz [[M ]]v jest wynikiem jednoczesnego podstawienia termu v(x) na każda, zmienna, wolna, x termu M . Przez M0 (λ) oznaczymy analogiczna, interpretacje, , której dziedzine, tworza, klasy termów zamknie, tych. Podobnie M(λη) i M0 (λη) oznacza struktury w których zbiór termów (odp. zbiór kombinatorów) podzielono przez =βη . Wszystkie te struktury sa, lambda-algebrami, ale M0 (λ) i M0 (λη) nie sa, lambda-modelami. Nastepuj acy lemat mówi o wlasności, której oczekujemy od każdej sensownej semantyki. , , Znaczenie podstawienia M [x := N ] powinno być takie samo jak znaczenie termu M przy odpowiednio zmienionym wartościowaniu. Lemat 10.2 W dowolnym lambda-modelu zachodzi tożsamość [[M [x := N ]]]v = [[M ]]v[x7→[[N ]]v ] . Dowód: Udowodnimy najpierw, że teza zachodzi przy dodatkowym zalożeniu x 6∈ FV(N ). Postepujemy przez indukcje, ze wzgledu na M . Przypadki zmiennej i aplikacji sa, latwe, niech , , wiec M = λy P . Przyjmijmy, że y ∈ 6 FV(N ). Dla dowolnego a, korzystajac , , z zalożenia indukcyjnego o P , dostaniemy [[(λy P )[x := 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, gdzie v = v[y 7→ a]. Z tego wynika [[(λy P )[x := N ]]]v = [[(λy.P )[x := N ]]]v[x7→[[N ]]v ] = [[(λy P )]]v[x7→[[N ]]v ] , bo mamy do czynienia z lambda-modelem. 12 sierpnia 2008, godzina 14: 39 strona 36 Niech teraz x ∈ FV(N ). Ustalmy nowa, zmienna, z i niech w oznacza v[z 7→ [[x]]v ]. Zauważmy, że w[x 7→ [[z]]w ] = w. A zatem [[M [x := N ][x := z]]]w = [[M [x := N ]]]w = [[M [x := N ]]]v , bo x 6∈ FV(z). Niech N 0 = N [x := z]. Wtedy M [x := N ][x := z] = M [x := N 0 ], wiec , [[M [x := N ][x := z]]]w = [[M [x := N 0 ]]]w = [[M ]]w[x7→[[N 0 ]]w ] = [[M ]]v[x7→[[N 0 ]]w ] , bo x 6∈ FV(N 0 ). Ale [[N 0 ]]w = [[N [x := z]]]w = [[N ]]w[x7→[[z]]w ] = [[N ]]w = [[N ]]v , ponieważ x 6∈ FV(z). Stad , ostatecznie [[M [x := N ]]]v = [[M [x := N ][x := z]]]w = [[M ]]v[x7→[[N ]]v ] . Fakt 10.3 Każdy lambda-model jest lambda-algebra. , Dowód: Przez indukcje, ze wzgledu na definicje, beta-równości pokazujemy że jeśli M =β N , , to [[M ]]v = [[N ]]v . Najpierw zauważmy, że [[(λ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 zalożenia indukcyjnego wynika, że [[P ]]u = [[Q]]u , przy każdym u, w szczególności 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 . Pozostale przypadki sa, rutynowe. Twierdzenie 10.4 (o pelności) Nastepuj ace warunki sa, równoważne: , , 1) M =β N ; 2) A |= M = N dla dowolnej lambda-algebry A; 3) A |= M = N dla dowolnego lambda-modelu A. Dowód: Implikacja (1) ⇒ (2) wynika wprost z definicji, a implikacja (2) ⇒ (3) z Lematu 10.3. Natomiast implikacja (3) ⇒ (1) wynika stad, , że M(λ) jest lambda-modelem, a termy równe w M(λ) musza, być β-równe (rozpatrzmy trywialne wartościowanie v(x) = x). Modele cześciowo uporzadkowane , , Na poczatek przypomnijmy kilka definicji. Niech hA, ≤i bedzie porzadkiem cześciowym. , , , , • Podzbiór B zbioru A jest skierowany wtedy i tylko wtedy, gdy dla dowolnych a, b ∈ B istnieje takie c ∈ B, że a, b ≤ c. • Zbiór A jest zupelnym porzadkiem cześciowym (cpo) wtedy i tylko wtedy, gdy każdy , , jego skierowany podzbiór ma kres górny. 12 sierpnia 2008, godzina 14: 39 strona 37 Oczywiście każdy lańcuch jest zbiorem skierowanym. W szczególności elementy dowolnego ciagu wstepuj acego a0 ≤ a1 ≤ a2 ≤ . . . tworza, zbiór skierowany. Także zbiór pusty jest , , , zbiorem skierowanym. Z definicji porzadku zupelnego wynika wiec , , istnienie elementu najmniejszego sup ∅, tradycyjnie oznaczanego przez ⊥. Niech teraz hA, ≤i i hB, ≤i bed cześciowymi. , a, porzadkami , , • Funkcja f : A → B jest monotoniczna wtedy i tylko wtedy, gdy dla dowolnych x, y ∈ A nierówność x ≤ y implikuje f (x) ≤ f (y). • Jeśli hA, ≤i i hB, ≤i sa, zupelnymi porzadkami cześciowymi to funkcja f : A → B jest , , ciag , la wtedy i tylko wtedy, gdy f zachowuje kresy górne niepustych zbiorów skierowanych, tj. dla dowolnego skierowanego i niepustego podzbioru X ⊆ A istnieje sup f (X) i zachodzi równość f (sup X) = sup f (X). Fakt 10.5 Każda funkcja ciag , la jest monotoniczna. Zbiór wszystkich funkcji ciag , lych z A do B oznaczamy przez [A → B]. Ten zbiór, uporzad, kowany warunkiem: f ≤g wtedy i tylko wtedy, gdy ∀a ∈ A(f (a) ≤ g(a)), jest zupelnym porzadkiem cześciowym. Podobnie można nadać strukture, cpo zbiorowi A × B , , za pomoca, zwyklego uporzadkowania po wspólrzednych”: , , ” ha, bi ≤ ha0 , b0 i wtedy i tylko wtedy, gdy a ≤ a0 i b ≤ b0 . Lemat 10.6 Funkcja f : D1 × D2 → D jest ciag , la wtedy i tylko wtedy gdy jest ciag , la ze wzgledu na obie wspólrzedne, tj. dla dowolnych a ∈ D1 i b ∈ D2 oraz dowolnych A ⊆ D1 , , i B ⊆ D2 zachodzi f (sup A, b) = sup f (A, b) oraz f (a, sup B) = sup f (a, B). Dowód: Implikacja z lewej do prawej jest oczywista. Dla dowodu implikacji odwrotnej rozpatrzmy skierowany zbiór X ⊆ D1 × D2 i niech A = π1 (X) oraz B = π2 (X). Oczywiście X ⊆ A × B, chociaż niekoniecznie na odwrót. Ale jeśli ha, bi ∈ A × B, to zawsze istnieje takie ha0 , b0 i ∈ X, że ha, bi ≤ ha0 , b0 i. Istotnie, mamy wtedy pary ha, b00 i, ha00 , bi ∈ X. Skoro zbiór X jest skierowany, to ha, b00 i, ha00 , bi ≤ ha0 , b0 i dla pewnego ha0 , b0 i ∈ X. Porzadek jest po , 0 , b0 i. wspólrzednych, wi ec ha, bi ≤ ha , , Z powyższej obserwacji wynika, że sup X = sup(A×B) = hsup A, sup Bi. Niech ha0 , b0 i bedzie , tym kresem. Należy sprawdzić, że f (a0 , b0 ) = sup f (X). Oczywiście f (a0 , b0 ) ≥ sup f (X), przypuśćmy wiec, że c ≥ f (a, b) dla wszystkich (a, b) ∈ X. Wtedy także c ≥ f (a, b) dla , wszystkich (a, b) ∈ A × B. Jeśli ustalimy dowolne b ∈ B, to na mocy ciag , lości ze wzgledu , na pierwsza, wspólrzedn a, otrzymamy c ≥ f (a , b). Dalej z ci ag lości ze wzgl edu na druga, 0 , , , , wspólrzedn a, wynika także c ≥ f (a0 , b0 ). , Lemat 10.7 Operacja aplikacji Ap : D1 ×[D1 → D2 ] → D2 , określona przez Ap(d, f ) = f (d), jest funkcja, ciag , la. , strona 38 12 sierpnia 2008, godzina 14: 39 Dowód: Na mocy lematu 10.6 wystarczy sprawdzić ciag na wspólrzedne. , lość ze wzgledu , , 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śli 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ślona i ciag , la. Dowód: Dla dowolnego d, funkcja Abs(f )(d) jest zlożeniem funkcji ciag , lej f z funkcja, ciag , la, g(e) = hd, ei, zatem jest ciag , 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, że 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 }, czyli sama funkcja Abs też jest ciag , la. Refleksywne cpo Kluczowa definicja jest taka. Zupelny porzadek cześciowy D jest refleksywny, gdy przestrzeń , , funkcyjna [D → D] jest retraktem D, tj. gdy istnieja, przeksztalcenia ciag , le F : D → [D → D] i G : [D → D] → D, takie, że F ◦ G = id[D→D] . Zauważmy, że wtedy [D → D] jest izomorficzne z pewnym podzbiorem D (obrazem funkcji G). Na takim cpo możemy określić lambda-interpretacje, D = hD, ·, [[ ]] i, gdzie dla a, b ∈ D a · b = F (a)(b), a znaczenie termów jest określone tak: • Jeśli x jest zmienna,, to [[x]]v = v(x); • [[P Q]]v = [[P ]]v · [[Q]]v ; • [[λx.P ]]v = G(ξPv,x ). Powyżej, symbol ξPv,x oznacza funkcje, określona, równaniem ξPv,x (a) = [[P ]]v[x7→a] , która, nieformalnie możemy zapisać tak Λa.[[P ]]v[x7→a] . Nietrudno zauważyć, że wtedy zachodza, nastepuj ace warunki: , , • [[λx.P ]]v · a = [[P ]]v[x7→a] , dla dowolnego a ∈ D; • Jeśli v|FV(P ) = u|FV(P ) , to [[P ]]v = [[P ]]u , a zatem faktycznie mamy lambda-interpretacje. , Nietrudno też przeoczyć pewien drobiazg: poprawność powyższej definicji nie jest wcale oczywista i wymaga dowodu. Operacja G jest bowiem określona tylko dla funkcji ciag , lych. strona 39 12 sierpnia 2008, godzina 14: 39 v,x Lemat 10.9 Dla dowolnych M i v, funkcja ξM (czyli Λa.[[M ]]v[x7→a] ) jest ciag , la. v,x Dowód: Indukcja ze wzgledu na M . Dla M = P Q, funkcja ξM = Λa.[[M ]]v[x7→a] jest , v,x zlożeniem postaci Ap ◦ h, gdzie h(a) = hF (ξPv,x (a)), ξQ (a)i jest ciag la. Jeśli M = λy N to , z zalożenia indukcyjnego funkcja f , która parze ha, bi przypisuje [[N ]]v[x7→a][y7→b] jest ciag , la ze wzgledu na obie wspólrzedne, a zatem ciag , , , la, na mocy lematu 10.6. Natomiast funkcja v,x ξM = Λa.G(Λb.[[N ]]v[x7→a][y7→b] ) jest zlożeniem G ◦ Abs(f ). Twierdzenie 10.10 Jeśli D jest refleksywnym cpo, to lambda-interpretacja D = hD, ·, [[ ]] i jest lambda-modelem. Dowód: Pozostaje sprawdzić, że mamy slaba, ekstensjonalność. Wystarczy w tym celu v,x v,x zauważyć, że warunek [[λx.M ]]v ≈ [[λx.N ]]v implikuje ξM = ξN . Uwaga: Nasz model jest ekstensjonalny wtedy i tylko wtedy, gdy G ◦ F = idD . Ćwiczenia 1. Pokazać, że M0 (λ), M(λ), M(λη) i M0 (λη) sa, lambda-algebrami. 2. Pokazać, że M(λ) i M(λη) sa, lambda-modelami. 3. Znaleźć w ksiażce Barendregta, że M0 (λ) ani M0 (λη) nie sa, lambda-modelami. , 4. (Meyer) Niech 1 = [[1]]. Pokazać, że lambda-algebra jest lambda-modelem wtedy i tylko wtedy, gdy z warunku a ≈ b wynika 1 · a = 1 · b. 5. Czy z tego, że A |= λx.M x = M wynika ekstensjonalność interpretacji A? Wskazówka: Użyć zadania 3. 6. Pokazać, że jeśli D jest refleksywnym cpo i f : D → D jest ciag , la, to istnieje takie a ∈ D, że f (x) = a · x dla dowolnego x. 7. Czy funkcja odwrotna do ciag , lej bijekcji musi być ciag , la? 11 Model D∞ Skonstruujemy teraz konkretny przyklad modelu — pewne refleksywne cpo, zwane modelem Scotta D∞ . Zacznijmy od prostej definicji. Niech A i B bed , a, cpo. Projekcja, z B na A nazywamy pare, funkcji ciag , lych ϕ : A → B i ψ : B → A, spelniajac , a, warunki ψ ◦ ϕ = idA oraz ϕ ◦ ψ ≤ idB . Zauważmy, że wtedy ϕ(⊥A ) = ⊥B , bo ϕ(⊥A ) ≤ ϕ(ψ(⊥B )) ≤ ⊥B . Gdy mamy taka, projekcje, , to w szczególności A jest retraktem B. Identyfikujac , element d ∈ A z jego obrazem ϕ(d), możemy wtedy uważać zbiór A za podzbiór B. Przykladem projekcji jest para funkcji strona 40 12 sierpnia 2008, godzina 14: 39 ϕ0 : D → [D → D] i ψ0 : [D → D] → D, określona 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ń funkcyjna,, przy którym każdy element D jest utożsamiany z funkcja, stala., Jeśli mamy projekcje, (ϕ, ψ) z B na A, to możemy podnieść” te, projekcje, na poziom funkcji, ” czyli określić nowa, projekcje, (ϕ∗ , ψ ∗ ) z przestrzeni [B → B] na [A → A]. Dla f : A → A i g : B → B przyjmujemy ϕ∗ (f ) = ϕ ◦ f ◦ ψ oraz ψ ∗ (g) = ψ ◦ g ◦ ϕ, co ilustruje obrazek: AO ϕ f Ao ψ /B O A ϕ /B g Ao B ψ B Lemat 11.1 Jeśli (ϕ, ψ) jest projekcja, z B na A, to para (ϕ∗ , ψ ∗ ) jest projekcja, z [B → B] na [A → A]. Dowód: Ćwiczenie. Przypuśćmy teraz, że mamy jakiekolwiek cpo D. Określimy ciag , zbiorów Dn zaczynajac , od D0 = D i indukcyjnie przyjmujac D = [D → D ]. Oczywiście wszytkie D s a cpo. n+1 n n n , , Dalej definiujemy przez indukcje, ciag , projekcji (ϕn , ψn ) z Dn+1 na Dn , przyjmujac , ∗ ∗ (ϕn+1 , ψn+1 ) = (ϕn , ψn ). Mamy wiec transmisje, w obie strony: ϕ0 ϕ1 ϕ2 D0 −→ D1 −→ D2 −→ · · · ψ0 ψ1 ψ2 D0 ←− D1 ←− D2 ←− · · · Każdy ciag dla dowolnego n warunek , (xn )n∈N zlożony z elementów xn ∈ Dn i spelniajacy , xn = ψn (xn+1 ) nazywamy nicia. Tak wygl ada nić: , , ψ0 ψ1 ψ2 x0 ←− x1 ←− x2 ←− · · · Dla nici stosujemy notacje, x = (xn )n∈N . Zbiór wszystkich nici oznaczamy przez D∞ . Można go uporzadkować po wspólrzednych: , , x ≤ y wtedy i tylko wtedy, gdy ∀n ∈ N(xn ≤ yn ). strona 41 12 sierpnia 2008, godzina 14: 39 Lemat 11.2 Zbiór D∞ jest zupelnym porzadkiem cześciowym. , , Dowód: Jeśli X ⊆ D∞ jest skierowany, to każdy ze zbiorów Xn = {xn | x ∈ X} jest skierowany, zatem istnieja, kresy yn = 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 = (yn )n∈N jest nicia, (należy do D∞ ). Pozostaje latwe sprawdzenie, że y = sup X. Dla dowolnych n ≤ m, mamy oczywiście projekcje, (ϕnm , ψnm ) z Dm na Dn , czyli zlożenie ϕ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żna też określić projekcje (ϕn∞ , ψn∞ ) z D∞ na Dn . Dla x ∈ Dn i y ∈ D∞ : ψin (x), gdy i < n; x, gdy i = n; (ϕn∞ (x))i = ψn∞ (y) = yn . ϕni (x), gdy i > n. Od tej pory możemy uważać, że zachodza, inkluzje D0 ⊆ D1 ⊆ D2 ⊆ · · · ⊆ D∞ , zadane przez powyższe projekcje. W szczególności każdy element x ∈ Dn utożsamiamy z nicia, prawie wszedzie równa, x: , ψ0 ψ1 ψ2 ψn−2 ψn−1 ψn ψn+1 ψn+2 x0 ←− x1 ←− x2 ←− · · · ←− xn−1 ←− x ←− x ←− x ←− · · · bo przecież x uważamy za element wszystkich Dm dla m ≥ n. Zauważmy, że mamy tu nierówności x0 ≤ x1 ≤ x2 ≤ · · · ≤ xn−1 ≤ xn = x. Lemat 11.4 1. Każda nić x jest ciagiem wstepuj acym (x0 ≤ x1 ≤ x2 ≤ . . .) i przy tym x = sup xn ; , , , 2. Najmniejszy element jest zawsze ten sam: ⊥D0 = ⊥Dn = ⊥D∞ . Dowód: Ćwiczenie. Lemat 11.5 Aplikacja w D∞ określona wzorem x · y = sup{xn+1 (yn ) | n ∈ N} jest operacja, ciag , la. , Dowód: Najpierw trzeba pokazać, że kres istnieje, elementy xn+1 (yn ) ∈ Dn nie musza, bowiem tworzyć nici. Jest to jednak ciag acy, co wynika z takich zwiazków pomiedzy , wstepuj , , , , strona 42 12 sierpnia 2008, godzina 14: 39 elementami zbioru Dn : ϕn−1 (xn (yn−1 )) = ϕn−1 (ψn−1 (xn+1 (ϕn−1 (yn−1 ))) ≤ xn+1 (ϕn−1 (yn−1 )) ≤ xn+1 (ϕn−1 (ψn−1 (yn ))) ≤ xn+1 (yn ) Dowód ciag na x liczymy tak: Z jednej , lości korzysta z lematu 10.6. Ciag , lość ze wzgledu , strony supx∈X x · y = supx∈X supn∈N xn+1 (yn ), a z drugiej strony (sup X) · y = supn∈N (sup X)n+1 · yn = supn∈N (sup Xn+1 ) · yn = supn∈N supx∈X xn+1 (yn ), gdzie Xn+1 = {xn+1 | x ∈ X}. A przecież to jest to samo. Ciag na y jest , lość ze wzgledu , nawet latwiejsza. Mamy bowiem x · sup Y = supn (xn+1 (sup Y )) = supn supy xn+1 (y) oraz sup(x · Y ) = supy supn xn+1 (y). Teraz troche, o tym, jak dziala aplikacja. Lemat 11.6 1. Jeśli x ∈ Dn+1 oraz y ∈ Dn to x · y = x(y); 2. Jeśli y ∈ Dn to (x · y)n = xn+1 (y) 3. Zawsze (x · ⊥)0 = x0 . Dowód: 1. W cześci pierwszej należy pokazać, że x · y = supm xm+1 (ym ) = xn+1 (yn ). , W tym celu zauważmy, że dla m < n mamy ∗ (x xm+1 (ym ) = ψm+1,n+1 (x)(ψmn (y)) = ψmn n+1 )(ψmn (yn )) ≤ ψmn (xn+1 (yn )), ∗ (x bo ψmn n+1 ) = ψmn ◦ xn+1 ◦ ϕmn . Natomiast dla m ≥ n xm+1 (ym ) = ϕn+1,m+1 (x)(ϕnm (y)) = ϕ∗nm (x)(ϕnm (y)) = ϕnm (x(y)), bo ϕ∗nm (x) = ϕnm ◦ x ◦ ψnm . 2. W cześci drugiej, dla dowolnego i ≥ n mamy yi+1 = ϕ(yi ), wiec , , xi+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ć na takim obrazku: yi ∈ Di o ψi ϕi / yi+1 ∈ Di+1 xi+1 Dn o ψni Di o xi+2 ψi Di+1 3. Cześć trzecia wynika z drugiej, dla y = ⊥ ∈ D0 . , Lemat 11.7 Aplikacja w D∞ jest ekstensjonalna: jeśli x · z = y · z zachodzi dla dowolnego z, to elementy x i y sa, równe. strona 43 12 sierpnia 2008, godzina 14: 39 Dowód: W istocie zachodzi implikacja jeśli ∀z ∈ D∞ (x · z ≤ y · z) to x ≤ y. Nierówność 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 , xn+1 ≤ yn+1 . Lemat 11.8 Niech f ∈ Dn+1 i g ∈ Dn+2 bed , a, takie, że ϕn (f (a)) ≤ g(ϕn (a)) dla a ∈ Dn . Wtedy f ≤ g w zbiorze D∞ . Dowód: Należy sprawdzić, jakie nici wyznaczaja, f i g. Ponieważ ϕn (f (a)) ≤ g(ϕn (a)) wiec , f (a) = ψn (ϕn (f (a))) ≤ ψn (g(ϕn (a)) = ψn+1 (g)(a), czyli f ≤ ψn+1 (g) w zbiorze Dn+1 . Inaczej mówiac , (f )n+1 ≤ (g)n+1 , a reszta wynika z monotoniczności funkcji ϕi i ψi . Twierdzenie 11.9 Zbiór D∞ jest refleksywnym cpo, co wiecej, jest on izomorficzny z prze, strzenia, funkcyjna, [D∞ → D∞ ]. Dowód: Funkcja F : D∞ → [D∞ → D∞ ] jest określona w oczywisty sposób: F (x)(y) = x · y. Z lematów 11.5 i 11.7 wynika, że F jest ciag , la i różnowartościowa. Aby sprawdzić, że jest to surjekcja, weźmy dowolna, funkcje, f ∈ [D∞ → D∞ ] i niech f (n) : Dn → Dn bedzie jej , (n) aproksymacja” (y) = f (y)n dla y ∈ Dn . , do Dn , tj. niech f ” (n) nie musi być nicia, ale jest wstepujacy. Istotnie, zauważmy że elementy y ∈ D oraz Ciag n , f , , , ϕn (y) ∈ Dn+1 wyznaczaja, te, sama, nić, zatem z punktu widzenia D∞ sa, po prostu równe. (n) (y) = f (y) ≤ f (ϕ (y)) (n+1) (ϕ (y)) zachodzi A wiec n n n+1 = f n , f (y) = f (ϕn (y)) w D∞ skad , f dla y ∈ Dn . Ściślej, mamy nierówność ϕn (f (n) (y)) ≤ f (n+1) (ϕn (y)) pomiedzy elementami , zbioru Dn , co na mocy lematu 11.8 oznacza f (n) ≤ f (n+1) . (n) jest wstepujacy, to ma kres a = sup f (n) . Trzeba teraz sprawdzić, że Skoro ciag n , f , , (n) i y sa wstepujace, wiec F (a) = f . Weźmy dowolne y ∈ D∞ . Ponieważ ciagi f n , , , , , F (a)(y) = a · y = (supn f (n) ) · y = supn f (n) (y) = supn f (y)n = f (y). Jeśli f, g ∈ [D∞ → D∞ ] oraz f ≤ g to oczywiście także supn f (n) ≤ supn g (n) . Oznacza to, że funkcja G : [D∞ → D∞ ] → D∞ , odwrotna do F jest monotoniczna. A zatem funkcja F jest izomorfizmem porzadków, w szczególności F i G sa, ciag , , le. Wniosek 11.10 Zbiór D∞ wyznacza ekstensjonalny lambda-model D∞ = hD∞ , ·, [[ ]]i. Twierdzenie 11.11 (Hyland, Wadsworth) Termy M i N sa, obserwacyjnie równoważne wtedy i tylko wtedy, gdy D∞ |= M = N . Dowód: Można go znaleźć w ksiażce Barendregta. , strona 44 12 sierpnia 2008, godzina 14: 39 12 Model Pω Model Pω też jest pomyslu Scotta. Symbol Pω oznacza po prostu zbiór P(N) uporzadkowany , przez zwykla, inkluzje. Konstrukcja tego modelu opiera sie, na tym, że krata hPω , ⊆i jest , algebraiczna tj. każdy element jest suma, swoich skończonych podzbiorów. Konsekwencja, tego jest to że funkcja ciag , la nad Pω jest zdeterminowana przez swoje zachowanie na zbiorach skończonych. Lemat 12.1 Funkcja f : Pω → Pω jest ciag , la wtedy i tylko wtedy, gdy S f (a) = {f (e) | e skończony oraz e ⊆ a}, dla dowolnego a ∈ Pω . Ponieważ zbiorów skończonych jest przeliczalnie wiele, funkcji ciag , lych jest continuum i można informacje, o takiej funkcji reprezentować za pomoca, jednego elementu Pω . W tym celu potrzebna jest tylko funkcja pary, na przyklad: (m, n) = (n + m)(n + m + 1) + m, 2 i kodowanie zbiorów skończonych, na przyklad: en = {k0 , k1 , . . . , kr−1 }, dla n = X 2k i . i<r Teraz można określić funkcje graph : [Pω → Pω ] → Pω , fun : Pω → [Pω → Pω ] nastepuj aco. Dla f ∈ [Pω → Pω ] i a, b ∈ Pω przyjmujemy , , graph(f ) ={(n, m) | m ∈ f (en )}; fun(a)(x) ={m | ∃n ∈ N(en ⊆ x ∧ (n, m) ∈ a}. Lemat 12.2 Funkcje graph i fun sa, ciag , le, a w dodatku fun ◦ graph = id[Pω →Pω ] . Dowód: Ćwiczenie. A zatem Pω jest refleksywnym cpo. Wniosek 12.3 Struktura Pω = hPω , ·, [[ ]]i, w której x · y = fun(x)(y), jest lambda-modelem. Fakt 12.4 Model Pω nie jest ekstensjonalny. Dowód: Wystarczy jeśli udowodnimy, że Pω 6|= x = λy.xy. Niech v(x) = a. Wtedy [[x]]v = a. Natomiast [[λy.xy]]v = graph(g), gdzie g(b) = [[xy]]v[y7→b] = a · b = fun(a)(b) = strona 45 12 sierpnia 2008, godzina 14: 39 {m | ∃k ∈ N(ek ⊆ b ∧ (k, m) ∈ a)}. A wiec , [[λy.xy]][x7→a] = {(n, m) | m ∈ g(en )} = {(n, m) | ∃k ∈ N(ek ⊆ en ∧ (k, m) ∈ a)}. Jeśli a jest niepustym zbiorem skończonym, to [[λy.xy]]v , jest zbiorem nieskończonym, w szczególności [[λy.xy]]v 6= a. Istotnie, niech (k, m) ∈ a. Wtedy każda para (n, m) gdzie ek ⊆ en należy do [[λy.xy]]v . Okazuje sie, , że teoria modelu Pω to dokladnie teoria drzew Böhma. Twierdzenie 12.5 (Hyland) Dla dowolnych termów M , N Pω |= M = N Dowód: ⇐⇒ BT (M ) = BT (N ) Można go znaleźć w ksiażce Barendregta. , Ćwiczenia 1. Uzupelnić szczególy dowodów. 2. Jakie nici sa, interpretacjami termów I, K, ω, itd. w modelu D∞ ? 3. Czy m ∈ fun(a)(en ) wtedy i tylko wtedy, gdy (n, m) ∈ a? 4. Jakie zbiory sa, interpretacjami termów I, K, ω, itd. w modelu Pω ? 5. Pokazać, że Pω 6|= 1 = I. 6. Funkcja ciag , la z Pω w Pω jest jednoznacznie wyznaczona przez swoje wartości na zbiorach skończonych. Czy jest jednoznacznie wyznaczona przez swoje wartości na zbiorze pustym i singletonach? 13 Typy proste Zaczynamy od skladni typów. Przyjmijmy, że mamy pewien niepusty zbiór typów atomowych, który oznaczymy przez TV . Typy atomowe nazywamy też zmiennymi typowymi.7 Typy definiujemy indukcyjnie: • Typy atomowe p, q, r, . . . sa, typami; • Jeśli σ i τ sa, typami, to σ → τ jest typem. Zbiór wszystkich typów oznaczymy przez T . Stosujemy taka, konwencje, , że strzalka jest laczna , w prawo, tj. napis σ → τ → ρ oznacza σ → (τ → ρ). Zauważmy, że każdy typ można zapisać jako σ1 → · · · → σn → p, gdzie p jest typem atomowym. Otoczenie typowe to cześciowa funkcja ze zbioru zmiennych przedmiotowych w zbiór typów. , Taka, funkcje, utożsamiamy ze zbiorem par postaci (x : τ ) gdzie x jest zmienna, przedmiotowa, 7 Czasami zaklada sie, , że jest tylko jeden atom 0. My zwykle przyjmujemy, że może ich być dowolnie wiele. strona 46 12 sierpnia 2008, godzina 14: 39 a τ jest typem. Napis Γ(x : τ ) oznacza to samo co Γ[x 7→ τ ], a wiec , Γ(x : τ ) powstaje z Γ przez dodanie deklaracji x : τ poprzedzone usunieciem deklaracji (x : Γ(x)) jeśli byla w Γ. , Przez rachunek lambda z typami prostymi (w wersji Curry’ego) rozumiemy system przypisania typów λ→ o nastepujacych regulach (Var) Γ(x : σ) ` x : σ (Abs) Γ(x : σ) ` M : τ (App) Γ`M :σ→τ Γ ` (λx M ) : σ → τ Γ`N :σ Γ ` (M N ) : τ Aby dany term mógl mieć przypisany typ w otoczeniu Γ, konieczne jest jednoznaczne przypisanie typów wszystkim jego podtermom. Dlatego dobrze otypowany term można sobie wyobrażać jako term z adnotacjami typowymi w stylu Churcha”. Takie adnotecje stosuje ” sie, czasem nieformalnie w formie górnych indeksów. Na przyklad napiszemy (λxσ .N τ )P σ : τ , żeby zaznaczyć jaki typ użyty zostal dla x w wyprowadzeniu osadu (λx.N )P : τ . , Poniższe latwe fakty pozostawiamy bez dowodu. Lemat 13.1 (o generowaniu) 1. Jeśli Γ ` M N : σ, to Γ ` M : τ → σ i Γ ` N : τ dla pewnego τ . 2. Jeśli Γ ` x : σ, gdzie x jest zmienna, , to σ = Γ(x). 3. Jeśli Γ ` λx M : σ, oraz x 6∈ Dom(Γ), to σ = ρ → τ dla pewnych ρ i τ , takich że Γ(x : ρ) ` M : τ . Lemat 13.2 Jeśli Γ, x : σ ` M : τ oraz Γ ` N : σ, to Γ ` M [x := N ] : τ . Wniosek 13.3 (poprawność redukcji) Jeśli Γ ` M : τ oraz M →βη N , to Γ ` N : τ . 13.1 Normalizacja Udowodnimy teraz twierdzenie o normalizacji dla termów z typami: każdy typowalny term ma postać normalna., Zaczniemy od rozwiazania ćwiczenia 1 z rozdzialu 4: jakie nowe β-redeksy , moga, powstać w termie na skutek wykonania jednego kroku β-redukcji? Jeśli term przedstawimy w postaci grafu, to każdy redeks jest wyznaczony przez krawedź skierowana, w lewo , od @ do λ (obrazek 13). Usuniecie tej kraw edzi powoduje powstanie bezpośrednich polaczeń , , , od wierzcholka (1) do (2) oraz od (3) do (4), jak widać na obrazku 14. Uwaga: Obrazki 13 i 14 sa, nieco uproszczone. W istocie zamiast jednego wierzcholka (3) mamy ich tyle ile jest wystapień zmiennej x w podtermie zaczepionym w punkcie (2). , Powstanie nowego redeksu jest możliwe, gdy na skutek skrócenia polaczeń pomiedzy (1) i (2) , , oraz (3) i (4) powstanie krawedź l acz aca bezpośrednio wierzcho lek typu @ z wierzcho lkiem , , , typu λ. Może sie, to zdarzyć na 3 sposoby: 1. W pozycji (1) jest wierzcholek typu @, a w pozycji (2) jest wierzcholek typu λ. Mamy wtedy podterm postaci (λxλyQ)N P , który redukuje sie, do (λyQ[x := N ])P . strona 47 12 sierpnia 2008, godzina 14: 39 (1) @> λx @ >> >> > | (4) (3) (2) Obrazek 13: Eta-redeks przed redukcja., . . (1) & (4) (3) (2) Obrazek 14: . . . i po redukcji. 2. W pozycji (3) jest wierzcholek typu @, a w pozycji (4) jest wierzcholek typu λ, tj. podterm (λx . . . xP . . .)(λyQ) redukuje sie, do . . . (λyQ)P . . . 3. Wierzcholki (2) i (3) sa, sklejone w jeden, w pozycji (1) jest wierzcholek typu @, a w pozycji (4) jest wierzcholek typu λ. Tak jest w przypadku podtermu (λx x)(λyQ)P , który redukuje sie, do (λyQ)P . Oczywiście na skutek redukcji może także dojść do zwielokrotnienia redeksów już istniejacych. , Twierdzenie 13.4 Jeśli Γ ` M : τ to M ma postać normalna. , Dowód: Rozważamy pewne ustalone wyprowadzenie osadu Γ ` M : τ . To wyprowadzenie , jednoznacznie określa przypisanie typów dla wszystkich termów, które można otrzymać z M w drodze redukcji. A zatem możemy bez obawy nieporozumienia stosować adnotacje typowe w formie indeksów. Ranga, redeksu (λxσ . P τ )Qσ nazwiemy dlugość typu σ → τ , czyli typu przypisanego abstrakcji (λx. P ). Ranga termu to maksymalna ranga wystepuj acych w nim , , redeksów. Dowód twierdzenia przebiega przez indukcje, ze wzgledu na dwa parametry (n, m), gdzie n jest , ranga, termu M a m jest liczba, redeksów rangi n wystepuj acych w M . Wystarczy udowodnić, , , 12 sierpnia 2008, godzina 14: 39 strona 48 że na skutek redukcji odpowiednio wybranego redeksu w M para (n, m) musi sie, (leksykograficznie) zmniejszyć. Wybrać należy redeks rangi n polożony (zaczynajacy sie) , , najdalej jak to możliwe na prawo. Przy takiej redukcji zwielokrotnieniu moga ulec tylko redeksy mniejszej rangi (polożone na prawo). Pozostaje zauważyć, że nowe redeksy powstajace , w wyniku naszej redukcji też musza, być rangi mniejszej od n. Mamy bowiem trzy wcześniej wspomniane możliwości: 1. (λxα λy β .Qγ )N α P β → (λy β Q[x := N ]γ )P β . 2. (λxα→γ . . . xP α . . .)β (λy α Qγ ) → . . . (λy α Qγ )P . . . 3. (λxα→β xα→β )(λy α Qβ )P α → (λy α Qβ )P α . W każdym z przypadków nowy redeks jest mniejszej rangi niż redeks wyeliminowany: 1. Abstrakcje, typu α → β → γ zastapiono przez abstrakcje, typu β → γ. , 2. Abstrakcje, typu (α → γ) → β zastapiono przez abstrakcje, typu α → γ. , 3. Abstrakcje, typu (α → β) → (α → β) zastapiono przez abstrakcje, typu (α → β). , Silna normalizacja Twierdzenie o normalizacji można wzmocnić: term rachunku lambda z typami redukuje sie, zawsze do postaci normalnej, niezależnie od przyjetej strategii. Inaczej mówiac, , , wszystkie termy z typami maja, wlasność silnej normalizacji (SN). Moralny sens tego faktu jest taki: statyczna kontrola typów gwarantuje terminacje, obliczenia niezależnie od kolejności ewaluacji. Program z typami może sie, zapetlić tylko wtedy, gdy jakiś jego skladnik jawnie na to pozwala , (np. zawiera on petl e, rekursj e itp.). , , , Metoda dowodu silnej normalizacji (computability method ), która, zastosujemy, pochodzi od Williama Taita i bywa stosowana także dla dowodu innych wlasności jezyków z typami. W is, tocie polega ona na konstrukcji pewnego syntaktycznego modelu dla typów prostych. Dla dowolnego typu τ , określimy pewna, interpretacje, typu τ w zbiorze termów, a mianowicie zbiór termów stabilnych 8 dla typu τ , który oznaczymy przez [[τ ]]. • [[p]] := SN, gdy p jest atomem; • [[τ → σ]] := {M : τ → σ | ∀N (N ∈ [[τ ]] ⇒ M N ∈ [[σ]])}. Lemat 13.5 Dla dowolnego typu τ : 1) [[τ ]] ⊆ SN; 2) Jeśli N1 , . . . , Nk ∈ SN to xN1 . . . Nk ∈ [[τ ]]. W szczególności zmienne sa, stabilne. 8 Inna, czesto spotykana terminologia: termy obliczalne lub redukowalne. , 12 sierpnia 2008, godzina 14: 39 strona 49 Dowód: Indukcja ze wzgledu na τ . Niech na poczatek τ bedzie atomem. Warunek (1) , , , wynika wprost z definicji. Warunek (2) wlaściwie też, bo oczywiście xN1 . . . Nk ∈ SN. Teraz niech τ = σ → ρ i niech M ∈ [[σ → ρ]]. Weźmy dowolna, zmienna, x. Z zalożenia indukcyjnego (2) mamy x ∈ [[σ]], wiec , z definicji M x ∈ [[ρ]]. A wiec , M x ∈ SN, z zalożenia indukcyjnego (1). Tym bardziej M ∈ SN. Pokazaliśmy (1). W punkcie (2) mamy pokazać, że xN1 . . . Nk P ∈ [[ρ]] dla każdego P ∈ [[σ]]. Ale P ∈ SN z zalożenia indukcyjnego (1), wiec , teza wynika z zalożenia indukcyjnego (2) dla ρ. Lemat 13.6 Jeśli M [x:=N0 ]N1 . . . Nk ∈ SN oraz N0 ∈ SN, to także (λx.M )N0 N1 . . . Nk ∈ SN. Dowód: Przypuśćmy, że term P0 = (λx.M )N0 N1 . . . Nk ma nieskończony ciag , redukcji P0 → P1 → P2 → · · · Ponieważ wszystkie termy M, N0 , . . . , Nk sa, silnie normalizowalne, wiec , predzej czy później b edzie zredukowany redeks czo lowy. Ściślej, dla pewnego n, , , Pn = (λx.M 0 )N00 N10 . . . Nk0 → M 0 [x := N00 ]N10 . . . Nk0 = Pn+1 , gdzie M M 0 oraz Ni Ni0 dla i ≤ k. Ponieważ M [x := N0 ]N1 . . . Nk Pn+1 , wiec , mamy sprzeczność z zalożeniem. Lemat 13.7 Jeśli M [x:=N0 ]N1 . . . Nk ∈ [[τ ]] oraz N0 ∈ SN, to także (λx.M )N0 N1 . . . Nk ∈ [[τ ]]. Dowód: Indukcja ze wzgledu na τ . Przypadek typu atomowego to dokladnie lemat 13.6. , Niech wiec , τ = σ → ρ, i niech M [x := N0 ]N1 . . . Nk ∈ [[τ ]]. Mamy sprawdzić czy dla P ∈ [[σ]] zachodzi (λx.M )N0 N1 . . . Nk P ∈ [[ρ]]. Ale skoro M [x := N0 ]N1 . . . Nk ∈ [[τ ]] = [[σ → ρ]] wiec , M [x := N0 ]N1 . . . Nk P ∈ [[ρ]] i wystarczy zastosować zalożenie indukcyjne dla ρ (przyjmujac , Nk+1 = P ). Nastepujacy lemat można uważać za twierdzenie o poprawności dla semantyki zadanej przez , zbiory termów stabilnych. Lemat 13.8 Jeśli Γ ` M : τ oraz Ni ∈ [[Γ(xi )]] dla i ≤ n, to M [x1 :=N1 , . . . , xn :=Nn ] ∈ [[τ ]]. Dowód: Indukcja ze wzgledu na M . Jeśli M jest zmienna, xi , to teza wynika z lematu , o generowaniu. Jeśli M jest inna, zmienna,, to korzystamy z lematu 13.5(2). W przypadku gdy M = P Q, z lematu o generowaniu mamy Γ ` P : ζ → τ i Γ ` Q : ζ dla pewnego typu ζ. Z zalożenia indukcyjnego P ∈ [[ζ → τ ]] i Q ∈ [[ζ]] wiec , M = P Q ∈ [[τ ]] wprost z definicji [[ζ → τ ]]. Niech teraz M = λy.P . Typ τ jest wtedy postaci σ → ρ, i do tego wiemy jeszcze, że ~ ] ∈ [[σ → ρ]]. Weźmy wiec jakiś Γ(y : σ) ` P : ρ. Wystarczy oczywiście pokazać, że M [~x := N , ~ ~ ]Q = (λy.P [~x := N ~ ])Q. term Q ∈ [[σ]] i rozpatrzmy aplikacje, M [~x := N ]Q = (λy.P )[~x := N ~ . Oznacza to Przyjeliśmy tu oczywiście, że zmiennna y nie jest wolna w żadnym z termów N , ~ ~ w szczególności, że P [~x := N ][y := Q] = P [~x := N , y := Q]. Ten ostatni term jest stabilny ~ ]Q też dla ρ, co wiemy z zalożenia indukcyjnego. Zatem z lematu 13.7 wynika, że M [~x := N ~ ] jest stabilny dla σ → ρ. jest stabilny dla ρ. Pokazaliśmy wiec x := N , ostatecznie, że M [~ strona 50 12 sierpnia 2008, godzina 14: 39 Twierdzenie 13.9 (silna normalizacja) Jeśli Γ ` M : τ dla pewnych Γ i τ to term M jest silnie normalizowalny. Dowód: 14 Wystarczy przyjać , n = 0 w treści lematu 13.8. Izomorfizm Curry’ego-Howarda Typy proste można utożsamiać z formulami zdaniowymi zbudowanymi z atomów (zmiennych zdaniowych) za pomoca, samej implikacji. Ta analogia nie jest przypadkowa, bo reguly wyprowadzania typów odpowiadaja, regulom wnioskowania: (Ax) Γ, σ ` σ Γ, σ ` τ (W→) Γ`σ→τ (E→) Γ`σ→τ Γ`σ Γ`τ Reguly te otrzymaliśmy przez wytarcie z regul systemu λ→ wszystkiego co dotyczy termów i pozostawienie tylko informacji o typach. Oczywiście symbol Γ, wystepujacy w regulach , wnioskowania, oznacza po prostu zbiór formul. Logika określona tymi regulami to minimalna logika implikacyjna. Jeśli Γ jest otoczeniem typowym, to przez |Γ| oznaczymy zbiór formul {Γ(x) | x ∈ Dom(Γ)}. Nastepuj ace izomorfizmem , , twierdzenie wyraża w uproszczeniu odpowiedniość nazywana, czesto , Curry’ego-Howarda. Twierdzenie 14.10 • Jeśli Γ ` M : τ w systemie λ→ , to |Γ| ` τ w logice minimalnej. • Jeśli Γ ` τ w logice minimalnej, to istnieje takie otoczenie typowe E, że |E| = Γ oraz E ` M : τ dla pewnego M w systemie λ→ . Dowód: Latwa indukcja. W sensie ogólnym, izomorfizm Curry’ego-Howarda to wlaśnie ścisla odpowiedniość pomiedzy , • formulami i typami; • dowodami i termami (programami). Powstaje pytanie czy logika minimalna to to samo co implikacyjny fragment logiki klasycznej. Otóż nie. Nastepujaca klasyczna tautologia, zwana prawem Peirce’a, nie jest twierdzeniem , logiki minimalnej: π = ((p → q) → p) → p strona 51 12 sierpnia 2008, godzina 14: 39 Można to latwo stwierdzić, korzystajac , z prostej obserwacji: jeśli istnieje term M typu τ , to istnieje też taki term w postaci normalnej. Pozostaje wiec , zbadać, jak może wygladać , zamkniety term w postaci normalnej typu π i przekonać sie, że nijak. , A zatem na czym polega różnica? Logika minimalna jest konstruktywna. Implikacja w tej logice jest traktowana jak typ pewnej funkcji. Dowód formuly postaci α → β musi polegać na wskazaniu metody przeksztalcenia każdego potencjalnego dowodu zalożenia α w poprawny dowód formuly β. Nie ma innego kryterium prawdy oprócz dowodu, w szczególności nie wystarczy odwolanie do dwuwartościowej semantyki. Kombinatory z typami Jak zauważyliśmy, termy rachunku lambda z typami prostymi odpowiadaja, ściśle dowodom w minimalnej logice implikacyjnej. Chodzi tu o dowody w systemie naturalnej dedukcji. Pojecie dowodu formalnego czesto jednak kojarzy sie, nam nie z naturalna, dedukcja,, ale z po, , dejściem Hilberta. To podejście jest bowiem zwykle prezentowane w podrecznikach logiki. Dla , klasycznego implikacyjnego rachunku zdań, hilbertowski system dowodzenia można oprzeć na jednej regule wnioskowania (modus ponens) α, α → β β i trzech nastepuj acych schematach aksjomatów. , , • α → β → α; • (α → β → γ) → (α → β) → α → γ; • ((α → β) → α) → α. Trzeci z tych aksjomatów, prawo Peirce’a, jak już wiemy, nie jest twierdzeniem logiki minimalnej, ale pierwsze dwa tak. Sa, to mianowicie typy znanych nam termów zamknietych: , • K = λxy.x; • S = λxyz.xz(yz). Okazuje sie, , że jeśli z powyższego systemu odrzucimy trzeci aksjomat a pozostawimy dwa pierwsze, to otrzymamy system równoważny logice minimalnej. Piszemy Γ `H ϕ gdy formula ϕ ma dowód w takim systemie Hilberta ze zbioru dodatkowych zalożeń Γ. Równoważność naszego systemu Hilberta i naturalnej dedukcji wynika z nastepuj acego twierdzenia: , , Twierdzenie 14.11 (o dedukcji) Warunki Γ `H ϕ → ψ i Γ, ϕ `H ψ sa, równoważne. Dowód: Oczywiście wszyscy znaja, dowód twierdzenia o dedukcji, ale przypomnijmy go9 z powodów metodologicznych. Dowód ten w swojej trudniejszej cześci — z prawej do lewej , — przebiega przez indukcje, ze wzgledu na d lugość dowodu formu ly ψ ze zbioru zalożeń Γ, ϕ. , 9 W istocie nasz dowód nieznacznie różni sie, od tego, który wystepuje w wiekszości podreczników. , , 12 sierpnia 2008, godzina 14: 39 strona 52 Rozpatrzmy najpierw kilka latwych przypadków. Pierwszy latwy przypadek mamy wtedy, gdy w dowodzie nie użyto w ogóle zalożenia ϕ. Tak jest w szczególności wtedy, kiedy ψ jest aksjomatem lub ψ ∈ Γ, a dowód sklada sie, tylko z tej jednej formuly. Inaczej mówiac , mamy w istocie dowód Γ `H ψ. Wtedy dowód formuly ϕ → ψ jest otrzymany przez oderwanie ψ od aksjomatu ψ → (ϕ → ψ). Jeśli ψ = ϕ, to wystarczy udowodnić, że `H ϕ → ϕ, co zostawiamy jako ćwiczenie. Pozostaje glówny krok indukcyjny, gdy dowód formuly ψ ze zbioru Γ, ϕ otrzymano przez odrywanie. Znaczy to, że Γ, ϕ ` ϑ → ψ i Γ, ϕ ` ϑ dla pewnej formuly ϑ, i że odpowiednie dowody sa, krótsze. Z zalożenia indukcyjnego otrzymujemy, że formuly ϕ → (ϑ → ψ) i ϕ → ϑ maja, dowody ze zbioru Γ. Aby otrzymać dowód dla ϕ → ψ, należy te dwie formuly kolejno oderwać od drugiego aksjomatu w postaci (ϕ → (ϑ → ψ)) → ((ϕ → ϑ) → (ϕ → ψ)). Wniosek 14.12 Asercja Γ ` ϕ jest wyprowadzalna w systemie naturalnej dedukcji wtedy i tylko wtedy, gdy Γ `H ϕ. Dowód: W obie strony mamy prosta, indukcje. , Twierdzenie 14.11 jest nam potrzebne w dowodzie cześci (⇒) w przypadku wprowadzania implikacji. , Dla wnioskowania w stylu Hilberta też można mówić o odpowiedniości Curry’ego-Howarda, ale nie chodzi już teraz o rachunek lambda. Dowody w stylu Hilberta otrzymujemy wylacznie , przez stosowanie reguly modus ponens, która jak wiemy odpowiada aplikacji. Aksjomaty logiczne systemu hilbertowskiego można uważać za stale odpowiednich typów. Dokladniej, dla dowolnych typów α, β, γ możemy postulować stale Kαβ i Sαβγ , którym przypisujemy w dowolnym otoczeniu typy: • ` Kαβ : α → β → α; • ` Sαβγ : (α → β → γ) → (α → β) → α → γ. Inna możliwość, to zalożyć, że w systemie sa, tylko dwie stale K i S, którym można (w dowolnym otoczeniu) przypisać każdy z typów odpowiedniej postaci. W ten sposób otrzymamy rachunek kombinatorów z typami prostymi, a wniosek 14.12 bedziemy teraz mogli odczytać tak: , (∗) Typy niepuste w rachunku lambda i rachunku kombinatorów z typami prostymi sa, takie same. Uderzajace jest podobieństwo pomiedzy dowodem twierdzenia 14.11 i definicja, kombinato, , ∗ rycznej abstrakcji λ (ćwiczenie 8). Ciekawe jest to, że ta analogia siega znacznie dalej niż , tylko zgodność typów. Można powiedzieć, że twierdzenie o dedukcji ma sens wykraczajacy , poza jezyk formu l logicznych. , Typologia ogólna: spójniki logiczne Odpowiedniość pomiedzy formulami i typami bylaby niepelna, gdyby nie rozciaga , , la sie, na spójniki logiczne inne niż implikacja. W istocie nietrudno jest zinterpretować w tym duchu strona 53 12 sierpnia 2008, godzina 14: 39 zarówno koniunkcje, jak i alternatywe. , Zacznijmy od przypomnienia regul naturalnej dedukcji dla tych spójników. Γ`ϕ∧ψ Γ`ϕ∧ψ (E∧) Γ`ϕ Γ`ψ Γ`ϕ Γ`ψ (W ∧) Γ`ϕ∧ψ Γ`ϕ Γ`ψ (W ∨) Γ`ϕ∨ψ Γ`ϕ∨ψ Γ`ϕ∨ψ Γ, ϕ ` ϑ Γ`ϑ Γ, ψ ` ϑ (E∨) Reguly te możemy objaśniać w myśl tzw. interpretacji BHK (od nazwisk: Brouwer, Heyting, Kolmogorow). • Dowód koniunkcji sklada sie, z dowodów jej skladowych, jest wiec a) , (uporzadkowan , , para, dowodów; • Dowód alternatywy to dowód jednego z jej czlonów (ze wskazaniem którego). A zatem koniunkcja odpowiada iloczynowi kartezjańskiemu (rekordowi) a alternatywa sumie prostej (wariantowi). Wprowadzanie koniunkcji to tworzenie pary, a eliminacja koniunkcji to rzutowanie. Γ`M :ϕ Γ`N :ψ (W ∧) Γ ` hM, N i : ϕ ∧ ψ Γ`M :ϕ∧ψ Γ`M :ϕ∧ψ (E∧) Γ ` π1 (M ) : ϕ Γ ` π2 (M ) : ψ Wprowadzanie alternatywy odpowiada tworzeniu obiektu wariantowego. Eliminacja alternatywy to instrukcja wyboru. Γ`M :ϕ Γ`M :ψ (W ∨) Γ ` inl(M ) : ϕ ∨ ψ Γ ` inr(M ) : ϕ ∨ ψ Γ ` M : ϕ ∨ ψ Γ, x : ϕ ` P : ϑ Γ, y : ψ ` Q : ϑ (E∨) Γ ` case M of [x]P, [y]Q : ϑ Dla tak rozszerzonego jezyka możemy teraz postulować nastepuj ace redukcje. , , Beta redukcje: π1 (hM, N i) → M , π2 (hM, N i) → N ; case inl(P ) of [x]M, [y]N → M [x := P ]; case inr(Q) of [x]M, [y]N → N [y := Q]. Eta redukcje: hπ1 (M ), π2 (M )i → M ; (case M of [x]inl x, [y]inr y) → M . Mówimy tu o beta i eta redukcjach przez analogie, z redukcjami dla implikacji. Beta redeks odpowiada wprowadzeniu spójnika, po którym natychmiast nastepuje jego eliminacja. Nato, miast postulat eta-redukcji odpowiada zalożeniu, że każde wyrażenie danego typu opisuje pewien kanoniczny obiekt tego typu (funkcje, , pare, , wariant — ogólnie rezultat operacji wprowadzenia). 12 sierpnia 2008, godzina 14: 39 strona 54 Pozostaje sprawa negacji, która, jednak możemy zinterpretować jako specyficzna, implikacje: , ¬α = α → ⊥ Symbol ⊥ oznacza falsz, który oczywiście nie może mieć dowodu. Nie ma wiec , kanonicznych obiektów typu ⊥ — jest to typ pusty. Mamy jednak regule, eliminacji falszu: Γ`M :⊥ (E⊥) Γ ` εϕ (M ) : ϕ Symbol εϕ oznacza cud typu ϕ. Skoro mamy rzecz, której nie ma, to znaczy, że możemy z niej zrobić co zechcemy. Ćwiczenia 1. Udowodnić twierdzenie 14.10. 2. Udowodnić że nie istnieje kombinator typu π = ((p → q) → p) → p. 3. Pokazać, że K jest jedynym termem zamknietym w postaci normalnej, który ma typ s → t → s , (gdzie s i t sa, zmiennymi typowymi). Pokazać analogiczna, wlasność dla S. 4. Wyprowadzić `H α → α. Wskazówka: Zbudować ze stalych K i S term takiego typu. 5. Sformulować reguly przypisania typów dla rachunku kombinatorów z typami prostymi i udowodnić stwierdzenie (*). 6. Udowodnić silna, normalizacje, dla rachunku kombinatorów z typami prostymi. 7. Znaleźć typy dla kombinatorów W, B, B0 i C. 8. Udowodnić, że w rachunku kombinatorów z typami prostymi warunek Γ, x : τ ` M : σ implikuje Γ ` λ∗ x.M : τ → σ. 15 Problemy decyzyjne Zgodnie z izomorfizmem Curry’ego-Howarda, twierdzenia intuicjonistycznej logiki implikacyjnej to dokladnie typy zamknietych termów rachunku lambda (lub logiki kombinatorycznej). , Ponieważ każdy term typowalny ma postać normalna,, wiec , dla ustalenia, czy istnieje term danego typu wystarczy szukać takiego termu w postaci normalnej. Prowadzi to do nastepu, jacego algorytmu Ben-Yellesa, który rozwiazuje nieco ogólniej postawione zadanie: , , • Dane sa, otoczenie Γ i typ τ ; • Szukamy takiego termu M , że Γ ` M : τ ; Zadanie to można rozbić na dwa przypadki: (1) Jeśli τ = τ1 → τ2 , to można zakladać, że M musi być abstrakcja, postaci λx.M 0 . (Jeśli term M nie jest abstrakcja,, to zamiast M można wziać , term λx.M x, gdzie x jest nowe.) 0 aby Γ, x : τ ` M 0 : τ . Należy wiec znaleźć taki term M 1 2 , 12 sierpnia 2008, godzina 14: 39 strona 55 (2) Jeśli τ jest zmienna, typowa, s, to term M musi być aplikacja, postaci xM1 . . . Mk , gdzie Γ(x) = σ1 → · · · → σk → s. Należy wiec , znaleźć termy M1 , . . . , Mk spelniajace , warunki Γ ` M1 : σ 1 , . . . , Γ ` Mk : σ k . Ponieważ w przypadku (2) możemy mieć do wyboru wiecej niż jedna, zmienna, o typie kończa, , cym sie, na s, wiec nasz algorytm jest w istocie niedeterministycznym algorytmem rekuren, 10 cyjnym, lub jak kto woli — algorytmem alternujacym. , Oczywiście, jeśli inhabitant” typu τ istnieje, to predzej czy później znajdziemy go ta, metoda., , ” Ale może być tak, że nasz algorytm sie, zapetli — weźmy na przyklad typ (s → s) → s, albo , ((s → t) → t) → s → t. Jeśli wiec zadania dla danych Γ i τ prowadzi ponownie do , rozwiazanie , tego samego zadania, przerywamy obliczenie z wynikiem negatywnym. Aby uniknać , sytuacji, w której pojawia sie, nieskończenie wiele różnych zadań, musimy też nieco poprawić dzialanie algorytmu w przypadku (1). (1a) Jeśli τ = τ1 → τ2 , oraz w otoczeniu Γ nie ma zmiennej typu τ1 , to szukamy takiego M 0 aby Γ, x : τ1 ` M 0 : τ2 . (1b) Jeśli τ = τ1 → τ2 , oraz w otoczeniu Γ jest zmienna typu τ1 , to szukamy takiego M 0 aby Γ ` M 0 : τ2 . Poprawność przypadku (1b) wynika z nastepuj acej prostej obserwacji: , , Jeśli Γ(y) = τ1 oraz Γ, x : τ1 ` M 0 : τ2 , to Γ ` M 0 [x := y] : τ2 . Inaczej mówiac, wystarczy po jednej zmiennej każdego typu. Liczba typów, które moga, , sie, pojawić w obliczeniu jest proporcjonalna do rozmiaru zadania, a otoczenie stale rośnie. Zatem glebokość rekursji jest wielomianowa (kwadratowa), a stad , , wynika, że caly algorytm jest w klasie PSPACE. I nie da sie, go istotnie ulepszyć. Twierdzenie 15.1 (Statman) Implikacyjna logika intuicjonistyczna jest PSPACE-zupelna. A zatem problem niepustości dla typów prostych jest też PSPACE-zupelny. Dowód: Redukujemy problem kwantyfikowanych formul Boole’owskich (QBF), czyli klasyczna, logike, zdaniowa, drugiego rzedu, do intuicjonistycznego implikacyjnego rachunku zdań.11 , Niech Φ bedzie formula, w jezyku QBF. Bez straty ogólności możemy zalożyć, że jest to zdanie , , i że negacja wystepuje w Φ tylko w kontekstach postaci ¬p, gdzie p jest zmienna, zdaniowa., , Dla porzadku zalóżmy jeszcze, że wszystkie zmienne zwiazane w Φ sa, różne. , , Dla dowolnej zmiennej zdaniowej p, która wystepuje w formule Φ, niech sp i s¬p bed , , a, nowymi zmiennymi typowymi. Podobnie, dla każdej podformuly ϕ formuly Φ wybierzmy nowe zmienne typowe sϕ i s¬ϕ . Przez ΓΦ oznaczmy zbiór zlożony z nastepuj acych formul: , , • (sp → sψ ) → (s¬p → sψ ) → sϕ , dla każdej podformuly ϕ postaci ∀pψ; 10 11 Krok egzystencjalny to wybór zmiennej x, krok uniwersalny to wybór jednego z termów Mi . Jak widać, logika minimalna wcale nie jest taka minimalna. strona 56 12 sierpnia 2008, godzina 14: 39 • (sp → sψ ) → sϕ i (s¬p → sψ ) → sϕ , dla każdej podformuly ϕ postaci ∃pψ; • sψ → sϑ → sϕ , dla każdej podformuly ϕ postaci ψ ∧ ϑ; • sψ → sϕ i sϑ → sϕ , dla każdej podformuly ϕ postaci ψ ∨ ϑ. Jeśli teraz v jest wartościowaniem zerojedynkowym, to Γv oznacza ΓΦ rozszerzone o zmienne • sp , gdy v(p) = 1; • s¬p , gdy v(p) = 0, dla wszystkich p. Teraz przez latwa, indukcje, ze wzgledu na dlugość podformuly ϕ, dowodzimy, , że dla dowolnego v zachodzi równoważność Γv ` sϕ wtedy i tylko wtedy, gdy v(ϕ) = 1. W szczególności Φ jest prawdziwa wtedy i tylko wtedy, gdy ΓΦ ` sΦ . Pozostaje zauważyć, że warunek ΓΦ ` sΦ to to samo co γ1 → · · · → γn → sΦ dla odpowiednich γi , oraz, że cala, konstrukcje, można przeprowadzić w pamieci , logarytmicznej. Rekonstrukcja typu Oczywiście nie każdy term jest typowalny w systemie λ→ , nawet jeśli jest w postaci normalnej. Przykladem jest choćby λx.xx. Problem typowalności jest równoważny (ze wzgledu na , redukcje w LOGSPACE) problemowi unifikacji dla jezyka pierwszego rz edu z jedn a operacj a, , , , binarna, →, i dlatego mamy nastepujacy fakt: , Twierdzenie 15.2 Problem typowalności dla λ→ jest w klasie P. Problem sprawdzenia typu dla λ→ też jest w klasie P. Inny dowód rozstrzygalności obu problemów polega na sprowadzeniu ich do zadania znajdowania cyklu w skończonym grafie. Równość Rozpatrzmy term 2 · · · 2xy, w którym wystepuje n dwójek. Nietrudno sie, przekonać, że , postacia, normalna, tego termu jest x(x(· · · (xy) · · · )), gdzie liczba, wystapień zmiennej x jest , 2 ·· 2· ) n 2 Najprostszy algorytm sprawdzajacy, czy dwa termy tego samego typu sa, beta-równe, polega , na obliczeniu i porównaniu ich postaci normalnych. Jak widać z powyższego przykladu rozmiar postaci normalnej może być bardzo duży w stosunku do rozmiaru danego termu. Nawet jeśli uwzglednimy rozmiary użytych typów sytuacja zmieni sie, niewiele. Zauważmy , bowiem, że typy, których potrzebujemy aby wywnioskować strona 57 12 sierpnia 2008, godzina 14: 39 x : t → t, y : t ` 2 · · · 2xy : t sa, zaledwie” wykladniczego rozmiaru (każda kolejna dwójka ma dwa razy dluższy typ). A za” tem nasz naiwny algorytm ma nieelementarna, zlożoność. Co gorsza, nie można go istotnie poprawić. Twierdzenie 15.3 (Statman) Problem równości termów w rachunku lambda z typami prostymi nie )jest problemem elementarnym (nie istnieje algorytm rozwiazuj acy ten problem w cza, , 2 ·· 2· sie 2 k , dla żadnego ustalonego k). Co innego jednak porównać dwa termy, a co innego znaleźć term, lub termy spelniajace , zadane równanie. Rozwiazywanie równań z niewiadomymi dowolnych typów skończonych , nazywamy unifikacja, wyższego rzedu. Aby ściśle sformulować problem unifikacji przyjmijmy, , że dane jest otoczenie Γ i para termów (M, N ), które w tym otoczeniu maja, ten sam typ. Wśród zmiennych deklarowanych w Γ wyróżnimy niewiadome x1 , . . . , xk a wszystkie pozostale zmienne nazwijmy parametrami. Rozwiazaniem równania M = N o niewiadomych x1 , . . . , xk , nazywamy dowolne termy P1 , . . . , Pk spelniajace warunki , • Γ ` Pi : Γ(xi ) dla i = 1, . . . , k; • M [x1 := P1 , . . . , xk := Pk ] =βη N [x1 := P1 , . . . , xk := Pk ]. Problem unifikacji wyższego rzedu to nastepuj acy problem decyzyjny: czy istnieje rozwiazanie , , , , danego równania? Zwykle zaklada sie, że wszystkie typy wyst epuj ace w zadaniu s a zbudowane , , , , z jednego atomu. Nie zmienia to istotnie stopnie trudności zadania. Jeśli typy wszystkich niewiadomych sa, postaci t → t → · · · t → t lub t, to mówimy o unifikacji drugiego rzedu. , Zwykla, unifikacje, nazywamy też unifikacja, pierwszego rzedu (niewiadome maja, typ atomowy). , Przyklad 15.4 Oto dwa przyklady unifikacji drugiego rzedu z parametrami f : t → t → t, a : t, b : t , i niewiadomymi G : t → t → t, F : t → t. • Ga(f ba) = f a(Gab); • f a(F a) = F (f aa). Pierwszy przyklad nie ma rozwiazania, drugi ma ich nieskończenie wiele. Rozwiazaniami sa, , , wszystkie termy postaci λx.f a(f a(f a(· · · (f ax) · · · ))). Twierdzenie 15.5 (Goldfarb) Unifikacja drugiego rzedu jest nierozstrzygalna. , Dowód twierdzenia Goldfarba polega na redukcji Dziesiatego Problemu Hilberta do unifikacji , drugiego rzedu. Dla dowolnego wielomianu konstruuje sie, takie równanie unifikacyjne, które , ma rozwiazanie wtedy i tylko wtedy, gdy dany wielomian ma zero calkowite. , strona 58 12 sierpnia 2008, godzina 14: 39 Szczególnym przypadkiem unifikacji jest dopasowanie (matching). Problem dopasowania wyższego rzedu polega na rozwiazaniu równania, w którym niewiadome wystepuja tylko po , , lewej stronie. Wiadomo, że dopasowanie rzedu czwartego jest rozstrzygalne. Problem jest , 12 otwarty dla wyższych rzedów. Jeśli w zadaniu dopasowania zmienić =βη na =β , to problem , okazuje sie, być nierozstrzygalny. Udowodnil to kilka lat temu Ralph Loader. Funkcje obliczalne Jak pamietamy, w beztypowym rachunku lambda można reprezentować wszystkie funkcje , rekurencyjne, a nawet cześciowo rekurencyjne (twierdzenie 7.9). W rachunku lambda z typami , prostymi nie należy sie, spodziewać podobnego wyniku, bo równość termów jest rozstrzygalna. W istocie klasa funkcji definiowalnych w rachunku λ→ jest dość uboga. Ale musimy zaczać , od odpowiedniej definicji. Niech σ bedzie dowolnym typem. Przez ωσ oznaczamy typ (σ → σ) → σ → σ. Jeśli σ , jest nieistotne (zwykle jest to ustalony atom), to piszemy po prostu ω. Oczywiście wszystkie liczebniki Churcha maja, typ ω, wiec aca definicja: , naturalna jest nastepuj , , Funkcja f : Nk → N jest β-definiowalna (lub po prostu definiowalna) w rachunku lambda z typami prostymi, w typie ωσ , jeżeli istnieje term zamkniety F , spelniajacy nastepujace , , , warunki: • ` F : ωσ → · · · → ωσ → ωσ ; • Dla dowolnych n1 , . . . , nk ∈ N, jeżeli f (n1 , . . . , nk ) = m to F n1 . . . nk =β m. Zamieniajac , w powyższej definicji znak =β na =βη otrzymujemy klase, funkcji βη-definiowalnych. Nastepnik, dodawanie i mnożenie sa, przykladami funkcji definiowalnych w λ→ (zob. przyklad 7.3). , Możemy też zdefiniować funkcje, warunkowa, q, jeśli p = 0; ifzero(p, q, r) = r, w przeciwnym przypadku. za pomoca, termu ifzero = λpqrλf x.p(λy.qf x)(rf x). Jeśli zostaniemy przy równości β to wiecej zdefiniować nam sie, nie uda. , Twierdzenie 15.6 (Schwichtenberg) Dla dowolnego σ klasa funkcji β-definiowalnych w λ→ w typie ωσ to dokladnie klasa wielomianów warunkowych, tj. najmniejsza klasa funkcji nad N, zawierajaca , • rzutowania; • dodawanie; • mnożenie; 12 Ostatnio C. Stirling oglosil, że problem jest rozstrzygalny. 12 sierpnia 2008, godzina 14: 39 strona 59 • funkcje stale 0 i 1; • funkcje, warunkowa, ifzero, i zamknieta ze wzgledu na skladanie. , , Z twierdzenia Schwichtenberga wynika, w szczególności, że wybór typu σ nie ma znaczenia. Dotad , uważano, że tak samo jest w przypadku βη-definiowalności, ale Mateusz Zakrzewski niedawno pokazal, że np. funkcja q, jeśli p jest parzyste; ifeven(p, q, r) = r, w przeciwnym przypadku, która nie jest wielomianem warunkowym, jest βη-definiowalna (gdy liczebniki interpretujemy w odpowiednio dobranym typie ωσ ). Nawet jednak z użyciem βη-konwersji, tak proste funkcje jak poprzednik, odejmowanie i pote, gowanie nie sa, definiowalne. Poprzednik i poteg , e, uda nam sie, zdefiniować jeśli jeszcze bardziej oslabimy nasze wymagania. Powiemy, że funkcja f : Nk → N jest niejednostajnie definiowalna w λ→ , jeśli istnieje term F spelniajacy warunki: , • ` F : ω σ1 → · · · → ω σk → ω σ ; • Dla dowolnych n1 , . . . , nk ∈ N, jeżeli f (n1 , . . . , nk ) = m to F n1 . . . nk =β m. Okazuje sie, sa, definiowalne niejednostajnie, ale już odejmowanie , że poprzednik i potegowanie , nie jest. Klase, funkcji arytmetycznych definiowalnych w skończonych typach może istotnie powiekszyć dopiero dodanie do systemu prawdziwego” operatora iteracji. W ten sposób ” otrzymujemy tzw. System T Gödla. Ćwiczenia 1. Udowodnić twierdzenie 15.2. 2. Niech τ bedzie typem, w którym wystepuj a, tylko zmienne typowe s1 , . . . , sn i niech Γ bedzie , , , takim otoczeniem, że Γ(xi ) = si dla i = 1, . . . n. Skonstruować taki term Mτ , że Γ ` M : τ . instancja, problemu unifikacji dla jezyka pierwszego 3. Niech E = {τ1 = σ1 , . . . τk = σk } bedzie , , rzedu z jedn a operacj a binarn a → o niewiadomych s , . . . , s . Skonstruować (w pamieci loga1 n , , , , rytmicznej) taki term M , który jest typowalny wtedy i tylko wtedy, gdy E ma rozwiazanie. , Wskazówka: Skorzystać z poprzedniego zadania. 4. Zbadać rozwiazalność unifikacji z przykladu 15.4. , 5. (Latwe) Niech cn = λx.f a(f a(f a(· · · (f ax) · · · ))), gdzie f wystepuje n razy. Skonstruować takie równanie drugiego rzedu, którego rozwiazaniami sa, dokladnie trójki termów postaci cn , cm , cn+m . , , 6. (Trudne) Skonstruować takie równanie drugiego rzedu, którego rozwiazaniami sa, dokladnie trójki , , termów postaci cn , cm , cn·m . 7. (Latwe, jeśli umiemy rozwiazać poprzednie dwa zadania.) Udowodnić twierdzenie 15.5. , 8. Udowodnić, że poprzednik i potegowanie sa, niejednostajnie definiowalne w skończonych typach. , Dlaczego sa, klopoty z odejmowaniem? 12 sierpnia 2008, godzina 14: 39 16 strona 60 Semantyka typów prostych W teorii typów prostych czesto przyjmuje sie, dwa zalożenia, które istotnie upraszczaja, pewne , konstrukcje. Po pierwsze, zamiast równości =β rozważa sie, ekstensjonalna, równość =βη , po drugie zaklada sie, , że wszystkie typy sa, zbudowane z jednego tylko typu bazowego. My też teraz przyjmiemy te zalożenia. A wiec , typy definiujemy tak: • Stala 0 jest typem; • Jeśli σ i τ sa, typami, to σ → τ jest typem. Niech T oznacza zbiór wszystkich takich typów. Jeśli teraz {Dσ }σ∈T jest rodzina, niepustych zbiorów, to możemy rozważać wartościowania, które zmiennym typu σ przypisuja, elementy Dσ . (Wygodnie jest zakladać, że nasze termy sa, w ortodoksyjnym stylu Churcha.) Rozważamy wielosortowe struktury postaci A = h{Dσ }σ∈T , {·στ }σ,τ ∈T , [[ ]]A i, gdzie dla dowolnych σ, τ ∈ T : • Dσ jest niepustym zbiorem; • d ·στ e ∈ Dτ dla d ∈ Dσ→τ , e ∈ Dσ ; • [[M ]]A v ∈ Dσ , dla dowolnego M typu σ. A Oczywiście zamiast ·στ bedziemy pisać zwykla, kropke, , , a zamiast [[ ]] napiszemy [[ ]]. Taka struktura jest (ekstensjonalnym) modelem, gdy spelnia nastepuj ace warunki: , , • Jeśli d, d0 ∈ Dσ→τ oraz d · e = d0 · e dla dowolnego e ∈ Dσ , to d = d0 . • Jeśli x jest zmienna,, to [[x]]v = v(x); • [[P Q]]v = [[P ]]v · [[Q]]v ; • [[λxσ P ]]v · a = [[P ]]v[x7→a] , dla dowolnego a ∈ Dσ . Zalożenie ekstensjonalności powoduje, że powyższe warunki w istocie jednoznacznie definiuja, funkcje, [[ ]] dla danego h{Dσ }σ∈T , {·στ }σ,τ ∈T i, o ile taka funkcja istnieje (tj. istnieja, wszystkie elementy potrzebne do zinterpretowania abstrakcji). Z ekstensjonalności wynika też przez latwa, indukcje, pominiety w definicji13 warunek: , • Jeśli v|FV(P ) = u|FV(P ) , to [[P ]]v = [[P ]]u . Nastepuj acy , , lemat jest odpowiednikiem lematu 10.2. Dowodzimy go przez indukcje, ze wzgledu , na budowe, termów Lemat 16.1 W dowolnym modelu zachodzi tożsamość [[M [x := N ]]]v = [[M ]]v[x7→[[N ]]v ] . Piszemy A, v |= M = N , gdy [[M ]]v = [[N ]]v . Dalej, A |= M = N oznacza, że A, v |= M = N dla dowolnego v, natomiast napis |= M = N mówi, że jest tak w każdym modelu. Zaczynamy od latwego twierdzenia o poprawności. 13 Por. analogiczna, definicje, dla modeli bez typów. strona 61 12 sierpnia 2008, godzina 14: 39 Fakt 16.2 Jeśli M =βη N to |= M = N . Dowód: Indukcja ze wzgledu na definicje, =βη , z użyciem lematu 16.1. Istotne równości: , • [[(λx.P )Q]]v = [[λx.P ]]v · [[Q]]v = [[P ]]v[x7→[[Q]]v ] = [[P [x := Q]]]v . • [[λx.P x]]v · a = [[P x]]v[x7→a] = [[P ]]v[x7→a] · a = [[P ]]v · a, gdy x 6∈ FV(P ). Nas, tak naprawde, , interesuja, tylko modele, w których Dσ→τ to po prostu zbiór wszystkich funkcji z Dσ do Dτ . Jeśli D0 = A, to taki model oznaczamy przez M(A). Dla dowodu twierdzenia o pelności potrzebujemy jednak jeszcze jednego przykladu. Przez Mη oznaczymy model, w którym dziedzina Dσ sklada sie, ze wszystkich termów typu σ, branych z dokladnościa, do βη-konwersji (tj. w istocie z klas abstrakcji). W modelu Mη znaczenie termów jest określone przez podstawienie, tj. dla FV(M ) = {x1 , . . . , xn } mamy [[M ]]v = M [x1 , . . . , xn := v(x1 ), . . . , v(xn )]. Nietrudno teraz pokazać twierdzenie odwrotne do Faktu 16.2, czyli najlatwiejsza, wersje, twierdzenia o pelności. Fakt 16.3 Jeśli Mη |= M = N to M =βη N . Zatem |= M = N implikuje M =βη N . W dalszym ciagu pokażemy twierdzenie o pelności dla modeli postaci M(A). Wymaga to , jednak pewnych przygotowań. Definicja 16.4 Cześciowy epimorfizm z modelu A = h{Dσ }σ∈T , {·στ }σ,τ ∈T , [[ ]] i do modelu , na B = h{Eσ }σ∈T , {·στ }σ,τ ∈T , [[ ]] i, to rodzina cześciowych surjekcji φσ : Dσ −◦ Eσ , zachowujaca , , aplikacje, tj. spe lniaj aca warunek φ (d · e) = φ (d) · φ (e). Ściślej, ż adamy aby wartość τ σ→τ σ , , , φσ→τ (d) byla określona i równa h wtedy i tylko wtedy, gdy dla każdego e ∈ Dom(φσ ) określone jest φτ (d · e) i zachodzi równość14 φτ (d · e) = h · φσ (e). Poniżej zamiast φσ (d) czesto bedziemy , , pisać d. Na przyklad zamiast φτ (d · e) = φσ→τ (d) · φσ (e) napiszemy d · e = d · e. Lemat 16.5 Jeśli {φσ }σ∈T jest cześciowym epimorfizmem z A do B oraz v(x) = v(x) dla , A dowolnego x, to dla każdego M zachodzi [[M ]]vB = [[M ]]A v , w szczególności [[M ]]v jest określone. Dowód: Indukcja ze wzgledu na M . Dla zmiennych teza wynika natychmiast z definicji v. , A A A A A Dla aplikacji mamy [[P Q]]vB = [[P ]]vB · [[Q]]B v = [[P ]]v · [[Q]]v = [[P ]]v · [[Q]]v = [[P Q]]v . W przypadku abstrakcji pamietajmy, że każdy element modelu B jest postaci a. Mamy teraz , B B [[λxP ]]B v · a = [[P ]]v[x7→a] = [[P ]] v[x7→a] A A = [[P ]]A v[x7→a] = [[λxP ]]v · a = [[λxP ]]v · a, dla dowolnego a, i stosujemy ekstensjonalność. Czytelnikowi pozostawiamy sprawdzenie, że [[M ]]A v jest zawsze określone. 14 Jedyność h wynika z ekstensjonalności. 12 sierpnia 2008, godzina 14: 39 strona 62 Wniosek 16.6 Jeśli A |= M = N i istnieje cześciowy epimorfizm z A do B to B |= M = N . , Dowód: Bo każde wartościowanie w B ma postać v. Lemat 16.7 Jeśli w modelu B = h{Eσ }σ∈T , {·στ }σ,τ ∈T , [[ ]] i dziedzina E0 jest przeliczalna, to dowolna, surjekcje, z N do E0 można rozszerzyć do cześciowego epimorfizmu z M(N) do B. , na Dowód: Oznaczmy przez Dσ dziedziny w modelu M(N). Definiujemy φσ : Dσ −◦ Eσ przez indukcje, ze wzgledu na σ, przyjmujac , , dana, surjekcje, z N na E0 jako φ0 . Zalóżmy, że φσ i φτ sa, określone. Dla dowolnego h ∈ Eσ→τ , istnieja, funkcje cześciowe d : Dσ → Dτ , o wlasności φτ (d(e)) = h · φσ (e) (inaczej d(e) = h · e) dla dowolnego e ∈ Dσ . Dla każdej takiej funkcji d należy przyjać , d = h. Twierdzenie 16.8 (H. Friedman, 1975) Warunki M =βη N i równoważne. M(N) |= M = N sa, Dowód: Na mocy lematu 16.7 mamy cześciowy epimorfizm z M(N) do modelu Mη . Jeśli , wiec , M(N) |= M = N to Mη |= M = N (lemat 16.5) a stad , M =βη N . Twierdzenie Statmana Pokażemy teraz twierdzenie o pelności dla modeli postaci M(A), gdzie A jest skończone. Przypomnijmy, że typ bazowy 0 jest rzedu 0, a typy postaci 0 → · · · → 0 → 0 sa, rzedu 1. , , O zmiennej typu τ powiemy, że jest rzedu 0 lub rzedu 1, gdy takiego rzedu jest typ τ . , , , Lemat 16.9 Zalóżmy, że term Q : 0 jest w postaci normalnej i że wszystkie jego zmienne wolne sa, rzedu co najwyżej 1. Wtedy istnieje taka stala k, że dla dowolnego N : 0 zachodzi: , Jeśli M(k) |= Q = N to Q =βη N . Dowód: Zauważmy najpierw, że term Q nie może zawierać żadnych abstrakcji (jest zbudowany jak zwykly term algebraiczny” w którym zmienne rzedu 1 odgrywaja, role, symboli , ” funkcyjnych). Ponumerujmy wszystkie podtermy termu Q, które sa, typu 0, ustawiajac , je w ciag , skończony t1 , t2 , t3 , . . . , tk−1 . Możemy teraz określić wartościowanie v w modelu M(N) w ten sposób, że [[ti ]]v = i dla każdego i = 1, . . . , k − 1, oraz [[N ]]v = 0 dla każdego innego termu N : 0 w postaci normalnej. Wtedy wartość [[Q]]v jest jedna, z liczb 1, . . . , k − 1, powiedzmy k − 1. Przyporzadkowanie , i, jeśli i = 1, . . . , k − 1; φ0 (i) = 0, w przeciwnym przypadku, strona 63 12 sierpnia 2008, godzina 14: 39 jest surjekcja, z N do k = {0, . . . , k − 1}, a zatem rozszerza sie, do cześciowego epimorfizmu , A z modelu A = M(N) do modelu B = M(k). Mamy teraz [[Q]]v = k − 1 = k−1, i jeśli N 6=βη Q, B A to z lematu 16.5 wynika [[N ]]vB = [[N ]]A v 6= k − 1 = [[Q]]v = [[Q]]v , czyli M(k), v 6|= Q = N . Uogólnienie lematu 16.9 na typy wyższych rzedów wymaga dwóch lematów o charakterze , syntaktycznym. Mówimy, że term M : σ1 → · · · → σn → 0 jest w postaci Statmana, gdy M = λxσ1 1 . . . xσnn .x(M1 x1 . . . xn ) . . . (Mm x1 . . . xn ), gdzie M1 , . . . , Mm sa, w postaci Statmana, oraz x1 , . . . , xn 6∈ FV(Mi ). Latwo widzieć, że każdy term jest beta-eta-równy termowi w postaci Statmana. Lemat 16.10 Dla wszystkich typów σ istnieja, termy U σ typu σ, których zmienne wolne sa, rzedu co najwyżej jeden, i które maja, taka, wlasność: Jeśli dwa termy zamkniete M, N , , typu σ1 → · · · → σn → 0 w postaci Statmana sa, różnej dlugości, to M U σ1 . . . U σn 6=βη N U σ1 . . . U σn . σ Dowód: Termy U σ definiujemy przez indukcje, , wraz z termami V : σ → 0. Najpierw 0 0 0 bierzemy U = z0 (gdzie z0 jest nowa, zmienna) = λx z0 . Dla typu σ postaci , oraz V σ = σ1 → · · · → σn → 0 przyjmujemy U σ = λxσ1 1 . . . xσnn .zσ (V σ1 x1 ) . . . (V σn xn ); V σ = λxσ . xU σ1 . . . U σn , gdzie zmienna zσ jest znowu świeża (inna dla różnych σ). Przypuśćmy teraz, że M, N : σ1 → · · · → σn → 0 oraz M U σ1 . . . U σn =βη N U σ1 . . . U σn . Jeśli M = λxσ1 1 . . . xσnn .xi (M1 x1 . . . xn ) . . . (Mm x1 . . . xn ), to lewa strona równości jest βη-równa termowi U σi (M1 U σ1 . . . U σn ) . . . (Mm U σ1 . . . U σn ). Przyjmujac , σi = τ1 → · · · → τm → 0, mamy dalej M U σ1 . . . U σn =βη zσi (V τ1 (M1 U σ1 . . . U σn )) . . . (V τm (Mm U σ1 . . . U σn )), co z kolei ~ 1 ) . . . (Mm U σ1 . . . U σn U ~ m ), w którym wektory jest βη-równe wyrażeniu zσi (M1 U σ1 . . . U σn U τ τ ~ 1, . . . , U ~ m sa takie jak w termach V 1 , . . . , V m . U , Podobnie, jeśli N = λxσ1 1 . . . xσnn .xj (N1 x1 . . . xn ) . . . (Nr x1 . . . xn ), to N U σ1 . . . U σn zredukuje ~ 1 ) . . . (Nr U σ1 . . . U σn U ~ r ), gdzie σj = ρ1 → · · · → ρr → 0. sie, do termu zσj (N1 U σ1 . . . U σn U Skoro te termy sa, βη-równe, to przede wszystkim musi sie, zgadzać zmienna czolowa zσj = zσi . σ1 σn ~ σ1 σn ~ A wiec , σj = σi skad , m = r. Dalej Ml U . . . U Ul =βη Nl U . . . U Ul , dla l ≤ m i możemy ~ zastosować indukcje, , bo termy Mi sa, krótsze niż M . (Uwaga: teraz już wiemy, że wektor Ul jest po obu stronach taki sam.) Lemat 16.11 Jeśli M, N sa, zamknietymi termami typu σ = σ1 → · · · → σn → 0, oraz , σ1 σ n M 6=βη N , to istnieja, termy V1 , . . . Vn , których zmienne wolne sa, rzedu co najwyżej jeden, , takie że M V1 . . . Vn 6=βη N V1 . . . Vn . Dowód: Indukcja ze wzgledu na M . Można zalożyć, że M i N sa, w postaci Statmana: , M = λxσ1 1 . . . xσnn .xi (M1 x1 . . . xn ) . . . (Mm x1 . . . xn ); strona 64 12 sierpnia 2008, godzina 14: 39 N = λxσ1 1 . . . xσnn .xj (N1 x1 . . . xn ) . . . (Nr x1 . . . xn ). Jeśli i 6= j, to sprawa jest prosta: wystarczy wybrać Vi = λy1 . . . ym . z1 i Vj = λy1 . . . yr . z2 , gdzie z1 i z2 to dwie różne zmienne. Niech wiec , i = j (oraz m = r). Skoro M 6=βη N , to M` 6=βη N` dla pewnego ` ≤ m. Niech σi = τ1 → · · · → τm → 0, oraz τ` = ρ1 → · · · → ρd → 0. ρ1 ρd Z zalożenia indukcyjnego sa, termy W1σ1 , . . . , Wnσn , Wn+1 , . . . , Wn+d , o zmiennych wolnych rzedu co najwyżej 1, takie że M` W1 . . . Wn+d 6=βη N` W1 . . . Wn+d . , Dla k 6= i przyjmujemy Vk = Wk . Aby określić Vi , przyjmijmy, że Wi = λy1 . . . ym .W . Wtedy Vi = λy1 . . . ym .zW (y` Wn+1 . . . Wn+d ), gdzie z jest nowa, zmienna, typu 0 → 0 → 0. Wówczas M V1 . . . Vn =βη Vi (M1 V1 . . . Vn ) . . . (Mm V1 . . . Vn ) =βη zW 0 (M` V1 . . . Vn Wn+1 . . . Wn+d ), gdzie W 0 = W [y1 , . . . , ym := M1 V1 . . . Vn , . . . , Mm V1 . . . Vn ]. Podobnie zredukuje sie, term N V1 . . . Vn , jeśli wiec , M V1 . . . Vn =βη N V1 . . . Vn , to w szczególności M` V1 . . . Vn Wn+1 . . . Wn+d =βη N` V1 . . . Vn Wn+1 . . . Wn+d . Wektor V1 . . . Vn różni sie, od wektora W1 . . . Wn tylko na i-tej wspólrzednej, a wolna zmienna z , wystepuje tylko w termie Vi . Podstawiajac , , w termie Vi na miejsce zmiennej z kombinator K otrzymamy wiec fa lszyw a równość M W ` 1 . . . Wn+d =βη N` W1 . . . Wn+d . , , Twierdzenie 16.12 (R. Statman, 1982) Dla dowolnego termu M istnieje taka liczba k (efektywnie obliczalna z M ), że jeśli N jest dowolnym termem, to: M =βη N wtedy i tylko wtedy gdy M(k) |= M = N. Dowód: Zalóżmy, że M jest typu σ. Z lematów 16.10 i 16.11 wynika, że istnieja, takie termy L1 , . . . , Lm : σ → 0, że dla dowolnego N mamy Jeśli M 6=βη N to Li M 6=βη Li N , dla pewnego i = 1, . . . , m. co najwyżej 1. Niech Q bedzie Ponadto typy zmiennych wolnych w L1 , . . . , Lm sa, rzedu , , postacia, normalna, termu z(L1 M ) . . . (Lm M ), gdzie z jest nowa, zmienna., Do termu Q można zastosować lemat 16.9, weźmy wiec , odpowiednie k. Jeśli M(k) |= M = N , to wtedy także M(k) |= Q = z(L1 N ) . . . (Lm N ), skad , Q =βη z(L1 N ) . . . (Lm N ) i dalej Li M =βη Li N dla wszystkich i. W konsekwencji M =βη N . Wniosek 16.13 (S. Solowiow, 1981) Termy M i N sa, beta-eta-równe wtedy i tylko wtedy, gdy sa, równe we wszystkich modelach skończonych. Istotne w twierdzeniu Statmana jest to, że liczba k nie zależy od M . Przykladem zastosowania tw. Statmana jest niemożność niejednostajnego reprezentowania równości liczb naturalych w rachunku z typami prostymi. (Podobnie można pokazać, że nie można niejednostajnie reprezentować odejmowania.) Nie jest mi znany syntaktyczny dowód tego faktu. Wniosek 16.14 Nie istnieje term E : ωτ → ωσ → ωρ , taki, że dla dowolnych p, q ∈ N: Epωτ qωσ =βη 0ωρ wtedy i tylko wtedy, gdy p = q. strona 65 12 sierpnia 2008, godzina 14: 39 Dowód: Dobieramy k do N = 0ωρ z twierdzenia Statmana. Dziedzina Dτ w modelu M(k) ωτ ωτ ωτ ωσ jest skończona, wiec , istnieja, takie liczby p 6= q, że [[p ]] = [[q ]]. Wtedy [[Ep q ]] = ω ω ω ω ω ω ω ω ω τ σ τ σ τ σ ρ τ [[E]][[p ]][[q ]] = [[E]][[q ]][[q ]] = [[Eq q ]] = [[0 ]], czyli M(k) |= Ep q σ = 0ωρ . Zatem p = q wbrew zalożeniu. Przez pewien czas otwartym problemem byla tzw. hipoteza Plotkina o rozstrzygalności definiowalności w skończonych modelach. Hipoteza okazala sie, nieprawdziwa. Twierdzenie 16.15 (R. Loader, 1993) Nastepuj acy problem jest nierozstrzygalny: , , Dany jest skończony zbiór X, typ τ i element d ∈ Dτ (X). Czy istnieje taki kombinator M typu τ , że [[M ]] = d? Prace, Loadera można znaleźć pod adresem http://homepages.ihug.co.nz/∼suckfish/papers/Church.pdf Ćwiczenia 1. Pokazać, że Mη jest modelem, i że Mη |= M = N zachodzi wtedy i tylko wtedy gdy M =βη N . 2. Rodzine, relacyj {∼σ }σ∈T , odpowiednio w {Dσ }σ∈T , nazywamy relacja, logiczna, , jeżeli dla dowolnych typów σ i τ i dowolnych d, d0 ∈ Dσ→τ zachodzi równoważność (zamiast ∼σ piszemy ∼): d ∼ d0 wtedy i tylko wtedy, gdy ∀e, e0 ∈ Dσ (e ∼ e0 → d · e ∼ d0 · e0 ). Udowodnić, że jeśli v(x) ∼ w(x) dla dowolnego x ∈ FV(M ), to [[M ]]v ∼ [[M ]]w . 3. Jeśli {φσ }σ∈T jest cześciowym epimorfizmem, oraz , d ∼ d0 wtedy i tylko wtedy, gdy to {∼σ }σ∈T jest relacja, logiczna., 15 d = d0 4. Zdefiniować wartościowanie v, o którym mowa w dowodzie lematu 16.9. 5. Uzasadnić istnienie termów Li , o których mowa w dowodzie twierdzenia 16.12. 6. Zdefiniować pojecie modelu dla rachunku z wieloma atomami typowymi. Czy twierdzenie Stat, mana pozostaje prawdziwe? 17 Semantyka w stylu Curry’ego Zajmiemy sie, teraz semantyczna, interpretacja, asercji typowych w stylu Curry’ego. Musimy sie, w tym celu odwolać do semantyki beztypowej, bo mamy przecież do czynienia z termami czystego” rachunku lambda. Przypuśćmy wiec, że mamy lambda-model D = hD, ·, [[ ]]i. , ” Podzbiory tego modelu reprezentuja, wlasności jego elementów, a także wlasności termów. Mówimy wiec, , że element a ∈ D ma wlasność σ ⊆ D, gdy a ∈ σ. Podobnie, powiemy że term zamkniety M ma wlasność σ ⊆ D, gdy [[M ]] ∈ σ. W przypadku termów ze zmiennymi wolnymi , bedzie to oczywiście zależalo od wartościowania. Naturalna jest nastepujaca definicja: , , σ ⇒ τ := {a ∈ D | ∀b ∈ D(b ∈ σ → a · b ∈ τ )}. 15 Uwaga: Relacja, o której tu mowa, jest cześciow a, relacja, równoważności tj. jest symetryczna i przechodnia, , ale nie musi być zwrotna. W ogólności, relacja logiczna nie musi też być symetryczna ani przechodnia. 12 sierpnia 2008, godzina 14: 39 strona 66 Wlasność σ ⇒ τ to poprawność ze wzgledu na prewarunek σ i postwarunek τ . Oczywista jest , tu analogia z typem funkcyjnym. Nadamy jej ścisly sens, interpretujac , typy jako podzbiory modelu. Funkcje, ξ : TV → P(D) nazwiemy wartościowaniem typowym, a znaczenie [[τ ]]ξ typu τ przy wartościowaniu ξ zdefiniujemy tak: • [[s]]ξ = ξ(s), gdy s jest zmienna, typowa;, • [[σ → τ ]]ξ = [[σ]]ξ ⇒ [[τ ]]ξ . Piszemy D, v, ξ |= M : σ, gdy [[M ]]v ∈ [[σ]]ξ . Powiemy wtedy, że term M ma typ σ w modelu D przy wartościowaniu v i wartościowaniu typowym ξ. Podobnie, napis D, v, ξ |= Γ oznacza, że dla wszystkich (x : τ ) ∈ Γ zachodzi v(x) ∈ [[τ ]]ξ . Semantycznym odpowiednikiem asercji Γ ` M : σ jest wiec aca wlasność: , nastepuj , , Dla dowolnego modelu D i dowolnych v, ξ, warunek D, v, ξ |= Γ implikuje D, v, ξ |= M : σ, zapisywana Γ |= M : σ. Zachodzi teraz taki fakt: Twierdzenie 17.1 (o poprawności) Jeśli Γ ` M : σ, to Γ |= M : σ. Dowód: Indukcja ze wzgledu na wyprowadzenie Γ ` M : σ. Rozważamy kilka przypadków, , w zależności od tego jakiej reguly użyto w tym wyprowadzeniu jako ostatniej. Rozpatrzmy przypadek wyprowadzenia kończacego sie, zastosowaniem reguly (Abs). Wtedy σ jest postaci , τ → ρ, a term M jest abstrakcja, λx.N . Natomiast konkluzje, Γ ` λx.N : τ → ρ otrzymano z przeslanki Γ, x : τ ` N : ρ. Przypuśćmy, że D, v, ξ |= Γ. Mamy pokazać, że D, v, ξ |= λx.N : τ → ρ, innymi slowy, że [[λx.N ]]v ∈ [[τ → ρ]]ξ = [[τ ]]ξ ⇒ [[ρ]]ξ . Niech wiec , a ∈ [[τ ]]ξ . Wtedy D, v[x 7→ a], ξ |= Γ, x : τ , wiec [[λx.N ]] · a = [[N ]] ∈ [[ρ]] , bo z za lożenia indukcyjnego Γ, x : τ |= N : ρ. Pozostale v ξ v[x7→a] , przypadki sa, natychmiastowe. Twierdzenia odwrotnego (o pelności) nie udowodnimy z oczywistych powodów: równość =β , a wiec , też równość w modelu, nie zachowuje typów. Na przyklad |= λx. Kx(λy yy) : p → p oraz |= λx.(λy yy)Ix : p → p chociaż 0 Kx(λy yy) : p → p oraz 0 λx.(λy yy)Ix : p → p. Twierdzenie o pelności zachodzi jednak dla bardziej elastycznego”systemu przypisania typów. ” Ćwiczenia 1. Oznaczmy przez ω cala, dziedzine, D. Udowodnić, że dla dowolnych podzbiorów modelu D zachodza, zwiazki: , σ ⊆ ω, ω ⊆ ω ⇒ ω, σ ∩ τ ⊆ σ, σ ∩ τ ⊆ τ , σ ⊆ σ ∩ σ (σ ⇒ τ ) ∩ (σ ⇒ ρ) ⊆ σ ⇒ τ ∩ ρ Jeśli σ ⊆ σ 0 i τ ⊆ τ 0 , to σ ∩ τ ⊆ σ 0 ∩ τ 0 oraz σ 0 ⇒ τ ⊆ σ ⇒ τ 0 . 2. Jeśli model D jest cześciowo uporzadkowany, to naturalne jest żadanie, aby wlasności byly , , , zbiorami zamknietymi w góre, (jeśli a ∈ σ i a ≤ b, to b ∈ σ) lub byly postaci ↑a = {b | a ≤ b}. , Pokazać, że wtedy σ ⇒ τ jest zamkniete w góre, , , oraz że (↑a ⇒ ↑b) = ↑f dla pewnego f . T 3. Jeśli każde z σi i τi jest postaci ↑a to z warunku {σi ⇒ τi | i ∈ I} ⊆ σ ⇒ τ wynika T {τi | σ ⊆ σi } ⊆ τ . strona 67 12 sierpnia 2008, godzina 14: 39 18 Typy iloczynowe Zdefiniujemy teraz rachunek lambda z typami iloczynowymi,16 które w odróżnieniu od typów prostych, zbudowane sa, z pomoca, dwóch konstruktorów → i ∩. Zaczynamy od skladni typów. • Stala ω jest typem; • Typy atomowe sa, typami; • Jeśli σ i τ sa, typami, to σ → τ i σ ∩ τ sa, typami. Zbiór wszystkich typów oznaczymy przez T∩ω . Przyjmujemy konwencje, , że iloczyn ma wyższy priorytet niż strzalka. Iloczyn, jak sie, zaraz okaże, można w gruncie rzeczy uważać za laczny , i pomijać nawiasy. 17 spelniajacy takie warunki: W zbiorze T∩ω określamy relacje, ≤ jako najmniejszy quasiporzadek , , σ ≤ ω, ω ≤ ω → ω, σ ∩ τ ≤ σ, σ ∩ τ ≤ τ , σ ≤ σ ∩ σ (σ → τ ) ∩ (σ → ρ) ≤ σ → τ ∩ ρ Jeśli σ ≤ σ 0 i τ ≤ τ 0 , to σ ∩ τ ≤ σ 0 ∩ τ 0 oraz σ 0 → τ ≤ σ → τ 0 . Definicja powyżej motywowana jest wlasnościami operacji ⇒ i ∩ (ćwiczenie 1 do rozdzialu 17). Określimy teraz reguly przypisania (wyprowadzania) typów iloczynowych dla termów rachunku lambda. Reguly te tworza, system wnioskowania o typach, który nazwiemy systemem BCD od nazwisk Barendregt, Coppo i Dezani. System BCD ma nastepuj ace aksjomaty i reguly. , , (Var) Γ, x : σ ` x : σ (Abs) Γ, x : σ ` M : τ (ω) Γ ` M : ω (App) Γ`M :σ→τ Γ ` (λx.M ) : σ → τ (∩I) Γ`M :σ Γ`N :σ Γ ` (M N ) : τ Γ`M :τ (≤) Γ`M :σ∩τ Γ`M :σ (σ ≤ τ ) Γ`M :τ Regula (∩I) jest zwana regula, wprowadzania iloczynu. Regula (Abs) jest czesto nazywana , regula, wprowadzania strzalki, a regula (App) regula, eliminacji strzalki. Eliminacja iloczynu to taki szczególny przypadek reguly (≤): (∩E) Γ ` M : σ1 ∩ σ2 Γ ` M : σi 16 Dawniej używane określenie typy koniunkcyjne” wyszlo z użycia, bo jest mylace. Obecnie uważamy je za , ” niepoprawne. Odpowiednikiem logicznej koniunkcji nie jest iloczyn typów, ale produkt kartezjański. 17 Quasiporzadek to relacja zwrotna i przechodnia. , strona 68 12 sierpnia 2008, godzina 14: 39 Jeśli asercja Γ ` M : τ ma wyprowadzenie w systemie BCD, to piszemy Γ `BCD M : τ lub po prostu Γ ` M : τ . Jeśli Γ = ∅, to zamiast Γ ` M : τ piszemy ` M : τ , lub wrecz M : τ. , Przyklad: Nastepuj ace asercje sa, wyprowadzalne w systemie BCD:18 , , • ` λx.xx : t ∩ (t → s) → s; • ` 2 : (t → s) ∩ (s → r) → (t → r); • ` K : t → s → t; • ` S : (t0 → s → r) → (t00 → s) → (t0 ∩ t00 ) → r. Zauważmy, że typowanie termu zależy tylko od jego zmiennych wolnych. Lemat 18.1 Niech Γ ` M : τ i niech Γ|FV(M ) = {(x : Γ(x)) | x ∈ FV(M ) i Γ(x) określone}. Wtedy Γ|FV(M ) ` M : τ . Dowód: Dowód jest przez latwa, indukcje, ze wzgledu na wyprowadzenie Γ ` M : τ . , Poprawność redukcji Naszym celem jest teraz pokazanie, że typy termów zachowuj a, sie, przy redukcjach. Niestety T musimy zaczać S, gdzie S = {ρ1 , . . . , ρn } oznacza , od nieprzyjemnych lematów. Notacja iloczyn ρ1 ∩ · · · ∩ ρn . Lemat 18.2 Jeżeli ω 6≡ ρ oraz pewnego J i pewnych ξj , ζj . Dowód: T {σi → τi | i ∈ I} ≤ ρ to ρ = T {ξj → ζj | j ∈ J} dla Indukcja ze wzgledu na definicje, nierówności. , T Lemat 18.3 Jeżeli {σi → τi | i ∈ I} ≤ σ → τ , oraz σ → τ 6≡ ω, to zbiór {τi | σ ≤ σi } jest T niepusty, oraz {τi | σ ≤ σi } ≤ τ . Dowód: Przez indukcje, ze na definicje, T nierówności pokazujemy ogólniejszy fakt: , T wzgledu jeżeli zachodzi nierówność {σi → τi | iT∈ I} ∩ {ph | h ∈ H} ≤ (σ → τ ), gdzie ph sa, atomami, to zachodzi także nierówność {τi | σ ≤ σi } ≤ τ . Szczególy zostawiamy jako ćwiczenie. Lemat 18.4 Jeśli Γ ` M : σ i τ ≤ Γ(x), to Γ(x 7→ τ ) ` M : σ. 18 Także wtedy, gdy zamiast reguly (≤) używamy tylko slabszej reguly (∩E). 12 sierpnia 2008, godzina 14: 39 Dowód: strona 69 Latwa indukcja ze wzgledu na wyprowadzenie Γ ` M : σ. , Lemat 18.5 (o generowaniu) 1. Jeśli Γ ` M N : σ, to Γ ` M : τ → σ i Γ ` N : τ dla pewnego τ . 2. Jeśli Γ ` x : σ, gdzie x jest zmienna, , to Γ(x) ≤ σ. T 3. Jeśli Γ ` λx.M : σ i σ 6≡ ω to σ ≡ {σi → τi | i ∈ I} dla pewnego I i pewnych σi , τi , przy czym τi 6= ω. 4. Jeśli Γ ` λx.M : σ → τ , oraz x 6∈ Dom(Γ), to Γ, x : σ ` M : τ . Dowód: (1) Dowód jest przez indukcje, ze wzgledu na rozmiar wyprowadzenia Γ ` M N : σ , (liczbe, wierzcholków w dowodzie). Mamy kilka przypadków w zależności od tego, która regula zostala użyta w wyprowadzeniu jako ostatnia. Jeśli jest to regula (App), to teza jest oczywista. Przypuśćmy, że jest to regula (≤). To znaczy, że konkluzje, Γ ` M N : σ otrzymaliśmy z wcześniej wyprowadzonej asercji Γ ` M N : σ 0 . Dowód tej ostatniej jest 0 mniejszy, wiec , możemy zastosować zalożenie indukcyjne. Otrzymujemy Γ ` M : τ → σ 0 i Γ ` N : τ . Ponieważ τ → σ ≤ τ → σ, wiec , Γ ` M : τ → σ tak jak chcemy. Jeśli ostatnia, zastosowana, regula, byla regula (∩I), to mamy σ = σ1 ∩ σ2 oraz Γ ` M N : σ1 i Γ ` M N : σ2 , przy czym rozmiary tych wyprowadzeń sa, mniejsze. Z zalożenia indukcyjnego Γ ` M : τ1 → σ1 , i Γ ` M : τ2 → σ2 oraz Γ ` N : τ1 i Γ ` N : τ2 . Stad , wnioskujemy, że Γ ` N : τ1 ∩ τ2 oraz Γ ` M : (τ1 → σ1 ) ∩ (τ2 → σ2 ). Ponieważ (τ1 → σ1 ) ∩ (τ2 → σ2 ) ≤ (τ1 ∩ τ2 → σ1 ) ∩ (τ1 ∩ τ2 → σ2 ) ≤ (τ1 ∩ τ2 → σ1 ∩ σ2 ), wiec , ostatecznie Γ ` M : τ1 ∩ τ2 → σ1 ∩ σ2 i też jest dobrze. Ostatnia, regula, nie może być ani regula (Abs) ani (Var). Pozostaje wiec , tylko ta możliwość, że cale wyprowadzenie polega na przywolaniu aksjomatu (ω). Ale wtedy Γ ` N : ω i Γ ` M : ω. Ponieważ ω ≤ ω → ω, wiec , mamy też Γ ` M : ω → ω. (2) Dowód jest podobny, a nawet prostszy. (3) Postepujemy przez podobna, indukcje, , , korzystajac , z lematu 18.2. Zauważmy tu tylko, że warunek τi 6= ω wynika stad, że σ → ω ≡ ω dla dowolnego σ. Niedobre” czlony iloczynu , ” można wiec , pomijać. (4) Pokażemy nieco silniejsza, teze: , Jeśli Γ ` λx.M : (σ → τ ) ∩ ζ to Γ, x : σ ` M : τ . Dowód jest znowu przez indukcje, ze wzgledu na wyprowadzenie. Nieoczywisty przypadek jest tylko , jeden: gdy konkluzje, Γ ` λx.M : (σ → τ )∩ζ T otrzymano z Γ ` λx.M : ρ za pomoca, reguly (≤). Z cześci 3 wynika, że typ ρ jest postaci {σi → τi | i ∈ I}. Możemy zastosować zalożenie , indukcyjne do każdego czlonu tego iloczynu, otrzymujac , Γ, x : σi ` M : τi dla wszystkich i ∈ I. Na mocy lematu 18.4 zachodzi też Γ, x : σ `TM : τi dla wszystkich i ∈ I, dla których σ ≤ σi . Stad że Γ, x : σ ` M : {τi | σ ≤ σi } i do pelni szcześcia brakuje nam , dalej wnioskujemy, , T tylko nierówności {τi | σ ≤ σi } ≤ τ . Ponieważ jednak ρ ≤ (σ → τ ) ∩ ζ ≤ (σ → τ ), wiec , nierówność ta wynika z lematu 18.3. Lemat 18.6 Jeśli Γ, x : σ ` M : τ oraz Γ ` N : σ, to Γ ` M [x := N ] : τ . 12 sierpnia 2008, godzina 14: 39 strona 70 Dowód: Dowód jest przez indukcje, ze wzgledu na budowe, termu M i wykorzystuje lemat , o generowaniu. Na przyklad jeśli M = P Q to Γ, x : σ ` M : τ implikuje Γ, x : σ ` P : ρ → τ i Γ, x : σ ` Q : ρ. Można wiec zastosować zalożenie indukcyjne do P i Q, otrzymujac , Γ ` P [x := N ] : ρ → τ i Γ ` Q[x := N ] : ρ, skad latwo wynika teza. Pozosta le przypadki s a, , podobne (ćwiczenie). Twierdzenie 18.7 (poprawność redukcji) 19 Jeśli Γ ` M : τ oraz M →βη N , to Γ ` N : τ . Dowód: Dowód jest przez indukcje, ze wzgledu na definicje, redukcji. Przypadki nietry, wialne maja, miejsce gdy M jest beta- lub eta-redeksem. Jeśli M = (λx.P )Q →β P [x := Q] = N , to z lematu 18.5 otrzymujemy Γ ` λx.P : σ → τ i Γ ` Q : σ. Wtedy Γ, x : σ ` P : τ (znowu z lematu o generowaniu) i pozostaje użyć lematu 18.6. Niech wiec , M = λx.N x →η N (gdzie x 6∈ FV(M )). Bez straty ogólności T można zalożyć, że τ 6= ω. Z lematu o generowaniu typ τ jest wiec iloczynem postaci {σi → τi | i ∈ I} , i na dodatek Γ, x : σi ` N x : τi dla wszystkich i ∈ I. Stosujac dalej lemat o generowaniu , otrzymamy Γ, x : σi ` N : ξi → τi oraz Γ, x : σi ` x : ξi . Wtedy σi ≤ ξi , wiec , Γ, x : σi ` N : σi → τi . Z lematu 18.1 wnioskujemy, że Γ ` N : σi → τi , a skoro tak jest dla wszystkich i, to wreszcie Γ ` N : τ . System typów iloczynowych BCD jest w tym wyjatkowy, że zachodzi nastepuj ace , , , twierdzenie (nieprawdziwe dla wiekszości innych systemów): , Twierdzenie 18.8 Jeżeli M →β N , to warunki Γ ` M : τ i Γ ` N : τ sa, równoważne.20 Dowód: Implikacja z lewej do prawej to oczywiście twierdzenie 18.7. Dla dowodu implikacji odwrotnej potrzebna nam taka wlasność: Jeśli Γ ` M [x := N ] : τ , to istnieje taki typ σ, że Γ ` N : σ i Γ, x : σ ` M : τ , czyli twierdzenie odwrotne do lematu 18.6. Dowód tej wlasności przebiega przez indukcje, ze wzgledu na budowe, termu M , z pomoca, lematu o generowaniu (lemat 18.5). Przypadek , M = y 6= x wymaga odwolania sie, do stalej ω. Wniosek 18.9 Jeżeli M =β N , to termy M i N maja, te same typy w każdym otoczeniu. Ćwiczenia 1. Czy twierdzenie 18.7 pozostanie prawdziwe, gdy z definicji ≤ usuniemy warunek ω ≤ ω → ω? 19 20 Subject reduction property Subject conversion property 12 sierpnia 2008, godzina 14: 39 strona 71 2. Wskazać przyklady termów, które nie maja, żadnego typu prostego, ale maja, typy iloczynowe, nie zawierajace ω. , 3. Czy z tego, że term M ma typ w otoczeniu Γ wynika, że Γ(x) jest określone dla wszystkich x ∈ FV(M )? 4. Czy twierdzenie 18.8 uogólnia sie, dla η-redukcji? 19 Model z filtrów Wracamy do semantyki typów, ale tym razem iloczynowych. Znaczenie typów przy wartościowaniu typowym ξ definiujemy jak poprzednio, dodajac , jeszcze dwie klauzule. • [[s]]ξ = ξ(s), gdy s jest zmienna, typowa;, • [[ω]]ξ = D; • [[σ ∩ τ ]]ξ = [[σ]]ξ ∩ [[τ ]]ξ ; • [[σ → τ ]]ξ = [[σ]]ξ ⇒ [[τ ]]ξ . Terminologia i notacja pozostaje taka jak dla typów prostych. Twierdzenie o poprawności pozostaje prawdziwe. Lemat 19.1 Jeśli σ ≤ τ , to [[σ]]ξ ⊆ [[τ ]]ξ dla dowolnego ξ. Dowód: Ćwiczenie. Twierdzenie 19.2 (o poprawności) Jeśli Γ ` M : σ, to Γ |= M : σ. Dowód: Podobny do dowodu twierdzenia 17.1. Przypadek reguly (≤) wynika wprost z lematu 19.1. Teraz zabieramy sie, za dowód pelności. Podzbiór F ⊆ T nazywamy filtrem, jeżeli spelnione sa, takie warunki: • F jest niepusty; • Jeżeli σ, τ ∈ F , to σ ∩ τ ∈ F ; • Jeżeli σ ∈ F i σ ≤ τ , to τ ∈ F . Przykladem filtru jest każdy zbiór postaci σ↑ = {τ | σ ≤ τ }, nazywany filtrem glównym. W zbiorze F wszystkich filtrów określamy operacje, aplikacji: F1 · F2 = {τ | σ → τ ∈ F1 dla pewnego σ ∈ F2 }. 12 sierpnia 2008, godzina 14: 39 strona 72 Wartościowanie v : V → F przypisuje każdej zmiennej x pewien filtr v(x). Nieformalnie, jest to filtr zlożony z typów dozwolonych” dla x. Mówimy, że otoczenie Γ jest zgodne z wartoś” ciowaniem v, gdy Γ(x) ∈ v(x) dla wszystkich x, dla których Γ(x) jest określone. Definiujemy teraz znaczenie termu M w zbiorze F (przy wartościowaniu v), jako zbiór typów dozwolonych” dla M : ” [[M ]]v = {σ | Γ ` M : σ, dla pewnego Γ zgodnego z v}. W nastepnym dowodzie (i nie tylko) przyda sie, nastepujaca definicja. Jeśli Γ1 i Γ2 sa, oto, , czeniami, to przez Γ1 &Γ2 oznaczamy otoczenie, którego dziedzina jest suma, dziedzin Γ1 i Γ2 , i które jest określone tak: Γ1 (x) ∩ Γ2 (x), jeśli Γ1 (x) i Γ2 (x) sa, określone; Γ1 (x), jeśli tylko Γ1 (x) jest określone; (Γ1 &Γ2 ) = Γ2 (x), jeśli tylko Γ2 (x) jest określone. Lemat 19.3 Struktura F = hF, ·, [[ ]]i jest lambda-modelem. Dowód: Naszym zadaniem jest sprawdzenie nastepuj acych warunków: , , (a) Jeśli x jest zmienna,, to [[x]]v = v(x); (b) [[P Q]]v = [[P ]]v [[Q]]v ; (c) [[λx.P ]]v · F = [[P ]]v[x7→F ] , dla dowolnego F ∈ F; (d) Jeśli v|FV(P ) = u|FV(P ) , to [[P ]]v = [[P ]]u . (e) Jeśli [[λx.M ]]v ≈ [[λx.N ]]v to [[λx.M ]]v = [[λx.N ]]v . Zaczynamy od (a). Przypuśćmy, że σ ∈ [[x]]v . Z definicji oznacza to, że Γ ` x : σ dla pewnego Γ zgodnego z v, czyli takiego, że Γ(x) ∈ v(x). Z lematu o generowaniu wiemy, że wtedy σ ≥ Γ(x), wiec , tym bardziej σ ∈ v(x). Mamy wiec , inkluzje, [[x]]v ⊆ v(x). Inkluzja odwrotna jest jeszcze latwiejsza, bo dla σ ∈ v(x) otoczenie {x : σ} jes zgodne z v. W punkcie (b) pokażemy inkluzje, [[P ]]v [[Q]]v ⊆ [[P Q]]v , która jest mniej oczywista. Zalóżmy, że σ ∈ [[P ]]v [[Q]]v . Jest wiec , takie ζ ∈ [[Q]]v , że ζ → σ ∈ [[P ]]v . Istnieja, zatem otoczenia Γ1 i Γ2 zgodne z v i takie, że Γ1 ` P : ζ → σ oraz Γ2 ` Q : ζ. Nietrudno sprawdzić, że Γ0 = Γ1 &Γ2 jest zgodne z v, oraz że Γ0 ` P : ζ → σ i Γ0 ` Q : ζ. Stad , Γ0 ` P Q : σ i mamy σ ∈ [[P Q]]v . W cześci (c) trudniejsza” jest inkluzja z lewej do prawej. Niech σ ∈ [[λx.P ]]v · F . Oznacza , ” to, że Γ ` λx.P : τ → σ i τ ∈ F , gdzie Γ jest zgodne z v. Na mocy lematu o generowaniu Γ, x : τ ` P : σ. Ponieważ Γ, x : τ jest zgodne z v[x 7→ F ], wiec , σ ∈ [[P ]]v[x7→F ] i dobrze. Warunek (d) wynika wprost z lematu 18.1. Możemy teraz już stwierdzić, że struktura filtrów jest lambda-interpretacja., Pozostaje sprawdzenie warunku (e). Niech wiec , [[λx.M ]]v ≈ [[λx.N ]]v , czyli [[λx.M ]]v · F = [[λx.N ]]v · F dla dowolnego filtru F . Przypuśćmy, że σ ∈ [[λx.M ]]v . Wtedy, na mocy lematu o generowaniu, T σ ≡ {σi → τi | i ∈ I} oraz Γ, x : σi ` M : τi dla i ∈ I, dla pewnego Γ, zgodnego z v. 12 sierpnia 2008, godzina 14: 39 strona 73 Ponieważ otoczenie Γ, x : σi jest zgodne z wartościowaniem v[x 7→ σi ↑], wiec , typ τi należy do 0 filtru [[M ]]v[x7→σi ↑] = [[λx M ]]v · σi ↑ = [[λx N ]]v · σi ↑ = [[N ]]v[x7→σi ↑] . A wiec , mamy Γi ` N : τi , 0 0 gdzie Γi jest pewnym otoczeniem zgodnym z v[x 7→ σi ↑]. Ale wtedy Γi (x) ≥ σi , wiec , tym 0 0 0 bardziej Γi (x 7→ σi ) ` N : τi , czyli Γi ` λx.N : σi → τi . Ponieważ Γi jest także zgodne z v, wiec , σi → τi ∈ [[λx.N ]]. Ostatecznie σ ∈ [[λx.N ]], bo σ to iloczyn wszystkich σi → τi . Lemat 19.4 W modelu F = hF, ·, [[ ]]i określamy wartościowanie typowe ξ(p) = {F | p ∈ F }. Wtedy [[τ ]]ξ = {F | τ ∈ F }, dla dowolnego typu τ . Dowód: Dowód jest przez indukcje, ze wzgledu na τ . Przypadek iloczynu jest latwy, bo , zachodzi równoważność (σ ∈ F ) ∧ (ρ ∈ F ) ⇐⇒ σ ∩ ρ ∈ F . Niech wiec , τ = ρ → σ. Mamy wykazać, że typ ρ → σ należy do filtru F wtedy i tylko wtedy, gdy F ∈ [[ρ]]ξ ⇒ [[σ]]ξ . Implikacja z lewej do prawej jest latwa. Jeśli bowiem G ∈ [[ρ]]ξ , to z zalożenia indukcyjnego dla ρ wynika ρ ∈ G, z zatem σ ∈ F · G wprost z definicji aplikacji F · G. Na odwrót, przypuśćmy, że F ∈ [[ρ]]ξ ⇒ [[σ]]ξ . Ponieważ ρ ∈ ρ↑ wiec , z zalożenia indukcyjnego dla ρ mamy ρ↑ ∈ [[ρ]]ξ , a stad , F · ρ↑ ∈ [[σ]]ξ , czyli (na mocy zalożenia indukcyjnego dla σ) typ σ należy do F · ρ↑. Istnieje wiec , takie µ ∈ ρ↑, że µ → σ ∈ F . Wtedy jednak µ ≥ ρ, wiec , ρ → σ ≥ µ → σ, i typ ρ → σ też należy do F . Twierdzenie 19.5 (o pelności) Warunki Γ ` M : σ i Γ |= M : σ sa, równoważne. Dowód: Przypuśćmy, że Γ |= M : σ. W modelu F = hF, ·, [[ ]]i definiujemy wartościowanie v, przyjmujac , v(x) = τ ↑ dla dowolnego (x : τ ) ∈ Γ. Ponieważ wtedy τ ∈ v(x), wiec , v(x) ∈ [[τ ]]ξ (lemat 19.4). Zatem F, v, ξ |= Γ, a wobec tego F, v, ξ |= M : σ, gdzie ξ jest takie 0 jak w Lemacie 19.4. To oznacza, że [[M ]]v ∈ [[σ]]ξ , czyli σ ∈ [[M ]]v . Jest wiec , otoczenie Γ 0 0 0 zgodne z v, takie że Γ ` M : σ. Ponieważ Γ jest zgodne z v, wiec , Γ (x) ∈ v(x), czyli 0 Γ(x) ≤ Γ (x) dla wszystkich x. A wiec , tym bardziej Γ ` M : σ. Ćwiczenia 1. Udowodnić, że jeśli F1 i F2 sa, filtrami, to F1 · F2 jest filtrem. 2. Udowodnić, że [[M ]]v zawsze jest filtrem. 3. Czy model z filtrów jest ekstensjonalny? 20 Typy iloczynowe bez omegi System BCD, o którym byla mowa do tej pory, przypisywal każdemu bez wyjatku termowi , trywialny” typ ω. Jeżeli z tego systemu usuniemy aksjomat ” strona 74 12 sierpnia 2008, godzina 14: 39 Γ ` M : ω, to już nie każdy term bedzie mial typ. Nabiera wiec aca definicja. Term M jest , , sensu nastepuj , , typowalny wtedy i tylko wtedy, gdy Γ ` M : τ , dla pewnych Γ i τ . W istocie, jak sie, okaże poniżej, termy typowalne za pomoca, typów iloczynowych bez omegi, to dokladnie termy silnie normalizowalne. Dla porzadku zacznijmy od definicji. Zbiór typów T∩ definiujemy tak samo jak zbiór T∩ω , ale , z pominieciem omegi: , • Typy atomowe należa, do T∩ ; • Jeśli σ i τ sa, w T∩ , to σ → τ i σ ∩ τ też należa, do T∩ . W zbiorze T∩ określamy relacje, ≤ jako najmniejszy quasiporzadek ≤ spelniajacy warunki , , σ ∩ τ ≤ σ, σ ∩ τ ≤ τ , σ ≤ σ ∩ σ (σ → τ ) ∩ (σ → ρ) ≤ σ → τ ∩ ρ Jeśli σ ≤ σ 0 i τ ≤ τ 0 , to σ ∩ τ ≤ σ 0 ∩ τ 0 oraz σ 0 → τ ≤ σ → τ 0 . Bedziemy teraz przypisywać termom typy za pomoca, tych samych regul co poprzednio, ale , z wylaczeniem aksjomatu (ω). Dla odróżnienia od systemu BCD ten nowy system nazwijmy , systemem λ∩≤ . Oto aksjomat i reguly systemu λ∩≤ . (Var) Γ, x : σ ` x : σ Γ, x:σ ` M : τ (Abs) (App) Γ`M :σ→τ Γ ` (λx.M ) : σ → τ (∩I) Γ`M :σ Γ`M :τ Γ`M :σ∩τ Γ`N :σ Γ ` (M N ) : τ (≤) Γ`M :σ (σ ≤ τ ) Γ`M :τ Asercje wyprowadzalne w systemie λ∩≤ możemy zapisywać Γ `∩ M : σ, ale zwykle zamiast `∩ napiszemy po prostu `. O którym systemie mowa, powinno być wiadomo z kontekstu. Dla systemu λ∩≤ zachodzi nastepuj acy wariant lematu 18.1. , , Lemat 20.1 Jeśli Γ ` M : τ , to Γ(x) jest określone dla każdego x ∈ FV(M ). Ponadto Γ|FV(M ) ` M : τ , gdzie Γ|FV(M ) = {(x : Γ(x)) | x ∈ FV(M )}. Dowód: Latwa indukcja ze wzgledu na rozmiar wyprowadzenia. , Różnica pomiedzy treścia, lematu 20.1 i lematu 18.1 bierze sie, oczywiście z braku aksjo, matu (ω). Teraz, aby przypisać typ calemu termowi, trzeba zadeklarować typy wszystkich jego zmiennych wolnych. Podstawowe wlasności systemu λ∩≤ sa, podobne do wlasności systemu BCD. W szczególności pozostaja, prawdziwe lematy 18.2, 18.3, a także lemat 18.5 o generowaniu (z pominieciem , strona 75 12 sierpnia 2008, godzina 14: 39 tego, co odnosi sie, do omegi). Podobnie jak poprzednio, wyprowadzamy stad , lemat o podstawieniu (odpowiednik lematu 18.6) a nastepnie twierdzenie o poprawności redukcji. Dowody , tych faktów pozostaja, niezmienione (ale prostsze, bo niepotrzebne sa, rozważania dotyczace , omegi). Dla systemu λ∩≤ nie zachodzi jednak twierdzenie 18.8. Na przyklad nietypowalny term KKΩ redukuje sie, do typowalnego K. Silna normalizacja Udowodnimy teraz twierdzenie o silnej normalizacji dla systemu λ∩≤ . Nasz dowód bedzie , niewielka, adaptacja, dowodu twierdzenia 13.9 o silnej normalizacji rachunku z typami prostymi. Definicja [[τ ]] ma teraz o jeden przypadek wiecej: , • [[p]] := SN, gdy p jest atomem; • [[τ → σ]] := {M : τ → σ | ∀N (N ∈ [[τ ]] ⇒ M N ∈ [[σ]])}. • [[τ ∩ σ]] := [[τ ]] ∩ [[σ]]. Lematy 13.5 i 13.7 pozostaja, prawdziwe dla tej definicji, a ich dowody pozostaja, praktycznie bez zmian (przypadek iloczynu to natychmiastowe zastosowanie zalożenia indukcyjnego). lemat 13.6 w ogóle nie wymaga żadnej adaptacji. Dowód lematu 13.8 ulega tylko dwu drobnym zmianom. Po pierwsze, w przypadku zmiennej musimy sie, odwolać do takiej dodatkowej wlasności: Lemat 20.2 Jeśli τ ≤ σ, to [[τ ]] ⊆ [[σ]]. Dowód: Indukcja ze wzgledu na definicje, relacji ≤. , T Po drugie, w przypadku abstrakcji zamiast zwyklego σ → ρ mamy iloczyn {σi → ρi | i ∈ I}, ~ /~x] jest stabilny dla wszystkich gdzie Γ, y : σi ` P : ρi dla i ∈ I, i musimy pokazać, że M [N typów σi → ρi . Trzeba wiec indeks i. Otrzymamy w końcu , cierpliwie podopisywać wszedzie , Twierdzenie 20.3 (o silnej normalizacji) System λ∩≤ ma wlasność silnej normalizacji: każdy term typowalny jest SN. Ćwiczenia 1. Sprawdzić, że lematy 18.3–18.6 i twierdzenie 18.7 dla systemu BCD przenosza, sie, na system λ∩≤ . 2. Udowodnić lemat 20.2. 3. Rozpatrzmy system λ∩ powstaly z systemu λ∩≤ przez zamiane, reguly (≤) na regule, (∩E) Γ ` M : σ1 ∩ σ2 Γ ` M : σi Pokazać, że termy typowalne w obu systemach sa, takie same. strona 76 12 sierpnia 2008, godzina 14: 39 4. Czy w systemie λ∩ zachodzi twierdzenie o poprawności eta-redukcji? 5. System λ∩η to rozszerzenie systemu λ∩ o dodatkowa, regule, (η) Γ ` M : σ, M →η N Γ`N :σ Pokazać, że w systemach λ∩η i λ∩≤ wyprowadzalne sa, dokladnie te same asercje typowe. Twierdzenie Pottingera Twierdzenie o silnej normalizacji zachodzi dla wielu systemów przypisania typów. Jest to wrecz uważane za dość podstawowa, wlasność takich systemów, a system BCD z regula, (ω) , stanowi raczej wyjatek, uzasadniony swoimi semantycznymi korzeniami. , Spośród systemów o wlasności SN, typy iloczynowe stanowia, mechanizm najsilniejszy w tym sensie, że twierdzenie o silnej normalizacji jest dla tego systemu odwracalne: każdy term o wlasności SN jest typowalny. Pierwszy dowód tego faktu opublikowal w 1980 roku G. Pottinger. Ten dowód i inne późniejsze dowody zawieraly różne usterki. Pierwszy poprawny dowód (niepublikowany) podala w latach dziewiećdziesi atych B. Venneri. Poniższy dowód, , , miejmy nadzieje, , też jest poprawny. Naturalna idea dowodu jest oczywiście taka: Zaczać , od typowania postaci normalnych i dowodzić twierdzenia przez indukcje, ze wzgledu na d lugość redukcji termu do postaci normalnej. , Ale zauważyliśmy już, że dla systemu λ∩≤ nie zachodzi twierdzenie 18.8. W szczególności nie zachodzi twierdzenie odwrotne do lematu 18.6. Mamy jednak nieco slabsza, wlasność. Lemat 20.4 Jeśli Γ ` M [x := N ] : τ oraz Γ ` N : ρ, to istnieje taki typ σ, że Γ ` N : σ oraz Γ, x : σ ` M : τ , Dowód: Ćwiczenie. Lemat 20.5 Każdy term w postaci normalnej jest typowalny. Dowód: Indukcja ze wzgledu na budowe, termu (ćwiczenie). , Twierdzenie 20.6 (Pottinger) Term jest typowalny w systemie λ∩≤ wtedy i tylko wtedy, gdy jest silnie normalizowalny. Dowód: Implikacja z lewej do prawej to twierdzenie 20.3 o silnej normalizacji. Dowód implikacji odwrotnej przebiega przez indukcje, ze wzgledu na maksymalna, możliwa, dlugość , ciagu redukcji danego termu M , któr a oznaczymy przez δ(M ). Jeśli δ(M ) = 0, czyli mamy do , , czynienia z postacia, normalna,, to stosujemy lemat 20.5. W kroku indukcyjnym zakladamy, że każdy term N o wlasności δ(N ) < n jest typowalny i dowodzimy, że jeśli δ(M ) = n to M jest typowalny. Dowód jest przez lokalna” na budowe, termu M . , indukcje, ze wzgledu , ” strona 77 12 sierpnia 2008, godzina 14: 39 Niech M →L M 0 . Wtedy δ(M 0 ) < n, zatem M 0 jest typowalny. Przypuśćmy, że Γ0 ` M 0 : τ . PrzypadekT1: M = λx.N →L λx.N 0 = M 0 . Z lematu o generowaniu typ τ termu M 0 musi być postaci {σi → τi | i ∈ I}, gdzie Γ, x : σi ` N 0 : τi . Z lokalnego” zalożenia indukcyjnego ” term N jest typowalny, wiec , abstrakcja M = λx.N też jest typowalna. Przypadek 2: M = xN1 . . . Ni . . . Nk →L xN1 . . . Ni0 . . . Nk = M 0 , gdzie Ni →L Ni0 . Skoro term M 0 ma typ w otoczeniu Γ0 , to także termy N1 , . . . , Ni0 , . . . , Nk maja, pewne typy ρ1 , . . . , ρ0i , . . . , ρk w tym otoczeniu. Z zalożenia indukcyjnego wiemy, że Γ ` Ni : ρi dla pewnych Γ, ρi . Jesli teraz przyjmiemy Γ0 = Γ0 & Γ & (x : ρ1 → · · · → ρi → · · · → ρk → s), gdzie s jest typem atomowym, to otrzymamy Γ0 : M : s. Przypadek 3: Przyszedl czas na przypadek redeksu czolowego: M = (λx.P )QN1 . . . Nk →L P [x := Q]N1 . . . Nk = M 0 . Stosujac lematu o generowaniu, wnioskujemy, że Γ0 ` Ni : ρi oraz , k-krotnie pierwsza, cześć , Γ0 ` P [x := Q] : ρ1 → · · · → ρk → τ dla pewnych ρi i σ. Ponadto term Q jest silnie normalizowalny, jako podterm silnie normalizowalnego termu M . Ponieważ M ma redeks czolowy, wiec , najdluższa możliwa redukcja termu M jest dluższa przynajmniej o jeden krok od każdej 00 redukcji termu Q. Zatem δ(Q) < δ(M ), skad , Q jest termem typowalnym, np. Γ ` Q : ζ. 0 00 Niech Γ = Γ &Γ . Wtedy nadal Γ ` P [x := Q] : ρ1 → · · · → ρk → ρ oraz Q ma typ w Γ. Z lematu 20.4 dostajemy Γ ` Q : σ oraz Γ, x : σ ` P : ρ1 → · · · → ρk → ρ, dla pewnego typu σ. Stad , Γ ` λx.P : σ → ρ1 → · · · → ρk → ρ, i dalej Γ ` M : ρ. Problemem typowalności (typability) (albo problemem rekonstrukcji typu) dla danego systemu przypisania typów nazywamy taki problem decyzyjny: Czy dany term M jest typowalny? Zbliżonym zagadnieniem jest problem sprawdzenia typu (type checking): Dane sa, M , Γ i τ . Czy Γ ` M : τ ? Wniosek 20.7 Problem typowalności dla typów iloczynowych jest nierozstrzygalny. Dowód: Wynika to wprost z twierdzenia 20.6 i z nierozstrzygalności silnej normalizacji (wniosek 7.11). Wniosek 20.8 Problem sprawdzenia typu dla typów iloczynowych też jest nierozstrzygalny. Dowód: Redukujemy problem typowalności do problemu sprawdzenia typu. Niech ~x bed , a, wszystkimi zmiennymi wolnymi termu M . Term M jest typowalny wtedy i tylko wtedy, gdy x : s ` Kx(λ~xM ) : s. Ćwiczenia 1. Udowodnić lemat 20.5. Wskazówka: term M jest w postaci normalnej, wtedy i tylko wtedy, gdy zachodzi jedna z trzech możliwości: (a) M jest zmiennna,, (b) M = λx.N , gdzie N jest w postaci ~ , gdzie N ~ sa w postaci normalnej. normalnej, (c) M = xN , strona 78 12 sierpnia 2008, godzina 14: 39 2. Czy w dowodzie twierdzenia 20.6 można wzmocnić zalożenie indukcyjne do warunku: Jeśli δ(M ) = n oraz M →L M 0 i przy tym Γ ` M 0 : τ , to Γ ` M : τ ? 3. Czy w dowodzie twierdzenia 20.6, w zalożeniu indukcyjnym można zastapić warunek M →L M 0 , przez M → M 0 ? 21 Problem niepustości typu Dualny do problemu typowalności jest problem niepustości typu, nazywany też problemem inhabitacji, i formulowany tak: Czy istnieje term zamkniety danego typu? , Nieco ogólniejsze (ale równoważne) sformulowanie jest takie: Czy dla danych Γ i τ istnieje term M , który ma typ τ w otoczeniu Γ? Pokażemy szkic dowodu, że problem inhabitacji dla typów iloczynowych jest nierozstrzygalny. Poniżej mowa o systemie λ∩ , ale takie samo rozumowanie stosuje sie, dla innych wariantów. Zaczniemy od wyspecjalizowanego automatu. Automaty wierszowe Definicja 21.1 Automat wierszowy to krotka postaci A = hΣ, Q, q0 , F, %i, gdzie Σ jest skończonym alfabetem, Q to skończony zbiór stanów, q0 ∈ Q jest stanem poczatkowym i F ⊆ Q jest zbiorem stanów końcowych. Ostatnia skladowa to funkcja przejś, cia % : (Q − F ) × (Σ ∪ {ε}) → Q × (Σ ∪ {ε}), która musi spelniać warunek: jeśli %(q, a) = (p, b) to albo a, b ∈ Σ albo a = b = ε. Konfiguracja, automatu jest trójka hw, q, vi, gdzie q jest stanem, wv ∈ Σ∗ jest slowem (reprezentujacym zawartość taśmy). Interpretacja jest taka, że glowica maszyny widzi” pierwszy sym, ” bol slowa v (lub ε, gdy v = ε). Zmiane, konfiguracji w jednym kroku wyraża funkcja %: • %(hw, q, avi) = hwb, p, vi, jeśli a 6= ε oraz %(q, a) = (p, b); • %(hw, q, εi) = hε, p, wi, jeśli %(q, ε) = (p, ε). Jezyk akceptowany przez A definiujemy tak: , L(A) = {w ∈ Σ∗ | %k (hε, q0 , wi) = hu, q, vi, dla pewnego k ∈ N i pewnego q ∈ F }. Nieformalnie: maszyna czyta slowo od lewej do prawej, przy czym może pisać i zmieniać stan, ale nie może sie, cofać. Dopiero po dojściu do końca slowa cofa sie, na sam poczatek i znowu , pracuje od lewej do prawej. Zatrzymuje sie, po wejściu w stan końcowy. Fakt 21.2 Problem niepustości dla automatów wierszowych (czy L(A) 6= ∅ dla danego A?) jest nierozstrzygalny. strona 79 12 sierpnia 2008, godzina 14: 39 Dowód: Wiadomo, że nierozstrzygalny jest problem stopu dla automatów kolejkowych, przy czym można zakladać, ze dany automat rozpoczyna prace, z pusta, kolejka., Dla danego automatu kolejkowego K można zbudować automat wierszowy A o tej wlasności, że K zatrzymuje sie, wtedy i tylko wtedy, gdy A akceptuje pewne slowo. Slowo to jest postaci <>] · · · ]] i reprezentuje pusta, kolejke, poczatkow a., Automat A naśladuje dzialanie automatu K w ten , sposób, że np. kolejka o zawartości 011100010 (poczatek z lewej) jest przedstawiona na taśmie , zawsze jako slowo postaci $$ · · · $<011100010>] · · · ]]. Instrukcja insert(0) jest realizowana przez zamiane, >] na 0>, a instrukcja remove przez zamiane, <0 na $<. W ten sposób kolejka przesuwa sie, wciaż , w prawo, a symulacja jest poprawna pod warunkiem, że liczba krzyżyków w slowie wejściowym byla dostatecznie duża. Gry na drzewach Opiszemy teraz gry (dla pojedynczego gracza) polegajace na budowaniu drzewa za pomoca, , dostepnych regu l. Niech Σ b edzie skończonym alfabetem. Wtedy: , , 1. Regula lokalna (nad Σ) to skończony niepusty zbiór X par elementów Σ. 2. Regula globalna (nad Σ) to skończony niepusty zbiór G trójek postaci hhX, bi, hY, ci, di, gdzie b, c, d ∈ Σ i X, Y sa, regulami lokalnymi. 3. Gra (nad Σ) jest trójka, postaci T = ha, F, {G1 , . . . , Gn }i, gdzie a ∈ Σ jest etykieta, poczatkow a, , , F ⊆ Σ jest zbiorem etykiet końcowych, a G1 , . . . , Gn sa, regulami globalnymi. Pozycja, w grze T jest skończone drzewo, którego wierzcholki sa, etykietowane elementami alfabetu Σ, o takich wlasnościach: • Korzeń ma etykiete, a (etykiete, poczatkow a). , , • Każdy wierzcholek ma co najwyżej dwóch synów. • Wierzcholki na tym samym poziomie maja, te, sama, liczbe, synów. W szczególności wszystkie liście sa, na tym samym poziomie. • Jeśli wierzcholek v ma dwóch synów v 0 i v 00 , to krawedzie hv, v 0 i and hv, v 00 i sa, etykieto, wane lokalnymi regulami. Pozycja poczatkowa w grze T sklada sie, tylko z korzenia. Pozycja jest końcowa, gdy wszystkie , etykiety liści należa, do F . Niech C bedzie pozycja, w grze T = ha, F, {G1 , . . . , Gn }i i niech v bedzie liściem C. Przy, , puśćmy, że dla pewnego k, wszystkie wierzcholki na poziomie k − 1 maja, dwóch synów strona 80 12 sierpnia 2008, godzina 14: 39 a OOO OOO ooo OYOO OOO OO Xoooo b Y a o ooo ooo d= == ==X == = c a= === Y == == Z c b c Obrazek 15: Przykladowa pozycja w grze @ @ @ @ @ k−1 @ A A A A X=X v,k A A k A UA E E E E E E E E E E E E E E E E E E E E E v E E E Obrazek 16: Regula lokalna X dla wierzcholka v 12 sierpnia 2008, godzina 14: 39 strona 81 (Obrazek 16). Pewien wierzcholek u z poziomu k − 1 jest przodkiem liścia v, podobnie jak jeden z synów wierzcholka u, powiedzmy u0 . Niech X bedzie etykieta, krawedzi hu, u0 i. , , Mówimy wtedy, że X jest k-ta, regula, lokalna, dla v i piszemy X = Xv,k . Opiszemy teraz jak można zmienić pozycje. , Niech T = ha, F, {G1 , . . . , Gn }i i niech C b edzie , pozycja., Mamy dwie możliwości otrzymania nowej pozycji. 1. Można wykonać krok globalny”, wybierajac , jedna, z regul globalnych Gi i wykonujac , ” dla każdego liścia v drzewa C takie czynności: • Wybrać taka, trójke, hhX, bi, hY, ci, di ∈ Gi , że d jest etykieta, v; • Utworzyć dwóch synów v, powiedzmy v 0 i v 00 , i przypisać im etykiety b i c; • Oznaczyć krawedź hv, v 0 i przez X a krawedź hv, v 00 i przez Y . , , 2. Można też wykonać krok lokalny”. Zaczynamy go od wybrania poziomu k w C, tak aby ” każdy wierzcholek na poziomie k − 1 mial dwóch synów. Nastepnie, dla każdego liścia v , w drzewie C: • Wybieramy pare, hc, bi ∈ Xv,k , gdzie b jest etykieta, v; • Tworzymy pojedynczego syna v o etykiecie c. Oczywiście interesuje nas problem, czy dana, gre, można wygrać, tj. z pozycji poczatkowej dojść , do końcowej. Nazwijmy go problemem gier na drzewach. Na nastepuj acym przyk ladzie widać , , jak gry odpowiadaja, pewnym przypadkom problemu inhabitacji. Niech T0 = h1, {c}, {G1 , G2 }i bedzie gra, nad Σ = {a, b, c, 1, 2}, gdzie: , • G1 = {hh{(a, a)}, 1i, h{(b, a)}, 2i, 1i, hh{(a, b)}, 1i, h{(b, b)}, 2i, 2i}; • G2 = {hh{(c, a)}, ai, h{(c, a)}, ai, 1i, hh{(c, b)}, ai, h{(c, b)}, ai, 2i}. Zalóżmy, że elementy alfabetu Σ można uważać za zmienne typowe. Pozycje końcowe w tej grze odpowiadaja, termom, które maja, typ 1 w otoczeniu Γ skladajacym sie, z deklaracji: , • x0 : c; • x1 : [((a → a) → 1) ∧ ((b → a) → 2) → 1] ∧ [((a → b) → 1) ∧ ((b → b) → 2) → 2]; • x2 : [((c → a) → a) ∧ ((c → a) → a) → 1] ∧ [((c → b) → a) ∧ ((c → b) → a) → 2]. Na przyklad pozycja z Obrazka 17 odpowiada termowi x1 (λy1 (x1 λy2 (x2 λy3 . y1 (y2 (y3 x0 ))))). Powyższa, obserwacje, można uogólnić tak: Fakt 21.3 Dla dowolnej gry T można efektywnie skonstruować otoczenie Γ i typ a, tak że gre, T można wygrać wtedy i tylko wtedy, gdy Γ ` M : τ dla pewnego M . A zatem nierozstrzygalność problemu gier na drzewach implikuje nierozstrzygalność inhabitacji. strona 82 12 sierpnia 2008, godzina 14: 39 nn 1 PPPPP PPP nnn n n PPP(b,a) (a,a) nnn PPP nn n PPP n n n PPP nn n PPP n nnn 2B 1 B || BBB || BBB | | BB (b,b) BB (b,a) (a,b) ||| (a,a) ||| BB BB | | BB B | | B | | BB BB || || B B | | | | 21 11 21 11 111 111 111 111 11(c,b) 11(c,a) 11(c,b) 11(c,a) (c,b) (c,a) (c,b) (c,a) 11 11 11 11 11 11 11 11 a a a a a a a a a a a a b b b b a a b b a a b b c c c c c c c c Obrazek 17: Pozycja końcowa dla termu x1 (λy1 (x1 λy2 (x2 λy3 . y1 (y2 (y3 x0 ))))) Gra cykliczna Przyklad z Obrazka 17 jest dość pouczajacy i warto go jeszcze raz obejrzeć. Pozycja na , obrazku jest otrzymana w 6 krokach, które można zapisać tak: C0 ⇒G1 C1 ⇒G1 C2 ⇒G2 C3 ⇒1 C4 ⇒2 C5 ⇒3 C6 = C, Zauważmy, że każda udana rozgrywka musi przebiegać podobnie (C2n jest końcowa). C0 ⇒G1 C1 ⇒G1 · · · ⇒G1 Cn−1 ⇒G2 Cn ⇒1 Cn+1 ⇒2 · · · ⇒n C2n . Pierwsza faza gry determinuje druga., Po wykonaniu G2 używać musimy kolejno pierwszej, drugiej, trzeciej reguly lokalnej, i tak dalej. Zdefiniujemy teraz nieco bardziej zlożona, gre, , o podobnym, ale cyklicznym zachowaniu. Poniżej, trójki hhX, bi, hY, ci, di reprezentujemy graficznie w taki sposób: strona 83 12 sierpnia 2008, godzina 14: 39 X b d= == ==Y == = c Zaczniemy od trójwymiarowego” alfabetu Σ1 = {⊥, a, b} × {⊥, 1, 2} × {L, G} i określimy gre, ” T1 = hh⊥, 1, Gi, ∅, {G1 , G2 , G3 }i. (Na razie chcemy tylko grać, nie musimy wygrywać, dlatego nie ma etykiet końcowych.) Regula globalna G1 sklada sie, z trójek postaci: h⊥, 1, Gi {(ha,x,Gi,ha,x,Li) | >> >> >> >> {(hb,x,Gi,ha,x,Li) | all x} >> >> >> >> all x} h⊥, 1, Gi h⊥, 2, Gi oraz postaci: h⊥, 2, Gi {(ha,x,Gi,hb,x,Li) | >> >> >> >> {(hb,x,Gi,hb,x,Li) | all x} >> >> >> >> all x} h⊥, 1, Gi h⊥, 2, Gi Zauważmy, że G1 jest bardzo podobna do reguly G1 z poprzedniego przykladu (por. a i b w pierwszej skladowej i 1, 2 w drugiej). Regula globalna G2 sklada sie, z dwóch trójek: h⊥, 1, Gi {(ha,x,G,i,ha,x,Li) | all x} ha, 1, Li oraz: == == == == {(hb,x,G,i,ha,x,Li) | all x} == == == == ha, 2, Li strona 84 12 sierpnia 2008, godzina 14: 39 h⊥, 2, Gi {(ha,x,G,i,hb,x,Li) | all x} ha, 1, Li == == == == {(hb,x,G,i,hb,x,Li) | all x} == == == == ha, 2, Li Dalej, dla dowolnego z ∈ {a, b}, tj. z 6= ⊥, mamy w G3 trójki postaci: hz, 1, Gi {(ha,x,Gi,ha,x,Li) | all x} hz, 1, Li << << << << {(hb,x,Gi,ha,x,Li) | all x} << << << << hz, 2, Li hz, 2, Gi {(ha,x,Gi,hb,x,Li) | all x} hz, 1, Li << << << << {(hb,x,Gi,hb,x,Li) | all x} << << << << hz, 2, Li Lemat 21.4 Każda rozgrywka” w grze T1 jest postaci ” C0 ⇒G1 C1 ⇒G1 · · · ⇒G1 Ci ⇒G1 Ci+1 ⇒G1 Ci+2 ⇒G1 · · · ⇒G1 Cn−1 ⇒G2 Cn ⇒1 Cn+1 ⇒G3 ⇒2 · · · ⇒G3 Cn+2i ⇒i+1 Cn+2i+1 ⇒G3 Cn+2i+2 ⇒i+2 · · · · · · ⇒G3 C3n−2 ⇒n C3n−1 ⇒G3 C3n ⇒n+2 C3n+1 ⇒G3 C3n+2 ⇒n+4 C3n+3 ⇒G3 · · · · · · ⇒G3 C2i ⇒2i−n+2 C2i+1 ⇒G3 · · · Innymi slowy, zaczynajac a, na zmiane, , od pozycji n-tej, kroki lokalne i globalne nastepuj , , przy czym deklarowane reguly lokalne sa, używane dokladnie po kolejnych n − 2 krokach. Gra z automatu Pokażemy teraz jak zredukować problem niepustości dla automatów wierszowych do problemu gier na drzewach. Niech T1 bedzie gra, omawiana, powyżej i niech A = hΣA , Q, q0 , F A , %i bedzie , , A A automatem wierszowym. Definiujemy gre, T A = ha, F, {GA 1 (β) | β ∈ ΣA } ∪ {G2 , G3 }i. Jej alfabet jest iloczynem kartezjańskim Σ1 × (ΣA ∪ {⊥, ε}) × Q, a reguly definiujemy tak: strona 85 12 sierpnia 2008, godzina 14: 39 • Dla dowolnej reguly lokalnej X gry T1 i każdego β ∈ ΣA ∪{ε}, definiujemy regule, lokalna, Xβ = {(ha, β, qi, hb, ⊥, qi | q ∈ Q oraz ha, bi ∈ X}. • Dla każdej trójki ∆ = hhX, bi, hY, ci, di ∈ G3 , definiujemy zbiór ∆A zlożony z trójek (d, α, q) ss sss s s sy ss Xβ (b, ⊥, p) KKK KKKYβ KKK K% (c, ⊥, p) gdzie %(α, q) = (β, p). • Jeśli ∆ = hhX, bi, hY, ci, di ∈ G1 ∪ G2 , to ∆β jest trójka, (d, ⊥, q0 ) Xβ qqqq qqq qx qq (b, ⊥, q0 ) MMM MMYMβ MMM M& (c, ⊥, q0 ) • Dla β ∈ ΣA , przyjmujemy GA 1 (β) = {∆β | ∆ ∈ G1 }; S A A • Dalej GA {∆ | ∆ ∈ G3 }. 2 = {∆ε | ∆ ∈ G2 } i G3 = Symbol poczatkowy gry T A to a = ha0 , ⊥, q0 i, gdzie a0 jest symbolem poczatkowym w T1 . , , Wreszcie F = Σ1 × (ΣA ∪ {⊥, ε}) × F A , i to cala definicja. Nasza gra zachowuje sie, jak iloczyn kartezjański” gry T1 (pierwsza wspólrzedna etykiet) , ” i automatu A. W szczególności lemat 21.4 pozostaje prawdziwy, jeśli G1 , G2 , G3 zamienimy A A odpowiednio na GA tak: 1 (β), G2 , G3 . Każda rozgrywka wyglada , A A A A C0 ⇒G1 (β1 ) C1 ⇒G1 (β2 ) · · · ⇒G1 (βn−1 ) Cn−1 ⇒G2 A A A Cn ⇒1 Cn+1 ⇒G3 ⇒2 · · · ⇒G3 Cn+2i ⇒i+1 Cn+2i+1 ⇒G3 Cn+2i+2 ⇒i+2 · · · A A A A · · · ⇒G3 C3n−2 ⇒n C3n−1 ⇒G3 C3n ⇒n+2 C3n+1 ⇒G3 C3n+2 ⇒n+4 C3n+3 ⇒G3 · · · A A · · · ⇒G3 C2i ⇒2i−n+2 C2i+1 ⇒G3 · · · Jeśli pozycja C jest osiagalna z pozycji poczatkowej, to etykiety wszystkich wierzcholków tego , , samego poziomu maja, zawsze takie same drugie i trzecie wspólrzedne. , 1 n−1 . Ciag , pozycji C0 , C1 , C2 , . . . jak wyżej jest calkowicie zdeterminowany przez n oraz β , . . . , β Zauważmy, że β i , dla i = 1, . . . , n − 1, sa, drugimi wspólrzednymi etykiet wszystkich liści , Cn+2i−1 . Niech w oznacza slowo β 1 β 2 . . . β n−1 . Twierdzimy, że Automat A akceptuje w wtedy i tylko wtedy, gdy C0 , C1 , C2 , . . . prowadzi do pozycji końcowej. Aby to udowodnić, zalóżmy, że βkj jest symbolem zapisanym w j-tej klatce taśmy automatu, po tym jak maszyna zakończyla k − 1 faze, pracy (przeczytala cala, taśme, k − 1 razy). Inaczej j mówiac, , βk jest symbolem, który ma być czytany w k-tym przejeździe glowicy. Oczywiście β1j = β j . Dla porzadku, niech jeszcze βkn = ε. Dalej przyjmijmy, że qk,j jest stanem , maszyny tuż przed przeczytaniem j-tej klatki taśmy po raz k-ty (po k − 1 pelnych fazach). Pozostawiamy czytelnikowi udowodnienie, że: strona 86 12 sierpnia 2008, godzina 14: 39 (a, ⊥, qk,j ) (b, βkj , qk,j ) CC CC CC Y j CC βk+1 CC CC CC CC C! || || | X j | β k+1 || || | || || | }| | (c, ⊥, qk,j+1 ) (d, ⊥, qk,j+1 ) Obrazek 18: Symulacja pojedynczego kroku maszyny 1. Druga, wspólrzedn a, etykiet wszystkich liści C(2k−1)n+2j−1 jest βkj . , 2. Trzecia, wspólrzedn a, etykiet wszystkich liści C(2k−1)n+2j−2 jest qk,j . , W szczególności, druga i trzecia wspólrzedna każdego wierzcholka zależy tylko od jego wysokości , w drzewie.21 Nasza teza wynika z punktu 2, zastosowanego do stanów końcowych. Na Obrazku 18 widzimy etykiety wierzcholka na poziomie (2k − 1)n + 2j − 2 i jego synów. Jeśli %(β, q) = (α, p) to ruch globalny” zmienia etykiety postaci22 (·, β, q) na (·, ⊥, p) i prze” kazuje do nastepnej fazy informacje, o nowej literze α poprzez regule, lokalna, zawierajac , , a, pary postaci (·, α, q 0 ) → (·, ⊥, q 0 ). Nastepuj acy po nim ruch lokalny s luży do ustalenia w laściwego , , symbolu taśmy automatu (drugiej wspólrzednej) która, pobiera sie, z poprzedniej fazy. W kolej, nym ruchu globalnym w podobny sposób symulujemy dzialanie maszyny na nastepnej klatce , taśmy. Dla ilustracji rozpatrzmy sytuacje, gdy slowem poczatkowym jest β β β , a automat 1 2 3 , wierszowy przyjmuje kolejno takie konfiguracje: (ε, q0 , β1 β2 β3 ) → (γ1 , q1 , β2 β3 ) → (γ1 γ2 , q2 , β3 ) → (γ1 γ2 γ3 , q3 , ε) → → (ε, p0 , γ1 γ2 γ3 ) → (δ1 , p1 , γ2 γ3 ) → (δ1 δ2 , p2 , γ3 ) → (δ1 δ2 δ3 , p3 , ε) → → (ε, r0 , δ1 δ2 δ3 ) → · · · Odpowiada to rozgrywce, w której na kolejnych poziomach drzewa mamy takie etykiety (nad strzalkami zaznaczono litery przekazywane do nastepnej fazy): , β1 β2 β3 ε (·, ⊥, q0 ) −→ (·, ⊥, q0 ) −→ (·, ⊥, q0 ) −→ (·, ⊥, q0 ) −→ γ1 γ2 γ3 ε (·, β1 , q0 ) −→ (·, ⊥, q1 ) → (·, β2 , q1 ) −→ (·, ⊥, q2 ) → (·, β3 , q2 ) −→ (·, ⊥, q3 ) → (·, ε, q3 ) −→ (·, ⊥, p0 ) → δ δ δ ε 1 2 3 (·, γ1 , p0 ) −→ (·, ⊥, p1 ) → (·, γ2 , p1 ) −→ (·, ⊥, p2 ) → (·, γ3 , p2 ) −→ (·, ⊥, p3 ) → (·, ε, p3 ) −→ (·, ⊥, r0 ) → (·, δ1 , r0 ) −→ · · · Z powyższych rozważań ostatecznie wynika Twierdzenie 21.5 Problem inhabitacji dla typów iloczynowych jest nierozstrzygalny. 21 22 Drzewo jest nam potrzebne tylko do zapewnienia cyklicznego zachowania gry. Ignorujemy pierwsza, wspólrzedn a. , , strona 87 12 sierpnia 2008, godzina 14: 39 22 Logika drugiego rzedu , Przez logike, drugiego rzedu zazwyczaj rozumie sie, system powstaly przez rozszerzenie rachunku , predykatów (logiki pierwszego rzedu) o kwantyfikatory przebiegajace zbiory i relacje. Z kon, , struktywnego punktu widzenia, celowość takiego rozszerzenia jest watpliwa. Interpretacja , BHK nadaje bowiem taki sens kwantyfikatorowi ogólnemu: Konstrukcja, (dowodem) formuly ∀R W (R) jest metoda przeksztalcenia dowolnego znaczenia R zmiennej R w konstrukcje, stwierdzenia W (R). Aby jednak wykonać konstrukcje, dla W (R) trzeba na ogól znać sam zbiór R, tj. umieć go zdefiniować, a to nie zawsze jest możliwe, bo każda nieskończona dziedzina ma nieprzeliczalnie wiele podzbiorów. Dlatego konstruktywne rozumienie kwantyfikatora drugiego rzedu jest inne: , zmienna relacyjna przebiega predykaty definiowalne formulami. W intuicjonistycznej logice 23 drugiego rzedu przyjmuje sie, wiec , , (z grubsza ) takie reguly: Γ ` ∀X ϕ(X) Γ ` ϕ(X) Γ ` ϕ(σ) Γ ` ∀X ϕ(X) (X 6∈ FVΓ) Uwaga: Systemy klasycznej logiki drugiego rzedu, w których kwantyfikatory przebiegaja, , dowolne zbiory, nie sa, efektywnie aksjomatyzowalne. Tak nie jest w przypadku intuicjonistycznej logiki drugiego rzedu, która jest aksjomatyzowalna i dlatego rekurencyjnie przeliczalna. , Jak powiedzieliśmy, w logice drugiego rzedu obok kwantyfikatorów relacyjnych wystepuj a, , , także elementy zwyklego rachunku predykatów: wyrażenia i kwantyfikatory indywiduowe. Okazuje sie, jednak, że te ostatnie nie zawsze sa, istotne, a wiele wlasności logiki drugiego rzedu można badać w oderwaniu od jej aspektu indywiduowego. Jeżeli w formulach rachunku , predykatów drugiego rzedu zaniedbać wszystko to, co odnosi sie, do indywiduów, to otrzy, mamy formuly zdaniowe z kwantyfikatorami. Na przyklad rozpatrzmy formule, N (x), która definiuje liczby naturalne: ∀R(∀z(R(z) → R(sz)) → R(0) → R(x)) Usuniecie z niej informacji o indywiduach daje kwantyfikowana, formule, zdaniowa:, , ∀R((R → R) → R → R), w której jednoargumentowa zmienna relacyjna R zostala zastapiona zmienna, zdaniowa., W po, dobny sposób można każda, formule, przeksztalcić w formule, zdaniowa, z kwantyfikatorami. Okazuje sie, , że ten zabieg, znacznie upraszczajac , skladnie, , nie zmienia wielu istotnych wlasności naszej logiki. Zdaniowa logika drugiego rzedu , Na razie zatem bedziemy sie, zajmować tylko zdaniowa, logika, drugiego rzedu, i to wylacznie , , , fragmentem implikacyjno-uniwersalnym. Zaczynamy od skladni. Formulami nazywamy zmienne zdaniowe p, q, r, . . . i wyrażenia (σ → τ ), ∀p σ, gdzie σ i τ sa, formulami. Przez FVT(ϕ) 23 Pomijamy tu ścisla, definicje, wyrażenia ϕ(σ). strona 88 12 sierpnia 2008, godzina 14: 39 oznaczamy zbiór zmiennych zdaniowych wystepuj acych wolno w formule ϕ. Definiujemy go , , tak: FVT(p) = {p}, FVT(σ → τ ) = FVT(σ) ∪ FVT(τ ), oraz FVT(∀p σ) = FVT(σ) − {p}. Podstawienie formuly σ do formuly ϕ w miejsce wolnych wystapień zmiennej p oznaczamy , przez ϕ[p := σ] (lub przez ϕ[σ/p]). Podstawienie jest definiowane przez indukcje: , • p[p := σ] = σ oraz q[p := σ] = q; • (ψ → τ )[p := σ] = ψ[p := σ] → τ [p := σ]; • (∀p ψ)[p := σ] = ∀p ψ; • (∀q ψ)[p := σ] = ∀q ψ[p := σ], gdy q 6∈ FVT(σ); Utożsamiamy (alfa-konwersja) formuly różniace sie, tylko wyborem zmiennych zwiazanych. , , Reguly naturalnej dedukcji dla naszej logiki sa, takie: (Ax) Γ, ϕ ` ϕ (→ I) Γ, ϕ ` ψ (→ E) Γ`ϕ→ψ Γ`ϕ→ψ (∀I) Γ`ϕ Γ ` ∀p ϕ (p 6∈ F V T (Γ)) Γ`ϕ Γ`ψ (∀E) Γ ` ∀p ϕ Γ ` ϕ[p := ϑ] Uwaga: Znaczeniem zmiennej zdaniowej może być dowolna formula, zob. regule, (∀E). Te, wlasność czasem nazywa sie, full comprehension. Znaczenie formuly ϕ = ∀p ψ jest wyznaczone przez wszystkie możliwe podstawienia ψ[p := σ]. Ale ponieważ w roli σ może wystapić , samo ϕ, wiec , znaczenie formuly w sposób uwiklany zależy od niej samej. Inaczej mówiac, , nasza logika jest impredykatywna. Konsekwencja, tej wlasności jest utrudnione definiowanie i dowodzenie wlasności przez zwykla, indukcje, ze wzgledu na budowe, formuly”. , ” Twierdzenie 22.1 (Löb, Gabbay/Sobolew) Intuicjonistyczna logika zdaniowa drugiego rzedu jest nierozstrzygalna (nierozstrzygalne jest pytanie czy dana formula jest twierdzeniem). , Powyższy wynik kontrastuje ze znanym twierdzeniem z teorii zlożoności: klasyczna logika kwantyfikowanych formul boole’owskich jest PSPACE-zupelna. Zauważmy jednak, że w logice klasycznej, opartej na zerojedynkowej semantyce, każdy kwantyfikator można wyeliminować (kosztem wykladniczego wydlużenia formuly). Klasyczny rachunek zdań jest funkcjonalnie zupelny: każda, funkcje, zerojedynkowa, można zdefiniować formula., W przypadku intuicjonistycznym tak nie jest. Na przyklad formuly ¬∀p(p ∨ ¬p) i ¬¬p → ∃q((p → ¬q ∨ q) → p) nie sa, równoważne żadnej formule zdaniowej bez kwantyfikatorów. 23 System F Zgodnie z interpretacja, BHK, konstrukcja, dla ∀p ϕ jest metoda, która dla dowolnej formuly σ pozwala otrzymać konstrukcje, dla ϕ[p := σ]. Taka konstrukcja jest wiec , funkcja, określona, strona 89 12 sierpnia 2008, godzina 14: 39 na zbiorze formul, ktora dla każdego σ przyjmuje wartość ze zbioru konstrukcji ϕ[p := σ]. Zbiór takich konstrukcji odpowiada (nieformalnie) produktowi Πp∈Prop ϕ[p := σ]. Jeśli wiec , utożsamiać formuly i typy to formula uniwersalna jest typem produktowym. Patrzac , na to z innej strony, możemy powiedzieć, że term typu ∀p ϕ reprezentuje procedure, polimorficzna, z (formalnym) parametrem typowym p. Przekazanie do takiej procedury parametru aktualnego σ ustala typ bieżacej aktywacji jako ϕ[p := σ]. , System rachunku lambda, w którym typy sa, formulami zdaniowymi drugiego rzedu nazy, wamy polimorficznym rachunkiem lambda, rachunkiem lambda drugiego rzedu, polimorficz, nym rachunkiem lambda drugiego rzedu lub systemem F. Poniższe regu ly s a zarówno regulami , , przypisania typów, jak też definicja, skladni. Wyrażenie Γ ` M : σ czytamy w otoczeniu Γ ” term M ma typ σ”. Przez otoczenie rozumiemy zbiór deklaracji postaci (x : τ ), gdzie x jest zmienna, (przedmiotowa) przy tym, aby otoczenie zawsze bylo funkcja,, , a τ jest typem. Żadamy , tj. aby jedna zmienna nie byla deklarowana dwa razy. Piszemy Γ, x:ϕ zamiast Γ ∪ {(x : ϕ)} S a przez FVT(Γ) oznaczamy sume, {FVT(γ) | (x : γ) ∈ Γ, dla pewnego x}. (Var) Γ, x : ϕ ` x : ϕ Γ, x:ϕ ` M : ψ (Abs) (App) Γ ` (λx:ϕ M ) : ϕ → ψ Γ`M :ϕ (Gen) (p 6∈ F V T (Γ)) Γ ` (Λp M ) : ∀p ϕ Γ`M :ϕ→ψ Γ`N :ϕ Γ ` (M N ) : ψ (Inst) Γ ` M : ∀p ϕ Γ ` M σ : ϕ[p := σ] Skladnie, systemu F zdefiniowaliśmy w stylu Churcha, tj. tak, że typy stanowia, integralna, cześć termów. Przy ustalonym otoczeniu, deklarujacym typy zmiennych wolnych, każdy term , , ma dokladnie jeden typ, który można bez trudu ustalić. W termach moga, wystepować zarówno zmienne przedmiotowe jak typowe (zdaniowe). Ope, ratorami wiaż acymi zmienne s a acy w typach. Symbol , , , obie lambdy i kwantyfikator wystepuj , , FVT( ) odnosi sie, do zmiennych wolnych zdaniowych, a symbol FV do zmiennych wolnych przedmiotowych. Definicje sa, indukcyjne: • FV(x) = {x}; • FV(λx:ϕ M ) = FV(M ) − {x}; • FV(M N ) = FV(M ) ∪ FV(N ); • FV(Λp M ) = FV(M ); • FV(M σ) = FV(M ); • FVT(x) = ∅; • FVT(λx:ϕ M ) = FVT(ϕ) ∪ FVT(M ); • FVT(M N ) = FVT(M ) ∪ FVT(N ); • FVT(Λp M ) = FVT(M ) − {p}; 12 sierpnia 2008, godzina 14: 39 strona 90 • FVT(M σ) = FVT(M ) ∪ FVT(σ). Operacja podstawienia wystepuje w dwóch wersjach: podstawienie typu (formuly) za zmienna, , typowa, (zdaniowa) i podstawienie termu za zmienna, przedmiotowa., Definiujemy je, zaklada, jac, że zmienne zwi azane s a tak dobrane, aby nie doszlo do konfuzji, tj. stosujemy w razie , , , potrzeby domyślna, wymiane, zmiennej zwiazanej. , • x[x := P ] = P oraz y[x := P ] = y; • (M N )[x := P ] = M [x := P ]N [x := P ]; • (λx:ϕ M )[x := P ] = λx:ϕ M ; • (λy:ϕ M )[x := P ] = λy:ϕ. M [x := P ], gdzie y 6∈ FV(P ); • (M τ )[x := P ] = M [x := P ]τ ; • (Λp M )[x := P ] = Λp M [x := P ], gdzie p 6∈ FVT(P ); • x[p := σ] = x; • (M N )[p := σ] = M [p := σ]N [p := σ]; • (λx:ϕ M )[p := σ] = λx:ϕ[p := σ]. M [p := σ]; • (M τ )[p := σ] = M [p := σ]τ [p := σ]; • (Λp M )[p := σ] = Λp M ; • (Λq M )[p := σ] = Λq M [p := σ], gdzie q 6∈ FVT(σ). Przez Γ[p := σ] oznaczymy otoczenie Γ, w którym każda deklaracja (x : τ ) zostala zastapiona , przez (x : τ [p := σ]). Lemat 23.1 (1) Jeśli Γ ` M : ϕ, to Γ[p := σ] ` M [p := σ] : ϕ[p := σ]. (2) Jeśli Γ, x : τ ` M : ϕ oraz Γ ` P : τ to Γ ` M [x := P ] : ϕ. Dowód: Indukcja ze wzgledu na budowe, M . Cześć (2) wymaga lematu podobnego do , , lematu 13.1. Poniżej mamy kilka przykladów termów i ich typów (zamiast λx : τ piszemy czesto λxτ ): , • ` Λp.(λx∀p(p→p) .x(q → q)(xq) : ∀q(∀p(p → p) → q → q); • ` Λp.λf p→p λxp .f (f x) : ∀p((p → p) → (p → p)); • ` λf ∀p(p→q→p) Λpλxp .f (q→p)(f px) : ∀p(p → q → p) → ∀p(p → q → q → p). 12 sierpnia 2008, godzina 14: 39 strona 91 Twierdzenie 23.2 Dla dowolnego typu τ nastepuj ace warunki sa, równoważne: , , 1) Istnieje term zamkniety typu τ ; , 2) Formula τ jest twierdzeniem intuicjonistycznej logiki zdaniowej drugiego rzedu. , Dowód: Oczywiste. Definicja 23.3 Przez beta redukcje, w systemie F rozumiemy najmniejsza, relacje, →β w zbiorze termów zawierajac , a: , • (λx:τ.M )N −→β M [x := N ]; • (Λα.M )τ −→β M [α := τ ], i zamkniet na konteksty, tj. M →β N implikuje M P →β N P , P M →β P N , , a, ze wzgledu , λx:τ.M →β λx:τ.N , Λp M →β Λp N oraz M τ →β N τ , o ile odpowiednie wyrażenia sa, poprawnymi termami. Jak zwykle w takich przypadkach, symbol β oznacza domkniecie przechodnio-zwrotne relacji , redukcji →β . Indeks β czesto jest pomijany. Najważniejsze w lasności redukcji sa, takie: , Twierdzenie 23.4 1) Jeśli Γ ` M : τ oraz M β N to Γ ` N : τ . 2) Wlasność Churcha-Rossera: Jeżeli M β N1 oraz M β N2 to N1 β P i N2 β P , dla pewnego P . 3) Silna normalizacja: Nie istnieje nieskończony ciag sie, od jakie, redukcji rozpoczynajacy , gokolwiek (poprawnego) termu. Dowód: Cześć (2) i (3) zostawiamy na razie bez dowodu. , (1) wynika z lematu 23.1. Cześci , Uwaga: Dla termów systemu F można też rozważać relacje, eta-redukcji, zadana, regulami: • λx:τ.M x −→β M (gdy x 6∈ FV(M )); • Λα.M τ −→β (gdy α 6∈ FVT(()M )). Liczby naturalne Niech ω = ∀p((p → p) → (p → p)). Liczby naturalne sa, reprezentowane przez termy zamkniete typu ω. , n = Λpλf : (p → p)λx : p.f (f (· · · f (x))) Na przyklad 2 = Λp.λf p→p xp .f (f x). strona 92 12 sierpnia 2008, godzina 14: 39 Mówimy, że funkcja f : Nk → N jest definiowalna w systemie F, gdy istnieje taki term M : ω k → ω, że dla dowolnych n1 , · · · nk zachodzi M n1 . . . nk β f (n1 , . . . , nk ). Na przyklad dodawanie, mnożenie i potegowanie definiujemy tak: , • Add = λmn.Λp.λf x.mpf (npf x); • Mult = λmn.Λp.λf x.mp(npf )x; • Exp = λmn.Λp.λf x.m(p → p)(np). Spójniki zdaniowe W logice zdaniowej drugiego rzedu falsz można zdefiniować tak: , ⊥ = ∀p p Nietrudno zauważyć, że z falszu wszystko wynika. Jeśli M : ⊥, to M τ : τ . Można też zdefiniować pozostale spójniki zdaniowe. Przypomnijmy odpowiednie reguly naturalnej dedukcji wraz z przypisaniem termów: Koniunkcja: Alternatywa: Γ`M :ϕ Γ`N :ψ (I∧) Γ ` hM, N i : ϕ ∧ ψ Γ`M :ϕ∧ψ Γ`M :ϕ∧ψ (E∧) Γ ` π1 (M ) : ϕ Γ ` π2 (M ) : ψ Γ`M :ϕ Γ`M :ψ (I∨) Γ ` inlϕ∨ψ (M ) : ϕ ∨ ψ Γ ` inrϕ∨ψ (M ) : ϕ ∨ ψ Γ ` M : ϕ ∨ ψ Γ, x : ϕ ` P : ϑ Γ, y : ψ ` Q : ϑ (E∨) Γ ` case M of [x]P, [y]Q : ϑ Redukcje zwiazane z koniunkcja, i alternatywa, sa, nastepuj ace: , , , π1 (hM, N i) → M , π2 (hM, N i) → N ; case inl(P ) of [x]M, [y]N → M [x := P ]; case inr(Q) of [x]M, [y]N → N [y := Q]. Definicje, alternatywy w systemie F otrzymamy, jeśli spróbujemy wyrazić w logice drugiego rzedu pojecie sumy jako najmniejszego zbioru zawierajacego oba skladniki: , , , x ∈ A ∪ B ⇔ ∀P (A ⊆ P → B ⊆ P → x ∈ P ), lub inaczej: (A ∪ B)(x) ⇔ ∀P (∀y(A(y) → P (y)) → ∀y(B(y) → P (y)) → P (x)). strona 93 12 sierpnia 2008, godzina 14: 39 Po usunieciu informacji o indywiduach otrzymujemy definicje, alternatywy: , σ ∨ τ = ∀p((σ → p) → (τ → p) → p), gdzie zmienna p jest nowa, tj. p 6∈ FVT(σ) ∪ FVT(τ ). Pozostaje sprawdzić, że nasza definicja jest dobra. Wystarczy w tym celu zdefiniować inl, inr i case w taki sposób, żeby reguly (I∨) i (E∨) byly poprawne. Robimy to tak: • inlσ∨τ M = Λpλuσ→p λv τ →p .uM ; • inrσ∨τ M = Λpλuσ→p λv τ →p .vM ; • case M of [x]P ϑ , [y]Qϑ = M ϑ(λxσ .P )(λy τ Q). Nietrudno sprawdzić, że typowanie jest poprawne, co w szczególności oznacza, że nasza definicja spelnia reguly wnioskowania dla alternatywy. W istocie spelniony jest silniejszy warunek: także redukcje sa, zgodne z oczekiwaniami, tyle tylko, że może wymagać wiecej niż , jednego kroku: case inl(P ) of [x]M, [y]N M [x := P ]; case inr(Q) of [x]M, [y]N N [y := Q]. Koniunkcje, definiujemy tak: σ ∧ τ = ∀p((σ → τ → p) → p), gdzie zmienna p jest nowa (patrz wyżej), a pare, i rzuty tak: • hM, N i = Λpλy σ→τ →p .yM N ; • π1 (M ) = M σ(λxσ λy τ .x); • π2 (M ) = M τ (λxσ λy τ .y). Latwo widzieć, że ta definicja spelnia zarówno reguly typowania jak i redukcji. Kwantyfikator szczególowy Kwantyfikator szczególowy drugiego rzedu ma takie reguly naturalnej dedukcji: , (∃I) (∃E) Γ ` σ[p := τ ] Γ ` ∃p. σ Γ ` ∃p. σ Γ ` ρ (p 6∈ F V (Γ, ρ)) Γ, σ ` ρ strona 94 12 sierpnia 2008, godzina 14: 39 Interpretujemy go tak: typ ∃p. σ jest typem abstrakcyjnym, w którym zmienna p reprezentuje typ prywatny. Na przyklad, jeśli stos(p) = p × (p → p) × (p → ω) × (ω × p → p), to typ ∃p stos(p) jest abstrakcyjnym typem struktury stosowej, w której mamy stos pusty jako stala, oraz operacje pop, top i push.) Operacja pack tworzy obiekt typu abstrakcyjnego ukrywajac typu: , prywatna, cześć , Γ ` M : σ[p := τ ] (pack) Γ ` pack M, τ to ∃p. σ : ∃p. σ Taki obiekt może być użyty tam, gdzie implementacja typu prywatnego nie ma znaczenia: (unpack) Γ ` M : ∃p. σ Γ, x : σ ` N : ρ (p 6∈ F V (Γ, ρ)) Γ ` let M be x, p in N : ρ Nastepuj aca regula redukcji mówi o tym, co sie, wtedy dzieje: , , let (pack M, τ to ∃p. σ) be x, p in N −→β N [p := τ ][x := M ]. Definicja kwantyfikatora szczególowego w systemie F przypomina definicje, alternatywy, i może być objaśniona w podobny sposób. Mamy tu wytarcie” definicji sumy uogólnionej wyrażonej ” w jezyku drugiego rzedu. Taka suma to najmniejszy zbiór zawierajacy wszystkie skladniki. , , , Poniżej, zmienna q musi być nowa, tj. q 6∈ FVT(σ) ∪ {p}. ∃p σ = ∀q(∀p(σ → q) → q). Zauważmy, że powyższa definicja jest wzmocnieniem definicji klasycznej przez prawo de Morgana: ¬∀p¬σ = ∀p(σ → ⊥) → ⊥ Teraz możemy zdefiniować pack i let: • pack M, τ to ∃p. σ = Λqλz ∀p(σ→q) .zτ M ; • let M be x, p in N ρ = M ρ(Λpλxσ .N ). i sprawdzić, że wszystko dziala jak trzeba. 24 System F w stylu Curry’ego Wariant systemu F w stylu Curry’ego określony jest przez nastepuj ace reguly przypisania , , typów dla termów czystego” rachnku lambda. (Typy i otoczenia typowe określone sa, tak ” samo jak dla wersji Churcha.) Γ, x:τ ` x : τ (APP) Γ`N :τ →σ Γ`M :τ Γ ` NM : σ Γ, x : τ ` M : σ (ABS) Γ ` λx.M : τ → σ strona 95 12 sierpnia 2008, godzina 14: 39 (GEN) Γ`M :σ (p 6∈ F V (Γ)) Γ ` M : ∀p σ Γ ` M : ∀p σ (INST) Γ ` M : σ[p := τ ] Reguly dla abstrakcji i aplikacji sa, takie same jak dla rachunku z typami prostymi w stylu Curry’ego. Reguly wprowadzania i eliminacji kwantyfikatora ogólnego (zwane odpowiednio regulami generalizacji and instancjacji) reprezentuja, idee, polimorfizmu implicite: obiekt o typie uniwersalnym ∀p τ ma wszystkie typy postaci τ [p := σ]. Definicja 24.1 Operacja wycierania typów jest określona równaniami: |x| = x |M N | = |M ||N | |λx:σ. M | = λx. |M | |Λp. M | = |M | |M τ | = |M | Fakt 24.2 Asercja Γ ` M : τ jest wyprowadzalna w stylu Curry’ego wtedy i tylko wtedy, gdy istnieje taki term M0 w stylu Churcha, że |M0 | = M , oraz Γ ` M0 : τ . Dowód: Latwy. O termie N w stylu Churcha można myśleć jak o wyprowadzeniu typu dla termu |N |. Nastepu, jace , twierdzenie w istocie stwierdza, że każda redukcja w |N | odpowiada pewnej redukcji w N . Twierdzenie 24.3 Jeśli Γ ` M : τ w styly Curry’ego, oraz M →β M 0 to Γ ` M 0 : τ . Zanim zajmiemy sie, dowodem twierdzenia 24.3, zauważmy, że sprawa wcale nie jest taka oczywista. Przyklad 24.4 Rozpatrzmy nastepuj ace przypisanie typu: , , x : p → ∀q (q → q) ` λy. xy : p → q → q. Chociaż mamy eta-redukcje, λy. xy →η x, to jednak: x : p → ∀q (q → q) 6` x : p → q → q. Zauważmy, że termowi λy. xy odpowiada w naszym przykladzie term Churcha λy:p. xyq, który nie jest eta-redeksem. A wiec , przyczyna, tego, że system F w stylu Curry’ego nie jest zamkniety ze wzgledu na η-redukcje jest to, że wycieranie typów odslania nowe” redeksy. , , ” John Mitchell pokazal, że określajac , odpowiednia, relacje, v i rozszerzajac , system o regule, Γ ` M : τ, τ vσ Γ ` M : σ, otrzymuje sie, rachunek zamkniety ze wzgledu na η-redukcje. , , 12 sierpnia 2008, godzina 14: 39 strona 96 Dowód twierdzenia 24.3 Na rozgrzewke, mamy takie proste obserwacje: Lemat 24.5 Dla termów w stylu Churcha: 1. |M [p := τ ]| = |M | oraz |M [x := N ]| = |M |[x := |N |]; 2. Jeśli M →β N to |M | →β |N |. Dowód twierdzenia 24.3 wymaga oczywiście odpowiedniego lematu o generowaniu. Aby taki lemat sformulować potrzebujemy pewnej pomocniczej relacji na typach. Piszemy σ τ , gdy typ σ jest postaci ∀~ p σ 0 , gdzie ∀~ p jest ciagiem kwantyfikatorów uniwersalnych, typ σ 0 nie , zaczyna sie, od kwantyfikatora, oraz zachodzi równość τ = ∀~q.σ 0 [~ p := ρ ~], dla pewnych typów ρ ~, i pewnych zmiennych ~q, nie wystepuj acych wolno w σ. Wtedy Γ ` M : σ implikuje Γ ` M : τ , , i wystarcza, do tego reguly (GEN) i (INST). Mamy też nieco slabsze twierdzenie odwrotne: Lemat 24.6 Jeśli asercje, Γ ` M : τ otrzymano z Γ ` M : σ za pomoca, ciagu zastosowań regul , (GEN) i (INST), to ∀~ p σ ∀~q τ , gdzie p~ = FVT(σ) − FVT(Γ) oraz ~q = FVT(τ ) − FVT(Γ). Dowód: Indukcja ze wzgledu na liczbe, kroków. , Lemat 24.7 Jeśli Γ ` M : τ to Γ[p := ρ] ` M : τ [p := ρ]. Dowód: Indukcja ze wzgledu na rozmiar wyprowadzenia Γ ` M : τ , Lemat 24.8 (o generowaniu) 1. Jeśli Γ ` x : τ to Γ(x) τ . 2. Jeśli Γ ` M N : τ to Γ ` M : % → σ oraz Γ ` N : % dla pewnych % i σ, takich że ∀~ p σ τ , gdzie p~ = FVT(σ) − FVT(Γ). 3. Jeśli Γ ` λx M : τ , oraz x 6∈ Dom(Γ), to τ = ∀~ p(% → σ), gdzie Γ, x:% ` M : σ a zmienne p~ nie sa, wolne w Γ. Dowód: Wyprowadzenie typu dla zmiennej zaczyna sie, zawsze od aksjomatu Γ ` x : Γ(x), po którym nastepuje ciag , , zastosowań ”stacjonarnych” regul (GEN) i (INST). Teza wynika wiec bezpośrednio z lematu 24.6. Podobnie jest dla aplikacji. W przypadku abstrakcji trzeba , dodatkowo skorzystać z lematu 24.7. Poniższe reguly tworza, system przypisania typów, który jest syntaktycznie zorientowany” ” w takim sensie: ostatnia regula użyta w wyprowadzeniu typu dla termu M jest wyznaczona przez postać termu M . strona 97 12 sierpnia 2008, godzina 14: 39 (VAR’) Γ`x:τ jeśli (x : σ) is in Γ i σ τ (APP’) Γ ` M : τ → ρ, Γ ` N : τ jeśli ∀~ p ρ σ, gdzie p~ = FVT(ρ) − FVT(Γ) Γ ` (M N ) : σ (ABS’) Γ, x:τ ` M : σ Γ ` λx.M : ∀~ p (τ → σ) jeśli p~ ∩ FVT(Γ) = ∅ Konsekwencja, lematu o generowaniu jest: Lemat 24.9 Asercja Γ ` M : σ jest wyprowadzalna w F wtedy i tylko wtedy, gdy jest wyprowadzalna w systemie jak wyżej. Dowód twierdzenia: Przypuśćmy teraz, że Γ ` (λx.M )N : σ. Na mocy lematu 24.9 mamy Γ, x:τ ` M : ρ oraz Γ ` N : τ , dla pewnych τ i ρ. Na dodatek ∀~ p ρ σ, gdzie p~ = FVT(ρ) − FVT(Γ). Stad nietrudno wywnioskować Γ ` M [x := N ] : ρ a to z kolei , implikuje Γ ` M [x := N ] : σ. Termy typowalne i nie Używajac , polimorfizmu, można przypisywać typy rozmaitym termom, które nie sa, typowalne w typach prostych. Na przyklad termy λx. xx i 2K sa, teraz typowalne. Jak sie, zaraz okaże, termy typowalne maja, wlasność SN, ale nie na odwrót: kontrprzykladem jest silnie normalizowalny term (λzy. y(zI)(zK))(λx. xx), który nie jest typowalny w systemie F. Przyczyna, jest niemożność znalezienia takiego typu dla (λx. xx), który pasowalby” zarówno do argumentu I jak i K. Innym przykladem jest 22K. ” Zauważmy jednak, że term 2(2K) jest typowalny. Niestety, zachodzi nastepuj ace twierdzenie: , , Twierdzenie 24.10 (Wells) Problem typowalności24 i problem sprawdzania typu25 sa, dla systemu F nierozstrzygalne. 25 Silna normalizacja Naiwna próba uogólnienia metody Taita na typy polimorficzne polega na zdefiniowaniu: \ [[∀p τ ]] = {[[τ [p := σ]]] | σ — dowolny typ}. Ale ta definicja nie jest dobrze ufundowana: nie da sie, zdefiniować [[∀p τ ]] bez wcześniejszego zdefiniowania np. [[τ [p := ∀p τ ]]], co z kolei wymaga definicji [[∀p τ ]]. Pomysl Girarda, który 24 25 Dany term M , czy istnieja, takie Γ i τ , że Γ ` M : τ ? Dane sa, Γ, M i τ . Czy Γ ` M : τ ? 12 sierpnia 2008, godzina 14: 39 strona 98 wykorzystamy, zwany metoda, kandydatów”, polega na tym, aby nie definiować zbiorów [[τ ]] ” w sposób absolutny”, w szczególności nie przyjmować z góry [[p]] := SN dla zmiennych. ” Zamiast tego należy określić warunki jakie zbiory [[τ ]] powinny spelniać i rozważać dowolne wybory zbiorów [[p]], jak gdyby to byly wartościowania” zmiennych typowych. ” Powiemy wiec, że zbiór termów X jest kandydatem26 (albo, że jest rodzina, normalna), , , jeżeli X ma trzy wlasności z lematów 13.5–13.7: 1) X ⊆ SN. 2) Jeśli N1 , . . . , Nk ∈ SN to xN1 . . . Nk ∈ X. 3) Jeśli M [x := N0 ]N1 . . . Nk ∈ X, oraz N0 ∈ SN to (λx.M )N0 N1 . . . Nk ∈ X. Niech G bedzie rodzina, wszystkich kandydatów. Nietrudno zauważyć, że SN ∈ G a zatem , G 6= ∅. Wartościowaniem w G nazwiemy dowolna, funkcje, ξ : U → G. Teraz dla dowolnego wartościowania ξ i dowolnego typu τ definiujemy zbiór [[τ ]]ξ : [[p]]ξ = ξ(p); [[σ → τ ]]ξ = T {M | ∀N (N ∈ [[σ]]ξ ⇒ M N ∈ [[τ ]]ξ )}; [[∀p.σ]]ξ = X∈G [[σ]]ξ(p7→X) . Lemat 25.1 Dla dowolnych ξ i σ zachodzi [[σ]]ξ ∈ G. Dowód: Dowód jest przez indukcje, ze wzgledu na τ . Jeśli τ jest zmienna, to [[τ ]]ξ = SN ∈ G , i dobrze. Przypadek τ = ∀p σ wynika z prostej obserwacji: iloczyn rodziny kandydatów jest kandydatem. Niech wiec , τ = σ → ρ i niech M ∈ [[σ → ρ]]ξ . Weźmy zmienna, x : σ. Z zalożenia indukcyjnego (2) mamy x ∈ [[σ]]ξ , wiec , z definicji M x ∈ [[ρ]]ξ . A wiec , M x ∈ SN, z zalożenia indukcyjnego (1). Tym bardziej M x ∈ SN. Pokazaliśmy (1). W punkcie (2) mamy pokazać, że xN1 . . . Nk P ∈ [[ρ]]ξ , dla każdego P ∈ [[σ]]ξ . Ale P ∈ SN z zalożenia indukcyjnego (1), wiec , teza wynika z zalożenia indukcyjnego (2) dla ρ. Zostaje warunek (3). Niech wiec , M [x := N0 ]N1 . . . Nk ∈ [[σ → ρ]]ξ , oraz N0 ∈ SN. Mamy pokazać, że dla P ∈ [[σ]]ξ musi zachodzić (λx.M )N0 N1 . . . Nk P ∈ [[ρ]]ξ . Ale to wynika z zalożenia indukcyjnego (3) dla ρ. Lemat 25.2 • [[σ[p := τ ]]]ξ = [[σ]]ξ(p7→([[τ ]]ξ ) . • [[σ]]ξ = [[σ]]ξ0 , gdy ξ(p) = ξ 0 (p) dla p ∈ FVT(σ). Dowód: 26 Indukcja ze wzgledu na σ. , Oryginalna nazwa: candidat de reductibilité strona 99 12 sierpnia 2008, godzina 14: 39 Lemat 25.3 Niech Γ ` M : τ oraz FV(M ) = {x1 , . . . , xk } i przy tym Ni ∈ [[Γ(xi )]]ξ , dla i = 1, . . . , k. Wtedy M [x1 := N1 , . . . , xk := Nk ] ∈ [[τ ]]ξ . Dowód: Dowód jest przez indukcje, ze wzgledu na wyprowadzenie Γ ` M : τ , przez , przypadki w zależności od ostatniej użytej reguly. (VAR) Przypuśćmy, że Γ ` xi : Γ(xi ). Wtedy term M [x1 := N1 , . . . , xk := Nk ] to po prostu Ni , wiec , teza wynika wprost z zalożenia. (ABS) Przypuśćmy, że Γ ` λx.M : σ → ρ otrzymano z przeslanki Γ, x : σ ` M : ρ. Niech P ∈ [[σ]]ξ . Mamy pokazać, że ((λx.M )[x1 := N1 , . . . , xk := Nk ])P ∈ [[ρ]]ξ . Ponieważ możemy zalożyć, że x nie jest wolne w termach Ni , wiec , mamy (λx.M )[x1 := N1 , . . . , xk := Nk ] = λx.M [x1 := N1 , . . . , xk := Nk ]. Z zalożenia indukcyjnego M [x1 := N1 , . . . , xk := Nk ][x := P ] = M [x1 := N1 , . . . , xk := Nk , x := P ] ∈ [[ρ]]ξ , wiec , teza wynika z warunku (3) definicji kandydata. (APP) Przypuśćmy, że Γ ` M N : τ otrzymano z przeslanek Γ ` M : σ → τ i Γ ` N : σ. Z zalożenia indukcyjnego otrzymujemy, że M [x1 := N1 , . . . , xk := Nk ] ∈ [[σ → τ ]]ξ a także N [x1 := N1 , . . . , xk := Nk ] ∈ [[σ]]ξ . Stad , (M N )[x1 := N1 , . . . , xk := Nk ] ∈ [[τ ]]ξ . (GEN) Przypuśćmy, że Γ ` M : ∀pτ otrzymano z przeslanki Γ ` M : τ , i przy tym p nie należy do FVT(Γ). Niech M 0 = M [x1 := N1 , . . . , xk := Nk ], gdzie Ni ∈ [[Γ(xi )]]ξ , dla i = 1, . . . , k. Z zalożenia indukcyjnego M 0 ∈ [[τ ]]ν przy dowolnym ν, spelniajacym warunek Ni ∈ [[Γ(xi )]]ν , , dla i = 1, . . . , k. Skoro p 6∈ FVT(Γ(xi )) to [[Γ(xi )]]ξ = [[Γ(xi )]]ξ(p7→X) , dla dowolnych i, X. 0 Zatem M 0 ∈ [[τ ]]ξ(p7→X) dla dowolnego X ∈ G, a wiec , M ∈ [[∀p τ ]]ξ . (INST) Przypuśćmy, że Γ ` M : σ[p := τ ] otrzymano z Γ ` M : ∀p σ. Z zalożenia indukcyjnego M [x1 := N1 , . . . , xk := Nk ] ∈ [[∀pσ]]ξ , a wiec , także M [x1 := N1 , . . . , xk := Nk ] ∈ [[σ]]ξ(p7→[[τ ]]ξ ) = [[σ[p := τ ]]]ξ i już. Twierdzenie 25.4 System F w wersji Curry’ego ma wlasność silnej normalizacji. Dowód: Jeśli Γ ` M : τ dla pewnych Γ i τ to z poprzedniego lematu wynika, że dla dowolnego ξ mamy M ∈ [[τ ]]ξ , bo x ∈ [[Γ(x)]]ξ dla dowolnej zmiennej x. Teza wynika wiec , stad, , że [[τ ]]ξ ⊆ SN. Twierdzenie 25.5 System F w wersji Churcha ma wlasność silnej normalizacji. Dowód: Przypuśćmy, że mamy nieskończony ciag , redukcji M = M0 → M1 → M2 → · · · strona 100 12 sierpnia 2008, godzina 14: 39 Nietrudno zauważyć, że wtedy |M | = |M0 | |M1 | |M2 | · · · gdzie |Mi | sa, jak w definicji 24.1, a symbol oznacza zawsze → lub =. Ponieważ termy typowalne w systemie F w wersji Curry’ego maja, wlasność SN (twierdzenie 25.4) wiec , poczynajac od pewnego miejsca, termy |M | musz a być identyczne. To znaczy, że prawie wszystkie n , , redukcje w naszym ciagu s a typowe”, tj. postaci (Λp.N )τ −→q N [p := τ ]. Skoro każdorazowo , ,” znika jedno wystapienie symbolu Λ, to nasz ci ag , , nie może być nieskończony. Twierdzenie 25.6 System F ma wlasność Churcha-Rossera.27 Dowód: Wlasność Churcha-Rossera wynika z lematu Newmana (silna normalizacja wraz ze slaba, wlasnościa, Churcha-Rossera implikuje wlasność Churcha-Rossera). 26 System Fω O typie τ , który ma zmienna, wolna, p, można myśleć jak o operacji λp τ , która zaaplikowana do argumentu σ daje w wyniku pewien typ τ (σ). Ten sposób myślenia zostal zalegalizowany w systemie Fω , zwanym polimorficznym rachunkiem lambda wyższego rzedu. Taka, opera, cje, λp τ nazywamy tutaj konstruktorem typowym. Raz dopuściwszy operacje na typach, nie widzimy nic zdrożnego we wprowadzeniu także operacji na konstruktorach, operacji na takich operacjach itd. Formalizacje, powyższego zaczynamy od pojecia rodzaju (ang. kind ). Mamy stala, ∗ (rodzaj , wszystkich typów) a ponadto jeśli ∇1 i ∇2 sa, rodzajami, to ∇1 ⇒ ∇2 jest rodzajem. Dla każdego rodzaju ∇, definiujemy konstruktory tego rodzaju przez indukcje: , • Zmienna konstruktorowa rodzaju ∇ jest konstruktorem rodzaju ∇. • Jeśli ϕ jest konstruktorem rodzaju ∇1 ⇒ ∇2 i τ jest konstruktorem rodzaju∇1 , to ϕτ jest konstruktorem rodzaju ∇2 . • Jeśli α jest zmienna, konstruktorowa, rodzaju ∇1 i τ jest konstruktorem rodzaju ∇2 , to λα τ jest konstruktorem rodzaju ∇1 ⇒ ∇2 . • Jeśli α jest zmienna, konstruktorowa, dowolnego rodzaju i τ jest konstruktorem rodzaju ∗, to ∀α τ jest konstruktorem rodzaju ∗. • Jeśli τ i σ sa, konstruktorami rodzaju ∗, to τ → σ jest konstruktorem rodzaju ∗. Piszemy τ : ∇ na oznaczenie tego, że τ jest konstruktorem rodzaju ∇. Konstruktory rodzaju ∗ nazywamy typami . Jak dla F podstawienie (konstruktora na zmienna, konstruktorowa) , definiujemy przez indukcje. , 27 W obu wersjach. strona 101 12 sierpnia 2008, godzina 14: 39 • α[α := ϕ] = ϕ; • β[α := ϕ] = β; • (ϑψ)[α := ϕ] = ϑ[α := ϕ]ψ[α := ϕ]; • (σ → ρ)[α := ϕ] = σ[α := ϕ] → ρ[α := ϕ]; • (∀α σ)[α := ϕ] = ∀α σ; • (∀β σ)[α := ϕ] = ∀β σ, jeśli α 6∈ F V (σ); • (∀β σ)[α := ϕ] = ∀β σ[α := ϕ], jeśli α ∈ F V (σ) i β 6∈ F V (ϕ); • (λα ϑ)[α := ϕ] = λα ϑ; • (λβ ϑ)[α := ϕ] = λβ ϑ, jeśli α 6∈ F V (ϑ); • (λβ ϑ)[α := ϕ] = λβ ϑ[α := ϕ], jeśli α ∈ F V (ϑ) i β 6∈ F V (ϕ); Zauważmy, że mamy teraz dwie operacje wiaż zmienne konstruktorowe i typowe: lambde, , ace , i kwantyfikator. Alfa-konwersja jest określona warunkami • ∀α τ =α ∀β (τ [α := β]), gdzie β nie jest wolne w τ ; • λα τ =α λβ (τ [α := β]), gdzie β nie jest wolne w τ ; β does not occur free in τ ; • τ → ρ =α τ 0 → ρ0 i ∀α τ =α ∀α τ 0 gdzie τ =α τ 0 i ρ =α ρ0 ; • τ ρ =α τ 0 ρ0 i λα τ =α λα τ 0 , gdzie τ =α τ 0 i ρ =α ρ0 ; Oczywiście utożsamiamy alfa-równoważne konstruktory. Na konstruktorach określa sie, beta-redukcje: , (β) (λα σ)τ =⇒ σ[α := τ ]. Z silnej normalizacji dla typów skończonych latwo wywnioskować, że każdy konstruktor jest silnie normalizowalny. Wlasność Churcha-Rossera też zachodzi. Przez nf (σ) oznaczymy postać normalna, typu σ. Termy Churcha System Fω w wersji Churcha różni sie, od systemu F tym, że zamiast aplikacji i abstrakcji typowej mamy aplikacje, i abstrakcje, konstruktorowa., Jeśli wiec , M : ∀α σ, gdzie α : ∇, to dopuszczamy termy postaci M ϕ : nf (σ[α := ϕ]), gdzie ϕ jest dowolnym konstruktorem rodzaju ∇. A jeśli zmienna konstruktorowa α : ∇ nie wystepuje wolno w typie żadnej zmien, nej wolnej termu M , to możemy utworzyć polimorficzna, abstrakcje, Λα M typu ∀α M . Tak określony rachunek ma wlasność Churcha-Rossera i wlasność silnej normalizacji. strona 102 12 sierpnia 2008, godzina 14: 39 Termy Curry’ego System Fω w wersji Curry’ego jest zadany nastepuj acymi regulami przypisania typów. , , VAR Γ`x:σ APP Γ`M :σ→τ Γ`N :σ Γ ` (M N ) : τ ABS Γ ∪ {x : σ} ` M : τ Γ ` (λx M ) : σ → τ INST Γ ` M : ∀α σ Γ ` M : nf (σ[α := τ ]) GEN Γ`M :σ Γ ` M : ∀α σ gdy Γ(x) = σ α 6∈ FV(Γ) Zamiast normalizacji typu w regule (INST) można przyjać , dodatkowa, regule, konwersji: Γ`M :σ Γ`M :τ CNV gdy σ =β τ Przyklad Rozpatrzmy nastepuj acy term , , M = (λx xxK)2, gdzie K = λxy. x i 2 = λf y. f (f y). Ten term jest typowalny w Fω , a jedyne nietrywialne rodzaje jakich potrzebujemy to ∗ ⇒ ∗ i ∗ ⇒ ∗ ⇒ ∗. Uwaga: ten przyklad jest trudniejszy niż term 22K, bo mamy tylko jedna, dwójke. , Poniżej p i q sa, zmiennymi typowymi, δ, γ i β sa, zmiennymi konstruktorowymi rodzaju ∗ ⇒ ∗, a ξ jest zmienna, konstruktowa, rodzaju ∗ ⇒ ∗ ⇒ ∗. Niech κ = ∀pδ (p → q → p), i niech L = ∀pγ (ξp(∀pδ (p → γp)) → ξ(βp)(∀pδ (p → γ(γp)))). Rozpatrzmy otoczenie zlożone z deklaracji: {y : ξpκ, f : L} W tym otoczeniu wyprowadzimy f y : ξ(βp)(∀pδ (p → q → q → p)), 12 sierpnia 2008, godzina 14: 39 strona 103 bo zmienna γ w typie f może być zastapiona konstruktorem λp. q → p. Inna możliwość to , podstawienie na γ konstruktora λp. q → q → p, oraz podstawienie βp na p. To pozwala wyprowadzić f (f y) : ξ(β(βp))σ, gdzie σ = ∀pδ (p → q → q → q → q → p). Zauważmy, że p i γ nie sa, wolne w L, wiec , w pustym otoczeniu mamy: 2 : ∀ξpβ (L → ∀pγ (ξpκ → ξ(β(βp))σ). Oznaczmy powyższy typ przez τ . Chcemy znaleźć typ dla termu xxK w otoczeniu, w którym zmienna x ma typ τ . Typem K bedzie oczywiście κ. Typ drugiego wystapienia x otrzy, , mamy jako instancje, τ : podstawimy na ξ rzutowanie typowe λp1 p2 . p1 . Otrzymamy typ ∀pβ (∀pγ (p → βp) → ∀pγ (p → β(βp))), alfa-równoważny typowi τ2 = ∀pγ (∀pδ (p → γp) → (∀pδ (p → γ(γp)))). Pierwsze wystapienie x otrzyma typ otrzymany z τ przez podstawienie drugiego rzutowania , λp1 p2 . p2 , a mianowicie typ ∀pβ (τ2 → ∀pγ(κ → ∀pδ (p → q → q → q → q → p))). Pozostaje pozbyć sie, z tego typu poczatkowych kwantyfikatorów (za pomoca, trywialnego podstawienia) , i mamy taki typ dla x: τ1 = τ2 → ∀pγ(κ → σ). Poprawne typowanie dla xxK jest już latwe. Drugi przyklad Teraz (już bez dowodu) przyklad termu, który ma wlasność silnej normalizacji, ale nie jest typowalny w Fω . Oto on: (λx. z(x1)(x10 ))(λy. yyy) Powyżej 1 oznacza λf u. f u, a 10 oznacza λvg. gv. Nierozstrzygalność Fakt 26.1 Nastepuj ace problemy sa, nierozstrzygalne dla systemu Fω : , , • Sprawdzanie typu: dane Γ, M, τ , pytamy czy Γ ` M : τ ? • Typowalność: dane M , pytamy czy istnieja, takie Γ, τ , że Γ ` M : τ ? Szkic dowodu cześci pierwszej: Skorzystamy z nierozstrzygalności problemu unifikacji , drugiego rzedu (twierdzenie 15.5). Wiadomo, że problem ten jest już nierozstrzygalny dla , sygnatury zlożonej z jednego dwuargumentowego symbolu funkcyjnego → (w notacji infiksowej) i dwóch stalych α i β. Co wiecej, bez straty ogólności można ograniczyć sie, do poje, dynczych równań postaci τ = ρ, gdzie niewiadome (dla uproszczenia wszystkie niewiadome 12 sierpnia 2008, godzina 14: 39 strona 104 sa, dwuargumentowymi symbolami funkcyjnymi) wystepuj ace zbiory. , , w τ i ρ tworza, rozlaczne , 0 (Zauważmy bowiem, że dla dwuargumentowych niewiadomych ζ i ζ , równania ζαβ = ζ 0 αβ 0 i ζβα = ζ 0 βα wymuszaja” każdego rozwiazania , równość ζ = ζ , tj. odpowiednie wspólrzedne , , ” musza, być równe). Zalóżmy wiec, ze dane jest równanie τ = ρ, gdzie niewiadome ζ1 , . . . , ζk wystepuj a, w τ , , , a niewiadome ζk+1 , . . . , ζn wystepuj a, w ρ. Pytanie o rozwiazanie tego równania sprowadzamy , , do pytania o to, czy termowi Ky(x(xy)) można przypisać typ p w otoczeniu zlożonym z deklaracji (y : ∀pp) i (x : ∀ζ1 , . . . , ζn (τ → ρ) ). Jest tak wtedy i tylko wtedy, gdy możliwa jest taka instancjacja zmiennych ζi , przy której możliwe jest skladanie x ze soba,, tj. wtedy, gdy nasze równanie ma rozwiazanie. , Twierdzenie 26.2 Problem niepustości typu w systemie Fω jest nierozstrzygalny. Dla dowodu twierdzenia 26.2 przypomnimy pojecie automatu dwulicznikowego. Można go , zdefiniować jako trójke, uporzadkowan a, M = hQ, q0 , qf , δi, gdzie Q to oczywiście zbiór stanów, , q0 i qf to stan poczatkowy i końcowy, a funkcja przejścia δ przypisuje każdemu stanowi , (oprócz qf ) pewna, instrukcje. Instrukcje mog a, być takie (dla i = 1, 2 oraz p, p0 ∈ Q): , 1. c1 := c1 + 1; goto p; 2. c2 := c2 + 1; goto p; 3. c1 := c1 − 1; goto p; 4. c2 := c2 − 1; goto p; 5. if c1 = 0 then goto p else goto p0 ; 6. if c2 = 0 then goto p else goto p0 . Konfiguracja automatu to trójka hq, m, ni, gdzie q ∈ Q oraz m, n ∈ N. Konfiguracja poczatkowa , ma postać hq0 , 0, 0i, a każda konfiguracja postaci hqf , m, ni jest końcowa. Relacja przejścia →M pomiedzy konfiguracjami jest określona tak: , • hq, m, ni →M hp, m + 1, ni, gdy δ(q) jest postaci (1); • hq, m, ni →M hp, m, n + 1i, gdy δ(q) jest postaci (2); • hq, m + 1, ni →M hp, m, ni, gdy δ(q) jest postaci (3); • hq, m, n + 1i →M hp, m, ni, gdy δ(q) jest postaci (4); • hq, 0, ni →M hp, 0, ni, gdy δ(q) jest postaci (5); • hq, m + 1, ni →M hp0 , m + 1, ni, gdy δ(q) jest postaci (5); • hq, m, 0i →M hp, m, 0i, gdy δ(q) jest postaci (6); • hq, m, n + 1i →M hp0 , m, n + 1i, gdy δ(q) jest postaci (6); strona 105 12 sierpnia 2008, godzina 14: 39 Jak widać, wykonanie instrukcji (1) i (2) jest niemożliwe w przypadku gdy odpowiedni licznik ma wartość zero. Jak zwykle M oznacza domkniecie przechodnio-zwrotne relacji →M . , Mówimy, że maszyna M zatrzymuje sie, gdy hq , 0, 0i 0 M hqf , m, ni, dla pewnych m, n. , Twierdzenie 26.3 Problem stopu dla automatów dwulicznikowych (czy dany automat sie, zatrzymuje?) jest nierozstrzygalny. Szkic dowodu: Naturalnym uogólnieniem pojecia automatu dwulicznikowego jest automat , z dowolna, liczba, liczników. Nietrudno pokazać, że obliczenie dowolnej maszyny Turinga może być symulowane przez pewien automat licznikowy (przy pomocy odpowiedniego kodowania zawartości taśmy, polożenia glowicy itd. jako liczb naturalnych). Pozostaje wiec , pokazać, jak zastapić np. pieć , , liczników przez dwa. Najpierw zauważmy, że używajac , drugiego licznika do celów pomocniczych możemy pomnożyć wartość licznika pierwszego przez ustalona, liczbe, , na przyklad 7. W tym celu najpierw zmniejszamy licznik drugi aż do zera, a potem powtarzamy taka, czynność: odejmujac , 1 od licznika pierwszego, dodajemy 7 (tj. siedmiokrotnie dodajemy jedynke) , do licznika drugiego. Tak postepujemy aż do wyzerowania pierwszego licznika. Podobnie możemy dzielić przez 7, , a także sprawdzić, czy wartość licznika jest podzielna przez 7. Piatk liczników i, j, k, l, m) reprezentujemy za pomoca, , e, liczb naturalnych (zawartość pieciu , liczby 2i 3j 5k 7l 11m , która, przechowujemy jako wartość jednego z dwóch liczników. Drugi licznik sluży do celów pomocniczych. Powiekszeniu lub pomniejszeniu o 1 licznika l odpowiada , teraz pomnożenie lub podzielenie naszej liczby przez 7. Możemy także sprawdzić, czy l = 0. W ten sposób obliczenie używajace pieciu liczników zrealizujemy z pomoca, dwóch. , , Przejdźmy do rzeczy. Piszemy Γ ` τ , gdy Γ ` M : τ , dla pewnego M . W szczególności ` τ oznacza, że typ τ jest niepusty, tj. istnieje zamkniety term M typu τ . Interesuje nas problem , niepustości typu, czyli pytanie Czy istnieje term zamkniety danego typu?”. Latwo widzieć, , ” że ten problem jest równoważny zadaniu Czy Γ ` τ , dla danych Γ, τ ?” ” Problem stopu dla automatów dwulicznikowych sprowadzimy do pytania: Dane Γ i τ , czy Γ ` τ ? Zalóżmy, że dany jest automat M = hQ, q0 , qN , δi, gdzie Q = {q0 , . . . , qN }. Na poczatek ustalmy takie zmienne konstruktorowe: , Qi : ∗ ⇒ ∗ ⇒ ∗, dla dowolnego i = 1, . . . , N ; f : ∗ ⇒ ∗; 0 : ∗, OK : ∗. Teraz zbudujemy pewne otoczenie Γ, reprezentujace automat M. Z każda, instrukcja, δ(q) , zwiażemy jedna, lub dwie zmienne deklarowane w Γ. Typy tych zmiennych sa, nastepuj ace: , , , • ∀xy(Qi xy → Qj (fx)y), gdy δ(qi ) = c1 := c1 + 1; goto qj ;” ” • ∀xy(Qi xy → Qj x(fy)), gdy δ(qi ) = c2 := c2 + 1; goto qj ;” ” • ∀xy(Qi (fx)y → Qj xy), gdy δ(qi ) = c1 := c1 − 1; goto qj ;” ” • ∀xy(Qi x(fy) → Qj xy), gdy δ(qi ) = c2 := c2 − 1; goto qj ;” ” • ∀y(Qi 0y → Qj 0y) oraz ∀xy(Qi (fx)y → Qk (fx)y), gdy δ(qi ) = if c2 = 0 then goto qj else goto qk ;” ” 12 sierpnia 2008, godzina 14: 39 strona 106 • ∀x(Qi x0 → Qj x0) oraz ∀xy(Qi x(fy) → Qk x(fy)), gdy δ(qi ) = if c2 = 0 then goto qj else goto qk .” ” Na koniec do otoczenia Γ dokladamy jeszcze deklaracje, zmiennych takich typów: Q0 00 oraz ∀xy(QN xy → OK) Oczywiście nazwy zadeklarowanych zmiennych tak naprawde, sa, bez znaczenia. Na potrzeby tego dowodu wprowadźmy jeszcze oznaczenie m = fk (0). Oczywiście, m : ∗. Lemat 26.4 Jeśli hqi , m, ni M hqN , m0 , n0 i to Γ, Qi m n ` OK. Dowód: Indukcja ze wzgledu na dlugość obliczenia rozpoczynajacego sie, od konfigu, , racji hqi , m, ni. Jeśli to już jest konfiguracja końcowa, to należy wykorzystać zmienna, typu ∀xy(QN xy → OK). W kroku indukcyjnym należy zauważyć, że jeśli hqi , m, ni →M hqj , m0 , n0 i to Γ, Qi m n ` Qj m0 n0 . Lemat 26.5 Jeśli Γ ` Qj m n, to hq0 , 0, 0i M hqj , m, ni. Dowód: Istnieje taki term M , że Γ ` M : Qj m n. Można zakladać, że M jest w postaci normalnej. Dowód jest przez indukcje, ze wzgledu na rozmiar M . Z powodu swojego typu, M , nie może być abstrakcja., Musi to być zmienna lub aplikacja. Jedyny typ w Γ, który zaczyna sie, od konstruktora reprezentujacego stan, to zmienna Q0 00. Ale jeśli to ma być typ M , to , znaczy, że m = n = j = 0 i teza zachodzi w sposób trywialny. ~ , gdzie z jest zmienna deklarowana w Γ, a N ~ jest Jeśli M jest aplikacja,, to ma postać z N , , ciagiem typów i termów. Typ zmiennej z ma postać ∀x(· · · → Qj uv) lub ∀xy(· · · → Qj uv) , i odpowiada zastosowaniu pewnej instrukcji automatu M. Przypuśćmy na przyklad, że z jest zmienna, typu ∀xy(Qi x(fy) → Qj xy), odpowiadajacego instrukcji δ(qi ) = c2 := c2 − 1; goto qj . , Wtedy M = z m nM 0 gdzie Γ ` M 0 : Qi m(f n). Z zalożenia indukcyjnego wnioskujemy, że hq0 , 0, 0i M hqi , m, n + 1i. Ponadto oczywiście hqi , m, n + 1i →M hqj , m, ni, wiec , ostatecznie hq0 , 0, 0i M hqj , m, ni, jak mialo być. Podobnie postepujemy w przypadku pozosta lych , instrukcji. Dowód twierdzenia 26.2: Z lematów 26.4 i 26.5 latwo otrzymujemy równoważność: Automat M zatrzymuje sie, wtedy i tylko wtedy, gdy Γ ` OK. To kończy dowód twierdzenia 26.2. Uwaga: Zauważmy, że w dowodzie wykorzystaliśmy tylko zmienne konstruktorowe rodzaju ∗, ∗ ⇒ ∗ i ∗ ⇒ ∗ ⇒ ∗, przy czym tylko zmienne rodzaju ∗ byly wiazane kwantyfikatorami. , Podziekowania , Dziekuj e, Pani Malgorzacie Maciejewskiej, Panom Tomaszowi Domańskiemu, Stanislawowi , Findeisenowi, Danielowi Hansowi, Szczepanowi Hummelowi, Wojciechowi Jaworskiemu, Michalowi Kotowskiemu, Michalowi Misiakowi, Filipowi Murlakowi, Lukaszowi Osipiukowi, Pawlowi Parysowi, Jakubowi Pochrybniakowi, Michalowi Rutkowskiemu, Adamowi Slaskiemu, Mateuszowi Zakrzewskiemu i dr. Aleksemu Schubertowi za wykrycie rozmaitych bledów we , wcześniejszych wersjach tych notatek.