• Nie Znaleziono Wyników

Dodatek C: System T

W dokumencie 1 Sk ladnia rachunku lambda (Stron 116-120)

System G¨odla T to w istocie rachunek lambda z typami prostymi, rozszerzony o typ int liczb naturalnych (wraz z

”gotowymi” liczebnikami) oraz operator rekursji. ´Sci´slej:

• Typy systemu T to sta la typowa int i typy postaci (τ → σ), gdzie τ i σ s

a typami., 30

• Termy sa jak w rachunku z typami prostymi w stylu Churcha, ale mog, a zawiera´, c sta le:

– 0 : int;

– s : int → int;

– Rτ : (int → τ → τ ) → τ → (int → τ ), dla dowolnego τ .

• Opr´ocz zwyk lej beta-redukcji w systemie sa dwie regu ly dla rekursora:, – RτM N (sP ) ⇒ M P (RτM N P );

– RτM N 0 ⇒ N .

Relacje redukcji oznaczamy przez →, T, znaki T i =T rozumiemy jak zwykle.

Liczebniki konstruujemy za pomoca sta lych 0 i s: przez n oznaczamy term s(s(· · · s(0) · · · )),, w kt´orym s u˙zyte zosta lo n razy. Mo˙zemy teraz m´owi´c o definiowaniu funkcji. Powiemy, ˙ze funkcja f : Nk → N jest definiowalna w systemie T, je˙zeli istnieje kombinator F : intk→ int, taki ˙ze dla f (n1, . . . , nk) = m zachodzi F n1. . . nk=T m.

Jako pierwszy przyk lad rozpatrzmy zastosowanie rekursora Rint do termu M = λxz.sz. Dla dowolnych m, n otrzymamy RintM nm Tn + m. Oto kilka dalszych przyk lad´ow:

• Funkcja warunkowa if x = 0 then y else z jest definiowalna wyra˙zeniem Rint(λuv.z)yx.

• Funkcja poprzednika jest definiowalna wyra˙zeniem λx.Rint(λuv.u)0x.

• Niech funkcja f bedzie okre´, slona przez rekursje prost, a, f (0, n1, . . . , nk) = g(n1, . . . , nk);

f (s(m), n1, . . . , nk) = h(m, n1, . . . , nk, f (m, n1, . . . , nk)),

gdzie g, h sa definiowalne odpowiednio przez termy G i H. Wtedy f jest definiowalne, termem F = λx~y.Rint(λuv.Hu~yv)(G~y)x. Jak wida´c, u˙zycie rekursora Rint odpowiada zwyk lej rekursji prostej.

• Niech f0(n) = n + 1 i niech fk+1(n) = fkn(n), dla dowolnych k i n. Wszystkie funkcje fk

sa definiowalne. Rzeczywi´, scie, niech M = λf xy.Rint(λuv.f v)yx. Je´sli teraz Fkdefiniuje funkcje f, k to term Fk+1 = λx.M Fkxx definiuje fk+1.

• Wreszcie niech fω(n) = fn(n). Funkcja fωjest pewnym wariantem funkcji Ackermanna.

Nie jest to funkcja pierwotnie rekurencyjna. Niemniej, jest definiowalna w systemie T za pomoca termu F, ω = λx.Rint→int(λφy.M φyy)sxx. Istotnie, operator λφy.M φyy przy lo˙zony do Fk daje Fk+1. Iterujemy go n-krotnie, a wynik aplikujemy do n.

30Mo˙zna doda´c zmienne typowe, sa nieszkodliwe, ale w tym kontek´, scie ma lo przydatne.

• Rozpatrzmy pozasko´nczony ciag funkcji f, α, w kt´orym fα+1(n) = fαn(n), a dla liczby gra-nicznej β przyjmujemy fβ(n) = fβ[n](n), gdzie β[n] jest odpowiednio dobranym ciagiem, rosnacym, takim ˙ze sup β[n] = β. Na przyk lad f, ωω(n) = fωn(n). Ta definicja ma sens dla α < 0, gdzie 0 jest najmniejsza liczb, a porz, adkow, a o w lasno´, sci ω0 = 0, czyli granica ci, agu α, 0 = ω, αn+1 = ωαn. Ka˙zda z funkcji fα jest definiowalna w T, ale ju˙z dla α = ωω potrzebny jest rekursor R(int→int)→(int→int).

