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.