Arytmetyka pierwszego rzedu: Dzi´, s mo˙zna powiedzie´c, ˙ze system T to pewien specyficzny jezyk programowania. Ale wymy´, slono go po to, ˙zeby udowodni´c niesprzeczno´s´c arytmetyki Peana. Bo zwiazek systemu T z arytmetyk, a pierwszego rz, edu jest bardzo ´, scis ly. ˙Zeby go zauwa˙zy´c, przypomnijmy sobie aksjomaty arytmetyki Peana w ich

”tradycyjnej” postaci:

• A1: int(0).

• A2: ∀x(int(x) → int(sx)).

• A3: ∀x(int(x) → int(y) → sx = sy → x = y).

• A4: ∀x(int(x) → ¬(sx = 0)).

• Aϕ5 : ∀x(int(x) → ϕ(x) → ϕ(sx)) → ϕ(0) → ∀x(int(x) → ϕ(x)).

Tutaj int(x) jest jednoargumentowym predykatem, kt´ory czytamy “x jest liczba naturaln, a”., Aksjomaty A1 i A2jawnie wprowadzaja kanoniczne obiekty typu int: zero i nastepniki obiek-, t´ow typu int. Aksjomaty A3 i A4 gwarantuja, ˙ze ka˙zdorazowe zastosowanie operacji nast, ep-, nika tworzy nowa liczb, e naturaln, a, r´, o˙zna od wszystkich poprzednich. Wreszcie aksjomat A, 5 to w istocie nie jeden aksjomat, ale schemat indukcji. Te same aksjomaty przyjmujemy dla intuicjonistycznej arytmetyki, kt´ora nazywamy arytmetyk, a Heytinga. Jedynym aksjomatem, zawierajacym negacj, e jest A, 4, czasem zastepowany przez nieco s labsz, a,

”pozytywna” wersj, e:,

• A04: ∀x(int(x) → sx = 0 → ∀y(int(y) → y = 0)).

Poniewa˙z og´olnie nie lubimy formu l negatywnych, wiec my te˙z poprzesta´, nmy na A04. Nie tracimy na tym nic istotnego, jak d lugo zajmujemy sie formu lami pozytywnymi.,

Wycieranie zale ˙zno´sci: Dla takiego pozytywnego jezyka arytmetyki okre´, slimy operator wycierania zale˙zno´sci κ, kt´ory dowolnej formule ϕ arytmetyki pierwszego rzedu przypisuje, formu le zdaniow, a κ(ϕ). Otrzymujemy j, a z ϕ przez,

”wytarcie” wyra˙ze´n i kwanyfikator´ow in-dywiduowych. Przy tym predykat int staje sie po prostu wyr´, o˙znionym symbolem zdaniowym (sta la typow, a), a r´, owno´s´c t lumaczymy na sta la logiczn, a > (typ jednostkowy). Je´, sli bowiem ignorujemy indywidua, powinni´smy te˙z ignorowa´c r´ownania pomiedzy nimi.,

• κ(int(t)) = int.

• κ(t = s) = >.

• κ(ϕ → ψ) = κ(ϕ) → κ(ψ).

• κ(∀xϕ) = κ(∃xϕ) = κ(ϕ).

Koniunkcje i alternatyw, e pomin, eli´, smy, ˙zeby nie komplikowa´c sprawy. Zobaczmy co zostaje z aksjomat´ow Peana po wytarciu zale˙zno´sci:

• κ(A1) : int.

• κ(A2) : int → int.

• κ(A3) : int → int → > → >).

• κ(A04) : (int → >) → (int → >).

• κ(Aϕ5) : (int → τ → τ ) → τ → int → τ , gdzie τ = κ(ϕ):

Formu ly-typy κ(A3) i κ(A04) nie sa zbyt ciekawe: ka˙zda ma tylko trywialne inhabitanty. Ale, typy pozosta lych aksjomat´ow to dok ladnie typy sta lych systemu T. A skad si, e wzi, e ly re-, gu ly redukcji dla rekursora? Skoro rekursor ma taki typ jak aksjomat indukcji, to w my´sl izomorfizmu Curry’ego-Howarda, u˙zycie rekursora reprezentuje dow´od przez indukcje., Dow´od indukcyjny tezy ∀x(int(x) → ϕ(x)) sk lada sie z dw´, och cze´,sci: kroku bazowego D0 (dowodu formu ly ϕ(0)) i kroku indukcyjnego D1 (dowodu dla ∀x(int(x) → ϕ(x) → ϕ(sx))).

Mo˙zemy tu napisa´c D0 : ϕ(0) i D1 : ∀x(int(x) → ϕ(x) → ϕ(sx)), a ca ly dow´od indukcyjny oznaczy´c jako Aϕ5D1D0 : ∀x(int(x) → ϕ(x)). Mo˙zliwy spos´ob u˙zycia takiego dowodu to zaaplikowanie go do konkretnej liczby naturalnej, a ´sci´slej do wyra˙zenia arytmetycznego t oraz (uwaga!) dowodu P : int(t), uzasadniajacego, ˙ze t przedstawia liczb, e naturaln, a. Dostajemy, wtedy dow´od Aϕ5D1D0tP : int(t). W tej konwencji, dowodem formu ly ϕ(0) jest Aϕ5D1D00A1, a dowodem formu ly ϕ(2) jest Aϕ5D1D0(s(sx))A21(A20(A1)), bo przecie˙z 1 = s0 i 2 = s(s0).

Ale z takich dowod´ow indukcja mo˙ze by´c wyeliminowana. Na przyk lad, nie ma potrzeby dowodzi´c ∀x(int(x) → ϕ(x)), je´sli tak naprawde mamy wyprowadzi´, c ϕ(0). To znaczy, ˙ze powinni´smy mie´c regu le upraszczania dowod´, ow

Aϕ5D1D00A1 ⇒ D0.

Oczywi´scie mo˙zna tak˙ze wyeliminowa´c np. z dowodu formu ly ϕ(4). Mo˙zna ja zast, api´, c czte-rokrotna aplikacj, a kroku indukcyjnego do kroku bazowego., Taki dow´od jest d lu˙zszy, ale niewatpliwie bardziej elementarny. Oto regu la, kt´, ora takie uproszczenie umo˙zliwia:

Aϕ5D1D0(st)(A2tPint(t))int(st)⇒ D1tP (Aϕ5D1D0tP ) : ϕ(st)

Skoro mo˙zna wyciera´c zale˙zno´sci z formu l, mo˙zna je te˙z wyciera´c z dowod´ow. Usu´nmy z powy˙zszych regu l wszystko to co indywiduowe, a dla lepszego efektu zamie´nmy A1, A2, A5

odpowiednio na 0, s, R. Co dostajemy? Tak, regu ly redukcji dla rekursora!

Mora l: Termy systemu T to

”schematy” czy

”szkielety” (konstruktywnych) dowod´ow w jezyku, arytmetyki, a regu ly redukcji w T modeluja normalizacj, e dowod´, ow w arytmetyce.31

Silna normalizacja

Dow´od silnej normalizacji systemu T przeprowadzimy metoda Taita, tak jak dow´, od twierdze-nia 14.11. Definicja stabilno´sci jest w zasadzie taka sama.

• [[int]] := SN;

• [[τ → σ]] := {M : τ → σ | ∀N (N ∈ [[τ ]] → M N ∈ [[σ]])}.

31Ale zauwa˙zmy, ˙ze liczebnik n = s(s(· · · s(0) · · · )) nie powstaje z wyra˙zenia arytmetycznego s(s(. . . (0) . . .)), ale z dowodu A2n−1(A2n−2(· · · A2(0A1) · · · )) stwierdzajacego, ˙ze term n przedstawia liczb, e naturaln, a.,

Tre´s´c i dowody lemat´ow 14.7–14.9 pozostaja bez zmian. Potrzebujemy jeszcze jednego.,

Lemat C.9 Sta le systemu T sa stabilne w odpowiednich typach:, 1. 0 ∈ [[int]];

2. s ∈ [[int → int]];

3. Rτ ∈ [[(int → τ → τ ) → τ → (int → τ )]]

Dow´od: (3) Wystarczy udowodni´c, ˙ze je´sli termy M , N , P sa stabilne w odpowiednich, typach, to term RτM N P jest stabilny w typie τ . Poniewa˙z P jest stabilny, to ma posta´c normalna P, 0 = sn(P1), gdzie n ≥ 0, a term P1 nie zaczyna sie od nast, epnika. Dzia lamy, przez indukcje ze wzgl, edu na n. Je´, sli τ = τ1 → · · · → τk → int, to wystarczy pokaza´c, ˙ze RτM N P N1. . . Nk jest silnie normalizowalny, je´sli tylko N1, . . . Nk sa stabilne.,

Rozpatrzmy dowolny ciag redukcji zaczynaj, acy si, e od R, τM N P N1. . . Nk. Z powodu sil-nej normalizacji wszystkich sk ladowych, musi sie w tym ci, agu pojawi´, c redeks, tj. mamy RτM N P N1. . . Nk T RτM0N0P0N10. . . Nk0, gdzie P0 jest zerem lub zaczyna sie od nastep-, nika. Je´sli P0= 0, to dalsza redukcja prowadzi do N0N10. . . Nk0. Ten term mo˙zna te˙z otrzyma´c przez redukowanie stabilnego termu N N1. . . Nk, a wiec nale˙zy on do SN. Jesli za´, s P0 = sP00 to otrzymujemy term X = M0P00(RτM0N0P00)N10. . . Nk0. Aby pokaza´c, ˙ze X ∈ SN wystarczy sprawdzi´c silna normalizacj, e termu Z = M P, 00(RτM N P00)N1. . . Nk, kt´ory te˙z redukuje sie, do X. To wynika z za lo˙zenia indukcyjnego. Bo po pierwsze P0  sP00 wiec P, 00 ∈ SN = [[int]].

A po drugie posta´c normalna P00 ma na poczatku tylko n − 1 nast, epnik´, ow.

A wiec w ka˙zdym przypadku redukcja R, τM N P N1. . . Nk prowadzi do termu w SN.

Z powy˙zszego wynika, ˙ze lemat 14.10 pozostaje prawdziwy dla systemu T, a zatem dostajemy:

Twierdzenie C.10 System T ma w lasno´s´c silnej normalizacji.

Twierdzenie C.11 System T ma w lasno´s´c Churcha-Rossera.

Dow´od: Mo˙zna to udowodni´c korzystajac z Twierdzenia C.10 i z Lematu Newmana., System T i arytmetyka: Korzystajac z twierdzenia o silnej normalizacji dla systemu T, mo˙zna udowodni´c, ˙ze ka˙zde twierdzenie arytmetyki Heytinga ma dow´od w postaci normal-nej , tj. dow´od o szczeg´olnie prostej strukturze. Pomijajac wyja´, snienia co to dok ladnie znaczy, powiedzmy tylko, ˙ze jedynym normalnym dowodem r´owno´sci pomiedzy dwoma liczebnikami,, tj. r´owno´sci postaci s(s(. . . s(0) . . .)) = s(s(. . . s(0) . . .)) jest aksjomat A1, co oznacza w szcze-g´olno´sci, ˙ze po obu stronach musi by´c ten sam liczebnik. Nie ma wiec dowodu formu ly, 0 = s(0), a zatem intuicjonistyczna arytmetyka jest niesprzeczna. Klasyczna arytmetyka Peana te˙z musi by´c niesprzeczna, bo mo˙zna ja,

”zanurzy´c” w arytmetyce Heytinga za pomoca, tzw. translacji Ko lmogorowa. Pamietamy jednak z logiki, ˙ze niesprzeczno´, sci arytmetyki Peana nie da sie udowodni´, c w arytmetyce Peana. Okazuje sie, ˙ze jedyn, a cz,,scia naszkicowanego,

wy˙zej dowodu niesprzeczno´sci, kt´ora nie daje sie sformalizowa´, c w jezyku arytmetyki, jest, w la´snie twierdzenie C.10.

W lasno´s´c silnej normalizacji systemu T mo˙zna wypowiedzie´c tak: Dla ka˙zdego termu M istnieje takie n, ˙ze ka˙zdy sko´nczony ciag redukcji rozpoczynaj, acy si, e od M ma d lugo´, s´c co naj-wy˙zej n. Je´sli um´owimy sie, ˙ze termy i ich sko´, nczone ciagi s, a reprezentowane jako liczby natu-, ralne za pomoca jakiego´, s ustalonego kodowania, to powy˙zsze zdanie mo˙zna wyrazi´c w jezyku, arytmetyki. Mamy wiec konkretny przyk lad zdania w j, ezyku arytmetyki, kt´, ore jest od niej niezale˙zne. Jakiego aparatu logicznego wymaga wiec dow´, od twierdzenia C.10?

W dowodzie definiowali´smy dwuargumentowy predykat M ∈ [[τ ]], przez indukcje ze wzgl, edu, na typ τ . Definicja indukcyjna to jednak definicja

”uwik lana”. Nie umiemy natomiast zdefi-niowa´c tego predykatu

”wprost”, tj. nie umiemy napisa´c formu ly ϕ(M, τ ) r´ownowa˙znej warun-kowi M ∈ [[τ ]]. Je´sli wiec chcemy w j, ezyku logiki formalnej zapisa´, c np. tre´s´c lematu 14.7(1) to musimy pos lu˙zy´c sie tak, a konstrukcj, a: Dla dowolnego dwuargumentowego predykatu X,, spe lniajacego warunki,

• ∀M (X(M, int) ⇔ M ∈ SN);

• ∀M ∀τ ∀σ(X(M, τ → σ) ⇔ ∀N (X(N, τ ) ⇒ X(M N, σ))},

zachodzi ∀M ∀τ (X(M, τ ) ⇒ M ∈ SN). Ta konstrukcja u˙zywa jednak kwantyfikatora ∀X, gdzie X przebiega relacje, a nie indywidua. Takie kwantyfikatory sa dozwolone w logice, i arytmetyce drugiego rzedu. I tego si, e nie da poprawi´, c: arytmetyka pierwszego rzedu nie, wystarczy.

Twierdzenie C.12 Twierdzenie o silnej normalizacji systemu T jest niezale˙zne od aryt-metyki Peana.

Podziekowania,

Dziekuj, e Pani Ma lgorzacie Maciejewskiej i Panom Tomaszowi Doma´, nskiemu, Stanis lawowi Findeisenowi, Krzysztofowi Gerasowi, Danielowi Hansowi, Szczepanowi Hummelowi, Woj-ciechowi Jaworskiemu, Szymonowi Kitowskiemu, Micha lowi Kotowskiemu, Rados lawowi Ku-jawie, Micha lowi Misiakowi, Filipowi Murlakowi, Lukaszowi Osipiukowi, Paw lowi Parysowi, Jakubowi Pochrybniakowi, Micha lowi Rutkowskiemu, Aleksemu Schubertowi, Adamowi Slas-kiemu i Mateuszowi ZakrzewsSlas-kiemu za wykrycie rozmaitych b led´, ow we wcze´sniejszych wers-jach tych notatek.

W dokumencie 1 Sk ladnia rachunku lambda (Stron 116-120)