1 Wokół pracy Gödla

Transkrypt

1 Wokół pracy Gödla
1
1
1.1
Wokół pracy Gödla
Trochę o samej pracy
Na początku XX w. coraz bardziej popularny wśród matematyków stawał się formalizm. Jest to pogląd, że matematyka polega na formalnym badaniu logicznych
konsekwencji aksjomatów, które mogą wyrażać własności dowolnych, abstrakcyjnych pojęć, w tym związanej z teorią mnogości nieskończoności. Takie stanowisko
z różnych powodów (kłopoty z teorią mnogości, istnienie mało intuicyjnej geometrii nieeuklidesowej) wymagało wyjaśnienia kwestii niesprzeczności aksjomatów.
Wcześniej nie była ona istotna: matematyka, podobnie jak fizyka, miała opisywać
istniejącą rzeczywistość i wydawało się, że podstawowe idee matematyczne mogą
być weryfikowane przez odwołanie się do rzeczywistości. Nieskończoność nie występuje w naturze i nie może być badana bezpośrednio. Jest jednak bardzo ważna
i nie powinna znajdować się poza zainteresowaniami matematyków.
Już w 1900 roku podczas II Międzynarodowego Kongresu Matematyków David
Hilbert postulował konieczność wykazania, że matematyka jest pewna i niezawodna. Później, w latach dwudziestych rozwijał program, który miał doprowadzić do
wykazania środkami finitystycznymi, a więc pewnymi, że matematyka może bezpiecznie, nie popadając w antynomie, posługiwać się pojęciem nieskończoności.
Kurt Gödel w swojej głownej pracy Über formal unentscheidbare Sätze der
’Principia Mathematica’ und verwandter Systeme, I podważył wykonalność programu Hilberta. Już to wystarczyło, by praca odegrała istotną rolę w rozwoju
matematyki. Z punktu widzenia informatyki ważny był fakt wykorzystania w tej
pracy funkcji, które zostały nazwane rekurencyjnymi, a dzisiaj nazywają się pierwotnie rekurencyjnymi. Wcześniej pojawiały się prace na ich temat, na przykład
było już wiadomo, że funkcja Ackermanna nie jest pierwotnie rekurencyjna, ale
dopiero Gödel znalazł znaczące zastosowanie tych funkcji. Klasa funkcji wykorzystywanych przez Gödla w krótkim czasie została rozszerzona do klasy funkcji rekurencyjnych, które okazały się formalizacją obliczalności. Tak więc Gödel pierwszy
raz w historii otrzymał znaczący rezultat posługując się pojęciem obliczalności.
1.2
Funkcje rekurencyjne, potrzebne pojęcia i oznaczenia
Będziemy rozważać funkcje (być może wieloargumentowe), które są określone dla
pewnych argumentów będących liczbami naturalnymi i przyjmujące wartości naturalne. Jeżeli f jest taką funkcją, to będziemy pisać, że f : N k → N . Ten zapis ma
więc znaczenie inne niż zwykle. Tak rozumiane funkcje nazywa się częściowymi.
Funkcja F określona dla wszystkich układów ~x ∈ N k nazywa się całkowitą. Najczęściej dopiero z kontekstu będzie wynikać, czy mówimy o funkcjach całkowitych,
czy częściowych.
Przyjmijmy, że
In,k (x1 , . . . , xk ) = xi oraz S(x) = x + 1.
Funkcją charakterystyczą zbioru R ⊆ N k nazywamy całkowitą funkcję chR zdefiniowaną wzorem
(
0 jeżeli ~x ∈ R,
chR (~x) =
1 w przeciwnym razie.
Zamiast różnicą posługujemy sie raczej ograniczoną różnicą zdefiniowaną wzorem
x − y = max{0, x − y}
(obie różnice powinny być oznaczane różnymi symbolami, ale nie będą).
2
Będziemy też rozważać kilka sposobów definiowania nowych funkcji. Jeżeli mamy funkcję f : N k → N i k funkcji gi : N n → N , to możemy zdefiniować funkcję
H przyjmując, że
h(x1 , . . . , xn ) = f (g1 (x1 , . . . , xn ), . . . , gk (x1 , . . . , xn )).
Ten sposób definiowania nazywamy składaniem funkcji. Oprócz składania czasem
rozważa się podstawianie. Jest to operacja trudna do precyzyjnego zdefiniowania.
Przykładem funkcji definiowanej za pomocą podstawiania jest na przykład funkcja
h(x1 , . . . , xn , y, z) = f (y, g(x2 , x3 , . . . , xn ), x2 , g 0 (x1 , x2 ), g 00 (x1 , xn )).
Najprościej przyjąć, że jeżeli możemy posługiwać się funkcjami In,k i potrafimy
składać funkcje, to potrafimy także definiować funkcje za pomocą podstawiania.
Mając dane funkcje f : N k+2 → N i g : N k → N , to możemy zdefiniować
funkcję h : N k+1 → N przyjmując, że spełnia ona następujące równości:
h(x1 , . . . , xk , 0) = g(x1 , . . . , xk )
h(x1 , . . . , xk , y + 1) = f (h(x1 , . . . , xk , y), y, x1 , . . . , xk ).
O tak zdefiniowanej funkcji mówimy, że została zdefiniowana za pomocą (schematu) rekursji prostej. Schemat rekursji prostej stosujemy również dla k = 0. Wtedy
przyjmuje on postać
h(0) = c oraz h(y + 1) = f (h(y), y),
gdzie c jest pewną liczbą naturalną.
W końcu dla funkcji f : N k+1 → N definiujemy funkcję
h(x1 , . . . , xk ) = µy(f (x1 , . . . , xk , y) = 0)
przyjmującą jako wartość najmniejszą liczbę y taką, że f (x1 , . . . , xk , y) = 0. Mówimy o tak zdefiniowanej funkcji h, że została zdefiniowana za pomocą operacji
minimum. Zajmujemy się też efektywną operację minimum, a więc taką, która jest
stosowana pod pewnymi warunkami, tylko do całkowitych funkcji f , które dodatkowo dla każdych x1 , . . . , xk przyjmują dla pewnego y wartość f (x1 , . . . , xk , y) = 0.
Z każdym przedstawionym sposobem definiowania nowych funkcji powinniśmy
wiązać algorytm pozwalający na obliczanie wartości definiowanych w ten sposób
funkcji. Aby obliczyć wartość złożenia, najpierw obliczamy wartości funkcji wewnętrznych dla danych argumentów, a następnie wartość funkcji zewnętrznej dla
znalezionych wartości funkcji wewnętrznych. Obliczenie wartości h(~x, n) funkcji h
definiowanej przez rekursję prostą polega na obliczeniu, dla i od 0 do n, zgodnie
z podanymi w definicji wzorami, kolejnych wartości h(~x, i). Aby wyliczyć wartość h(~x) funkcji h zdefiniowanej za pomocą operacji minimum obliczamy kolejne wartości funkcji f (~x, i) występującej w definicji h dla kolejnych liczb naturalnych począwszy od 0, i robimy to tak długo, aż znajdziemy (pierwsze) y takie, że
f (~x, y) = 0. W szczególności, wszystkie szczegóły w podanych definicjach trzech
sposobów definiowania funkcji powinny zostać tak sprecyzowane, aby zapewnić
zgodność definicji z możliwością obliczania wartości za pomocą podanych algorytmów.
1.3
Definicja klasy funkcji rekurencyjnych
Definicje funkcji rekurencyjnych zmieniały się wraz z rozwojem badań. Pierwszą
definicję podał Gödel.
3
Definicja 1.1 Rekurencyjnymi wg Gödla są następujące funkcje: następnik S,
funkcje stałe, In,k i wszystkie funkcje, które można zdefiniować za pomocą składania i rekursji prostej używając wymienionych. Dzisiaj funkcje z tej klasy nazywamy
pierwotnie rekurencyjnymi.
Definicję Gödla zmodyfikował i uzupełnił Kleene zachowując jej styl. Przyjął
on, że
Definicja 1.2 Klasa funkcji rekurencyjnych to najmniejsza klasa funkcji zawierająca In,k , dodawanie, mnożenie, ch< i zamknięta ze względu na złożenie oraz
efektywną operację minimum.
Funkcje rekurencyjne według Kleene’ego są całkowite. W tamtych czasach unikano funkcji częściowych lub traktowane je jako coś dziwnego i gorszego. W tej
sytuacji zdefiniowanie częściowych funkcji rekurencyjnych wymaga dodatkowych
pojęć.
Definicja 1.3 Zbiór X ⊆ N k jest rekurencyjny, jeżeli jego funkcja charakterystyczna chX jest rekurencyjna.
Definicja 1.4 Zbiór X ⊆ N k jest rekurencyjnie przeliczalny, jeżeli jest rzutem
zbioru rekurencyjnego, czyli można go zdefiniować warunkiem postaci
~x ∈ X ⇔ ∃y ∈ N R(~x, y)
dla pewnej relacji rekurencyjnej R ⊆ N k+1 .
Definicję Kleene’ego rozszerza się na funkcje częściowe przyjmując, że
Definicja 1.5 Funkcja (częściowa) f jest rekurencyjna wtedy i tylko wtedy, gdy
jej wykres
Wf = {(~x, y) ∈ N k+1 : f (~x) jest określona i f (~x) = y}
jest zbiorem rekurencyjnie przeliczalnym.
Dzisiaj klasę (częściowych) funkcji rekurencyjnych definiujemy przyjmując, że
Definicja 1.6 Funkcje In,k , dodawanie, mnożenie, ch< są rekurencyjne, a klasa
funkcji rekurencyjnych jest najmniejszą zamkniętą ze względu na złożenie oraz
operację minimum.
Podana definicja ta jest równoważna definicji częściowych funkcji rekurencyjnych
według Kleene’ego.
Klasę funkcji rekurencyjnych można też zdefiniować przyjmując, że
Definicja 1.7 Klasa funkcji rekurencyjnych jest najmniejszą klasą funkcji (częściowych) zawierająca funkcji In,k i zamknięta ze względu na składanie, rekursję
prostą i operację minimum.
4
1.4
Kilka uwag
Klasa funkcji rekurencyjnych (częściowych) została zdefiniowana na trzy sposoby.
Można dowieść, że definicje 1.5, 1.6 oraz 1.7 są równoważne. W zastosowaniach
najwygodniejsza jest chyba definicja 1.7 i tą będziemy się najczęściej posługiwać.
Definicja 1.3 obowiązuje bez względu na to, jak są zdefiniowane funkcje rekurencyjne. Wobec tego zbiory rekurencyjne zostały zdefiniowane nawet na cztery
sposoby. Wszystkie te definicje są równoważne.
Także zbiory rekurencyjnie przeliczalne zawsze definiujemy zgodnie z definicją
1.4 i zawsze otrzymujemy to samo pojęcie.
Dowodzi się również, że klasa całkowitych funkcji rekurencyjnych opisana defincją 1.5 jest równa klasie tych całkowitych funkcji, które są rekurencyjne np.
zgodnie z definicją 1.7.
Zdefiniowane pojęcia mają też odpowiedniki informatyczne. Klasa funkcji rekurencyjnych jest identyczna z klasą naturalnych funkcji obliczalnych. Zbiory rekurencyjne to zbiory rozstrzygalne. Zbiory rekurencyjnie przeliczalne pokrywają
się ze zbiorami rozpoznawalnymi, czyli semirozstrzygalnymi.
1.5
Najprostsze własności funkcji rekurencyjnych
(Posługujemy się definicją 1.7.)
Całkowite funkcje stałe są rekurencyjne. Takie funkcje jednej zmiennej definiujemy przez rekursję prostą wzorami
h(0) = c oraz h(n + 1) = I2,1 (h(n), n).
Funkcje stałe wielu zmiennych definiujemy jako złożenia funkcji stałych jednej
zmiennej i odpowiednich funkcji In,k .
Funkcja f zdefiniowana wzorem f (n) = n−1 = max(n−1, 0) jest rekurencyjna,
gdyż może zostać zdefiniowana w następujący sposób przez rekursję prostą:
f (0) = 0 oraz f (n + 1) = I2,2 (f (n), n).
Funkcja g zdefiniowana wzorem g(n, m) = n − m = max(n − m, 0) jest rekurencyjna, gdyż może zostać zdefiniowana w następujący sposób przez rekursję
prostą:
g(n, 0) = I1,1 (n) oraz g(n, m + 1) = f (I2,1 (g(n, m), n)),
gdzie f oznacza wyżej zdefiniowaną funkcję.
Funkcja k(n, m) = 1 − (m − n) jest rekurencyjna. Bardziej formalny dowód
tego faktu wynika z wzoru
k(n, m) = g(h(I2,1 (n, m)), g(I2,2 (n, m), I2,1 (n, m)),
gdzie g jest wyżej zdefiniowaną funkcją, a h jest jednoargumentową funkcją stale
równą 1.
Nietrudno zauważyć, że k jest funkcją całkowitą przyjmującą dwie wartości: 0 i
1. Ponadto, warunek k(n, m) = 0 zachodzi wtedy i tylko wtedy, gdy n < m. Wobec
tego, funkcja k jest funkcją charakterystyczną relacji mniejszości, czyli k(n, m) =
ch< (n, m). Wynika stąd, że relacja mniejszości jest rekurencyjna, czyli zbiór
{(n, m) ∈ N 2 : n < m}
jest rekurencyjny.
Rekurencyjna jest także funkcja zdefiniowana wzorem
S(n) = µm(ch< (n, m) = 0).
5
Nietrudno sprawdzić, że S jest znaną operacją następnika, S(n) = n + 1. Bardzo
często będziemy stosować definicje takie, jak powyższa, czyli postaci
s(~n) = µm(chR (~n, m) = 0).
Takie definicje będzie zapisywać krócej, w następującej formie:
s(~n) = µm R(~n, m).
W szczególności, aby zdefiniować następnik możemy napisać
S(n) = µm(n < m).
Rekurencyjność następnika pozwala wykazać, że rekurencyjnymi są także dodawanie, mnożenie, potęgowanie i wiele innych funkcji naturalnych. Mamy też
Wniosek 1.8 Funkcje pierwotnie rekurencyjne są rekurencyjne.
Matematycy na ogół nie posługują się funkcjami takimi, jak funkcja Ackermanna. Zdecydowana większość znanych, „zwykłych” całkowitych funkcji naturalnych
to funkcje pierwotnie rekurencyjne, a więc także rekurencyjne.
1.6
Zbiory (relacje) rekurencyjne
Klasa zbiorów rekurencynych jest zamknięta ze względu na dopełnienie i sumę
mnogościową. Przypuśćmy, że R, S ⊆ N k . Wtedy funkcja charakterystyczna dopełnienia R wyraża się wzorem
chN k \R (n1 , . . . , nk ) = 1 − chR (n1 , . . . , nk ),
a funkcja charakterystyczna sumy R i S jest dana wzorem
chR∩S (n1 , . . . , nk ) = chR (n1 , . . . , nk ) · chS (n1 , . . . , nk ).
Co więcej, klasa zbiorów rekurencyjnych jest zamknięta ze względu na definiowanie
za pomocą alternatywy (i negacji). W szczególności, jeżeli R i S są relacjami
rekurencyjnymi pewnej liczby (np. dwóch) zmiennych, to relacja
T = {(x, y, z, t) ∈ N 4 : (x, y) ∈ R ∨ (x, z) ∈ S}
także jest rekurencyjna. Symbole x, y, z i t mogą oznaczać pojedyńcze liczby,
a także układy liczb złożone z dowolnej ilości liczb: zera, jednej lub wielu liczb.
Mamy bowiem
chT (x, y, z, t) = chR (x, y) · chS (x, z) =
= chR (I4,1 (x, y, z, t), I4,2 (x, y, z, t)) · chS (I4,1 (x, y, z, t), I4,3 (x, y, z, t)).
Tak więc, jeżeli formuły atomowe definiują relacje rekurencyjne, to dowolna zbudowana z nich formuła rachunku zdań też definiuje relację rekurencyjną.
Lemat 1.9 (o podstawianiu) Jeżeli f : N 2 → N jest całkowitą funkcją rekurencyjną, a R ⊆ N 3 jest relacją rekurencyjną, to zbiór
S = {(x, y, z, t) ∈ N 4 : (f (x, y), x, z) ∈ R}
też jest relacją rekurencyjną, jak również inne, analogicznie definiowane relacje.
6
Dowód. Funkcja charakterystyczna relacji S wyraża się wzorem
chS (x, y, z, t) = chR (f (x, y), x, z).
Założenia o całkowitości f nie można pominąć. Gwarantuje ono całkowitość wyżej
zdefiniowanej funkcji chS . 2
Z poprzedniego rozdziału wynika, że relacja mniejszości < jest rekurencyjna.
Lemat o podstawianiu implikuje, że także relacja większości > jest rekurencyjna.
Ich dopełnienia, czyli relacje ¬ i ­ też są rekurencyjne. Relacja równości jest
rekurencyjna jako przekrój relacji ¬ i ­. To samo można powiedzieć o relacji
różności 6=.
Klasa relacji rekurencyjnych jest zamknięta ze względu na definiowanie przy
użyciu kwantyfikatorów ograniczonych. Niech R ⊆ N 2 będzie relacją rekurencyjną.
Wtedy rekurencyjne są także zbiory
E = {(x, y) ∈ N 2 : ∃z < y (x, z) ∈ R}
oraz
A = {(x, y) ∈ N 2 : ∀z < y (x, z) ∈ R}.
Aby się o tym przekonać zdefiniujmy funkcję i : N 2 → N przyjmując
i(x, 0) = 1 oraz i(x, n + 1) = i(x, n) · chR (x, n).
Nietrudnosprawdzić, że
chE (x, y) = i(x, y),
a więc E jest zbiorem rekurencyjnym. Podobnie, przechodząc przez dopełnienia
można wykazać, że A jest zbiorem rekurencyjnym.
Językiem arytmetyki będziemy nazywać język zawierający następujące symbole: 0, 1, +, ·, < i =. Bogatym językiem arytmetyki będziemy nazywać język
arytmetyki rozszerzony o pewną listę symboli funkcyjnych. Korzystając z takiego
języka będziemy zakładać, że że dodatkowe symbole funkcyjne oznaczają całkowite
funkcje rekurencyjne.
Niech ∆0 oznacza najmniejszą klasę formuł języka arytmetyki (ewentualnie
bogatego języka) zawierającą formuły atomowe i zamkniętą ze względu na łączenie
formuł za pomocą spójników, poprzedzanie negacją i dopisywanie kwantyfikatorów
ograniczonych ∀x < t oraz ∃x < t, gdzie t jest termem, w którym nie występuje
zmienna x.
Formuła ϕ języka arytmetyki (także bogatego) z k zmiennymi wolnymi definiuje
zbiór X ⊆ N k , jeżeli
X = {(n1 , . . . , nk ) ∈ N k : N 0 |= ϕ[n1 , . . . , nk ]},
gdzie N 0 jest zwykłym modelem liczb naturalnych uzupełnionym w razie potrzeby
o odpowiednie całkowite funkcje rekurencyjne.
Wyniki tego rozdziału można podsumować w następujący sposób:
Lemat 1.10 Formuły bogatego języka arytmetyki klasy ∆0 definiują zbiory rekurencyjne. 2
Przykład 1.11 Zbiór P liczb pierwszych jest zbiorem rekurencyjnym. Niech ϕ
będzie formułą formalizującą zwykłą definicją pierwszości równą
1 < x ∧ ¬∃y < x∃z < x y · z = x.
Oczywiście,
P = {n ∈ N : N |= ϕ[n]}.
7
Ponieważ ϕ jest klasy ∆0 , więc P jest zbiorem rekurencyjnym. Zbiór P można też
zdefiniować pisząc
P = {n ∈ N : 1 < n ∧ ¬∃y < n∃z < n y · z = n}.
Różnica między powyższymi równościami jest bardzo formalna. W pierwszej równości, występujące w ϕ symbole <, ∃, ∧ są symbolami formalnego języka arytmetyki, w drugiej – są skróconym zapisem zwykłych zwrotów języka naturalnego:
„ jest mniejsze od”, „istnieje” oraz „i”.
1.7
Funkcja β i kodowanie ciągów
Jeżeli n jest liczbą naturalną, to n jest przedstawieniem liczby n w języku arytmetyki, czyli termem zdefiniowanym w następujący sposób:
0 = 0 oraz n + 1 = n + 1.
Wartością termu n zwykłym modelu liczb naturalnych jest liczba n. Jest też oczywiste, że następujące własności są równoważne: N |= ϕ[x ← n] oraz N |= ϕ[n].
Spełnianie formuły, w której zmienną x zastąpiliśmy termem o wartości n jest równoważne spełnianiu tej formuły przy wartościowaniu, które zmiennej x przypisuje
wartość n.
Twierdzenie 1.12 Istnieją formuła φ klasy ∆0 i całkowita funkcja rekurencyjna
β : N 2 → N takie, że
1) β(a, i) = n wtedy i tylko wtedy, gdy N |= φ[x ← a][y ← i][z ← n],
2) β(a, i) ¬ a − 1 dla wszystkich a, i,
3) dla każdego ciągu a0 , . . . , ak−1 istnieje liczba a taka, że równości β(a, i) = ai
są prawdziwe dla wszystkich i < k.
Dowód. Zdefiniujmy funkcję (term) op przyjmując, że
op(a, b) = (a + b)(a + b) + a + 1,
relację (formułę) div taką, że
div(a, b) = ∃c < a + 1 (a = b · c).
oraz pomocniczą formułę
δ = δ(x, y, z) = ∃u < x∃v < x(op(u, v) = x ∧ div(u, 1 + (op(z, y) + 1) · v)).
Przyjmimy, że φ jest formułą
φ = φ(x, y, z) = ((δ ∧ z < x − 1) ∨ (z = x − 1)) ∧ ∀t < z¬δ[z ← t].
Jest oczywiste, że jest to formuła klasy ∆0 . Teraz sprawdzimy, że definiuje w
strukturze N pewną funkcję całkowitą.
Niech a, i ∈ N . Są możliwe dwa przypadki.
Przypadek 1: N |= ∀t < a − 1 ¬δ(a, i, t). W tym przypadku łatwo przekonać
się, że N |= φ(a, i, a − 1).
Przypadek 2: N |= ∃t < a − 1 δ(a, i, t). Teraz możemy wziąć najmniejszą liczbę
n taką, że N |= n < a − 1 ∧ δ(a, i, n). Ponieważ jest to najmniejsza taka liczba,
więc N |= ∀t < n ¬δ(a, i, t). Łatwo sprawdzić, że N |= φ(a, i, n).
8
Z przeprowadzonego rozumowania wynika, że dla każdych liczb a, i istnieje
liczba n ¬ a − 1 taka, że N |= φ(a, i, n). Tak więc dowiedliśmy całkowitość β.
Łatwo też przekonać się o tym, że formuła φ definiuje pewną funkcję. Jeżeli
N |= φ(a, i, n) i N |= φ(a, i, m) dla liczb n ¬ a − 1 i m < n, to także N |=
¬δ(a, i, m) (z pierwszego warunku) oraz N |= δ(a, i, m) (z drugiego).
Funkcja β została tak zdefiniowana, że relacja β(a, i) = n jest – na mocy
lematu 1.10 – rekurencyjna. Taka funkcja jest rekurencyjna, gdyż może zostać
zdefiniowana wzorem
β(a, i) = µn β(a, i) = n.
Oczywiście, zachodzi nierówność β(a, i) ¬ a − 1. Pozostało więc dowieść, że
funkcja β ma własność 3).
Przypuśćmy, że chcemy zakodować ciąg a0 , . . . , ak−1 . Wtedy bierzemy liczbę b
taką, że b > op(ai , i) dla wszystkich i < k i tworzymy iloczyn
c=
Y
(1 + (op(ai , i) + 1) · b!).
i<n
Zauważmy, że
N |= δ(op(c, b!), i, ai )
dla wszystkich i < k. Gdyby natomiast
N |= δ(op(c, b!), i, d)
dla pewnej liczby d < ai , to z różnowartościowości op otrzymalibyśmy, że liczba
1 + (op(d, i) + 1) · b! dzieliłaby liczbę c. Liczba op(d, i) jest mniejsza od b, i co
więcej, liczby postaci 1 + (j + 1) · b! dla j < b są parami względnie pierwsze.
Stąd otrzymujemy, że liczba op(d, i) jest jedną z liczb op(aj , j) dla j < k. Teraz
różnowartościowość op implikuje, że d = ai , co jest niemożliwe. 2
1.7.1
Funkcje związane z kodowaniem
Mając funkcję β Gödla możemy kodować ciągi liczb naturalnych za pomocą liczb
naturalnych. Przyjmujemy, że każda liczba koduje pewien ciąg, że długość ciągu
kodowanego przez a znajdujemy obliczając lh(a) = β(a, 0), a i-ty wyraz ciągu
kodowanego przez a jest równy (a)i = β(a, i + 1). Tak więc liczba a koduje ciąg
(a)0 , . . . , (a)lh(a)−1 . Z własności funkcji β otrzymujemy, że każdy ciąg skończony
jest kodowany przez przez pewną liczbę naturalną. Nietrudno zauważyć, że każdy ciąg jest kodowany przez nieskończonie wiele liczb. Kodem ciągu nazywamy
najmniejszą liczbę kodującą ten ciąg. Dla ustalonego n symbolem h·i będziemy
oznaczać funkcję przyporządkowującą n-ce liczb kod ciągu złożonego z tych liczb.
Tak więc
^
ha0 , . . . , an−1 i = µx (lh(x) = n ∧
(x)i = ai ).
i<n
1.8
Zbiory rekurencyjnie przeliczalne
Jest oczywiste, że zbiory rekurencyjne są rekurencyjnie przeliczalne oraz, że klasa
zbiorów rekurencyjnie przeliczalnych jest zamknięta ze względu na sumę mnogościową (definiowanie za pomocą alternatywy) i definiowanie za pomocą kwantyfikatora ograniczonego egzystencjalnego. Wynika to ze znanych praw prachunku
kwantyfikatorów.
Klasa zbiorów rekurencyjnie przeliczalnych jest również zamknięta ze względu
na przekrój (definiowanie za pomocą koniunkcji), rzutowanie i definiowanie za pomocą kwantyfikatora ograniczonego ogólnego. Wynika to z możliwości kodowania
9
skończonych ciągów liczb naturalnych, w z twierdzenia 1.12 i lematu o podstawianiu 1.9. Niech dalej symbole R, R1 i R2 oznaczają relacje rekurencyjne.
Zamkniętość ze względu na przekrój wynika z następującej równoważności:
∃n R1 (x, n) ∧ ∃n R2 (x, n) ⇔ ∃n (R1 (x, (n)0 ) ∧ R2 (x, (n)1 )),
zamkniętość ze względu na rzutowanie – z równoważności
∃n∃m R(x, n, m) ⇔ ∃n R(x, (n)0 , (n)1 ),
a zamkniętość ze względu na definiowanie za pomocą kwantyfikatora ograniczonego
ogólnego – z następującego faktu:
∀n < t ∃m R(x, n, m) ⇔ ∃m ∀n < t R(x, n, (m)n ).
Z problemem zamkniętości klasy zbiorów rekurencyjnie przeliczalnych ze względu na dopełnienie wiąże się następujące
Twierdzenie 1.13 Jeżeli zbiór rekurencyjnie przeliczalny ma rekurencyjnie przeliczalne dopełnienie, to jest rekurencyjny.
Dowód. Przypuśćmy, że zbiór X i jego dopełnienie są rekurencyjnie przeliczalne.
Wtedy
n ∈ X ⇔ ∃m R1 (n, m)
oraz
n 6∈ X ⇔ ∃m R2 (n, m)
dla pewnych rekurencyjnych zbiorów R1 i R2 . Zdefiniujmy funkcję f : N → N
taką, że
f (n) = µm (R1 (n, m) ∨ R2 (n, m)).
Funkcja f jest rekurencyjna, a specyficzny wybór relacji R1 i R2 gwarantuje, że
jest to funkcja całkowita. Ponadto, dla wszystkich liczb naturalnych n prawdziwa
jest alternatywa
R1 (n, f (n)) ∨ R2 (n, f (n)).
Rekurencyjność zbioru X wynika z następującej równoważności:
n ∈ X ⇔ R1 (n, f (n)).
Jeżeli R1 (n, f (n)), to także ∃m R1 (n, m) i – oczywiście – n ∈ X.
Jeżeli natomiast n ∈ X, to nie może zajść warunek R2 (n, f (n)), gdyż w przeciwnym razie rozumowanie takie, jak wyżej, pozwalałoby dowieść, że x 6∈ X. Z
podanej alternatywy wynika więc, że R1 (n, f (n)). 2
2
2.1
Definiowalność
Kilka wyjaśnień
Dwa poprzednie rozdziały sugerują związek rekurencyjności i przeliczalnej rekurencyjności z postacią definicji zbioru. Tak jest w rzeczywistości. Zbiory rekurencyjne
i rekurencyjnie przeliczalne mają bardzo proste definicje. Ma to dwie konsekwencje. Znając taką prostą defincję zbioru X możemy bardzo łatwo napisać program
odpowiadający na pytanie, czy dane n należy do X. Można nawet taki program
utworzyć automatycznie. Można też taką definicję zbioru X uznać za program badający należenie do X, wystarczy napisać program interpretujący takie definicje.
Z drugiej strony, z prostoty definicji powinno wynikać, że jest mało zbiorów tak
definiowanych. Tak jest w rzeczywistości, zwiększając liczbę zmian kwantyfikatorów definiujemy coraz więcej zbiorów. Ponieważ zbiory rekurencyjnie przeliczalne
są obliczalne, więc informatyka zajmuje się bardzo małą częścią zbiorów liczb naturalnych.
10
2.2
Przypomnienie pojęć
Formuła ϕ definiuje zbiór X ⊆ N k , jeżeli
(n1 , . . . , nk ) ∈ X ⇔ N |= ϕ[n1 , . . . , nk ]
dla wszystkich n1 , . . . , nk ∈ N . Formuła definiuje funkcję f , jeżeli definiuje jej
wykres Wf .
Symbolem Σ1 oznaczamy najmniejszą klasę formuł języka arytmetyki zawierającą formuły klasy ∆0 i zamkniętą ze względu na łączenie formuł koniunkcję i
alternatywą, dopisywanie ograniczonego kwantyfikatora ogólnego ∀x < t i kwantyfikatora egzystencjalnego.
Twierdzenie 2.1 Funkcja jest rekurencyjna wtedy i tylko wtedy, gdy jest definiowalna formułą klasy Σ1 .
Dowód. Istotny fragment dowodu to zamkniętość klasy funkcji definiowalnych
formułami klasy Σ1 ze względu na operację minimum. Przypuśćmy więc, że funkcja
f : N k+1 → N jest definiowana formułą ϕ ∈ Σ1 , formuła φ ∈ ∆0 definiuje funkcję
Gödla β i
h(~x) = µy (f (~x, y) = 0).
Funkcja h jest definiowana formułą
ψ(~x, z) = ϕ(~x, z, 0) ∧ ∃t ∀i < z ∃u < t (φ(t, i, u) ∧ u > 0 ∧ ϕ(~x, i, u)). 2
Wniosek 2.2 Zbiór X jest rekurencyjnie przeliczalny wtedy i tylko wtedy, gdy jest
definiowalny formułą klasy Σ1 .
3
Związki funkcji rekurencyjnych z arytmetyką
Symbolem A0 będziemy oznaczać prostą arytmetyką, złożoną z dziewięciu aksjomatów, zdefiniowaną wcześniej. Jeżeli n jest liczbą naturalną, to n jest przedstawieniem liczby n w języku arytmetyki, czyli termem zdefiniowanym w następujący
sposób:
0 = 0 oraz n + 1 = n + 1.
3.1
Reprezentowalność
Niech T będzie teorią zapisaną w języku arytmetyki. O formule ϕ mówimy, że
reprezentuje w teorii T funkcję f : N k → N , jeżeli warunek f (n1 , . . . , nk ) = m
implikuje, że
T ` ϕ[x1 ← n1 ] . . . [xk ← nk ] ⇔ y = m
dla wszystkich n1 , . . . , nk , m ∈ N . Funkcja jest reprezentowalna, jeżeli jest formuła
reprezentująca tę funkcję.
Formuła ϕ mocno reprezentuje zbiór X ⊆ N k , jeżeli
1) warunek (n1 , . . . , nk ) ∈ X implikuje, że T ` ϕ[x1 ← n1 ] . . . [xk ← nk ],
2) warunek (n1 , . . . , nk ) 6∈ X implikuje, że T ` ¬ϕ[x1 ← n1 ] . . . [xk ← nk ].
Formuła ϕ reprezentuje zbiór X ⊆ N k , jeżeli równoważne są warunki (n1 , . . . , nk ) ∈
X oraz T ` ϕ[x1 ← n1 ] . . . [xk ← nk ].
W oczywisty sposób definiujemy jeszcze zbiory mocno reprezentowalne i reprezentowalne.
11
Lemat 3.1 Przypuśćmy, że T ` 0 6= 1. Wtedy zbiór X jest reprezentowalny w T
wtedy i tylko wtedy, gdy funkcja charakterystyczna chX jest reprezentowalna w T .
Lemat 3.2 Jeżeli pewnien zbiór X 6= N k jest reprezentowalny w teorii T , to T
jest niesprzeczna.
Lemat 3.3 Jeżeli teoria T jest niesprzeczna, to każdy zbiór mocno reprezentowalny w T jest reprezentowalny w T .
3.2
Reprezentowalność funkcji rekurencyjnych
Lemat 3.4 Każda formuła
x < n + 1 ⇔ x = 0 ∨ x = 1 ∨ ... ∨ x = n
ma dowód w arytmetyce A0 , a więc
A0 ` x < n + 1 ⇔ x = 0 ∨ x = 1 ∨ . . . ∨ x = n.
Lemat 3.5 W arytmetyce A0 i każdej obszerniejszej teorii są mocno reprezentowalne relacje równości i mniejszości, a także ich dopełnienia (negacje).
Twierdzenie 3.6 W arytmetyce A0 i każdej obszerniejszej teorii są reprezentowalne wszystkie funkcje rekurencyjne.
Wniosek 3.7 W arytmetyce A0 i każdej obszerniejszej teorii są mocno reprezentowalne wszystkie zbiory rekurencyjne.
4
4.1
Twierdzenie Gödla
Kodowanie formuł i dowodów
Oprócz ciągów, za pomocą liczb naturalnych będziemy kodować także znaki alfabetu, za pomocą którego zapisujemy formuły języka arytmetyki, w tym symbole
zmiennych indywiduowych. Przyjmijmy, że SN (z) oznacza liczbę naturalną kodującą znak z. O tej funkcji zakładamy, że jest różnowartościowa i przyjmuje wartości
parzyste wtedy i tylko wtedy, gdy argumentem jest zmienna.
Ustalenie sposobu kodowania znaków umożliwia kodowanie termów i formuł.
Dla termu t i formuły ϕ symbolami dte i dϕe będziemy oznaczać liczbę kodującą
odpowiednio ten term i tę formułe. Niech



hSN (t)i
jeżeli t jest zmienną lub stałą,
dte =  hSN (+), dt1 e , dt2 ei jeżeli t = t1 + t2 ,

hSN (·), dt1 e , dt2 ei jeżeli t = t1 · t2 .
Liczbę dϕe kodującą daną formułę ϕ definiujemy analogicznym wzorem.
Lemat 4.1 Relacje
T erm(a) ⇔ a = dte dla pewnego termu t
oraz
F orm(a) ⇔ a = dϕe dla pewnej formuły ϕ
są rekurencyjne. Istnieje też rekurencyjna i całkowita funkcja Sub taka, że
Sub(dϕe , SN (x), dte) = dϕ[x ← t]e
dla wszystkich formuł ϕ, zmiennych x i termów t.
12
Teraz powinniśmy ustalić pewien system logiczny. Przyjmijmy, że będziemy
zajmować się systemem z książki Shoenfielda. Niech ϕ1 , . . . , ϕn będzie dowodem w
tym systemie. Kodem tego dowodu będziemy nazywać liczbę
hdϕ1 e , . . . , dϕn ei.
Lemat 4.2 Relacja
PrfT (a, b) ⇔ istnieje formuła ϕ taka, że b = dϕe oraz a koduje jej dowód w teorii T
jest rekurencyjna pod warunkiem, że zbiór aksjomatów teorii T jest rekurencyjny.
4.2
Twierdzenie Gödla
Teoria T (w języku arytmetyki) jest ω-niesprzeczna, jeżeli zawsze w sytuacji, gdy
T ` ϕ[x ← n] dla wszystkich liczb n ∈ N , w T nie można dowieść formuły
∃x ¬ϕ. Nietrudno zauważyć, że teorie ω-niesprzeczne są niesprzeczne, jak również,
że ω-niesprzeczne są teorie, których aksjomaty są spełnione w naturalnym modelu
arytmetyki N .
Twierdzenie 4.3 (Gödel) Przypuśćmy, że T jest teorią zapisaną w języku arytmetyki z rekurencyjnym zbiorem aksjomatów i zawierającą teorię A0 . Jeżeli teoria
T jest ω-niesprzeczna, to jest niezupełna.
Dowód. Przedstawię teraz wersję orginalnego dowodu Gödla pokazującą, jak można wykorzystać następujący lemat przekątniowy.
Lemat 4.4 Przyjmijmy, że U ⊆ N 2 oraz Ua = {b ∈ N : (a, b) ∈ U }. Wtedy zbiór
P = {a ∈ N : (a, a) 6∈ U } jest różny od wszystkich zbiorów postaci Ua .
W dowodzie Gödla można przyjąć, że
U = {(a, b) ∈ N 2 : ∃ϕ ∈ F a = dϕe ∧ T ` ϕ[x ← b]},
gdzie x jest ustaloną zmienną, a F oznacza zbiór formuł. Dla takiego zbioru U ,
zbiór P z lematu przekątniowego spełnia równość
P = {a ∈ N : ∀ϕ ∈ F (a = dϕe ⇒ T 6` ϕ[x ← a])}.
Dowód przekątniowy zwykle polega na wykazaniu, że z pewnych założeń wynika,
że zbiór P jest jednym ze zbiorów Ua . W ten sposób uzyskujemy sprzeczność
z lematem przekątniowym świadczącą o fałszywość przyjętych założeń (zwykle
założeń dowodu nie wprost). Zajmijmy się więc definicją P .
Warunek
∀ϕ ∈ F (a = dϕe ⇒ T 6` ϕ[x ← a])
jest równoważny warunkowi
∀ϕ ∈ F (a = dϕe ⇒ ¬∃y ∈ N PrfT (y, Sub(dϕe , SN (x), dae))),
który daje się zapisać w postaci
F orm(a) ⇒ ¬∃y ∈ N PrfT (y, Sub(a, SN (x), dae)),
a po prostych przekształceniach logicznych także w postaci
∀y ∈ N ¬(F orm(a) ∧ PrfT (y, Sub(a, SN (x), dae)).
13
Zbiór U został zdefiniowany jako zbiór tych liczb, o których coś tam można
dowieść w teorii T . Naszym celem jest pokazanie równości P = Ua , a więc musimy znaleźć analogiczną definicję zbioru P . Jest to możliwe dzięki rekurencyjności
relacji
R(a, y) ⇔ F orm(a) ∧ PrfT (y, Sub(a, SN (x), dae)
i reprezentowalności takich relacji. Weźmy więc formułę φ reprezentującą w teorii
T relację R. Tak więc
R(a, y) ⇒ T ` φ[x ← a][z ← y]
oraz
¬R(a, y) ⇒ T ` ¬φ[x ← a][z ← y].
Jeżeli reprezentujemy w teoriach niesprzecznych, to podane implikacje można zastąpić równoważnościami. W szczególności mamy więc, że
¬R(a, y) ⇔ T ` ¬φ[x ← a][z ← y]
i zbiór P można zdefiniować także w następujący sposób
P = {a ∈ N : ∀y ∈ N T ` ¬φ[x ← a][z ← y]}.
Chcielibyśmy jednak zdefiniować go w postaci
P = {a ∈ N : T ` ψ[x ← a]}
dla pewnej formuły ψ. Gdyby nam to się udało, to byłaby prawdziwa równość
P = Udψe i uzyskalibyśmy sprzeczność. Musimy więc znaleźć kandydata na ψ i
dowieść odpowiednią równoważność.
Aby znaleźć ψ zauważmy, że ważnymi teoriami T są fragmenty teorii modelu standardowego, np. teoria A0 . Gdyby taka teoria była zupełna, to musiałaby
być równa teorii modelu standardowego. Jeżeli wszystkie zdania postaci ¬φ[x ←
a][z ← y] dla y ∈ N są prawdziwe w modelu standardowym, to jest w nim także
prawdziwe zdanie ∀z ¬φ[x ← a] i za ψ można wziąć to ostatnie zdanie. Przedstawione rozumowanie dowodzi, że żadna rekurencyjna teoria zawarta w teorii modelu
standardowego nie jest zupełna.
Tak więc powinniśmy próbować dowieść równoważność
∀y ∈ N T ` ¬φ[x ← a][z ← y] ⇐⇒ T ` ∀z ¬φ[x ← a].
Implikacja w „w lewo” jest oczywista, implikacja „w prawo” pozwoli nam uzyskać
sprzeczność.
Załóżmy więc, że T ` ¬φ[x ← a][z ← y] dla wszystkich y ∈ N . Wtedy, na
mocy ω-niesprzeczności, T 6` ∃z ¬¬φ[x ← a], czyli T 6` ¬∀z ¬φ[x ← a]. Jeżeli
teraz założymy dla dowodu nie wprost, że teoria T jest zupełna, to jako wniosek
otrzymamy, że T ` ∀z ¬φ[x ← a].
Z wcześniejszej analizy wiemy jednak, że ten wniosek prowadzi do sprzeczności.
Tak więc teoria T jest niezupełna. Twiedzenie Gödla zostało więc dowiedzione, ale
bez wskazania formuły, której nie da się ani dowieść, ani obalić.
W dotychczasowych dowodach uzyskiwaliśmy sprzeczność pokazując, że P =
Ud∀z ¬φe . Z dowodu lematu przekątniowego wiemy jednak, że te zbiory różnią się
elementem m = d∀z ¬φe. Wiemy też, że Ud∀z ¬φe ⊆ P . Wobec tego, m ∈ P , ale
m 6∈ Ud∀z ¬φe . Stąd otrzymujemy odpowiednio, że
∀y ∈ N T ` ¬φ[x ← m][z ← y] oraz T 6` ∀z ¬φ[x ← m].
14
Korzystając z założenia ω-niesprzeczności możemy przekształcić pierwszy człon tej
koniunkcji. Wtedy otrzymamy
T 6` ¬∀z ¬φ[x ← m] oraz T 6` ∀z ¬φ[x ← m].
Oznacza to, że w teorii T nie potrafimy dowieść ani formuły ∀z ¬φ[x ← m],
ani jej negacji. To kończy dowód twierdzenia Gödla polegający na konstrukcji
odpowiedniej formuły. 2
5
Twierdzenie Gödla wegług Churcha
Przyjmijmy, że T oznacza niesprzeczną teorię zapisaną w języku arytmetyki i zawierającą arytmetykę A0 . Niech U będzie zbiorem z dowodu twierdzenia Gödla:
U = {(a, b) ∈ N 2 : ∃ϕ ∈ F a = dϕe ∧ T ` ϕ[x ← b]}.
Twierdzenie 5.1 (Church) Zbiór U jest rekurencyjnie przeliczalny i nie jest rekurencyjny.
Dowód. Rekurencyjna przeliczalność U jest oczywista. Sprowadzimy więc do
sprzeczności założenie, że U jest rekurencyjny.
Jak zwykle przyjmujemy, że P = {b ∈ N : (b, b) 6∈ U }. Jeżeli U jest rekurencyjny, to także P jest rekurencyjny i mocno reprezentowalny w T . Załóżmy,
że ϕ mocno reprezentuje P . Ponieważ P jest mocno reprezentowalny w teorii niesprzecznej, więc
b ∈ P ⇐⇒ T ` ϕ[x ← b].
Stąd wynika, że
P = {b ∈ N : T ` ϕ[x ← b]} = {b ∈ N : (dϕe , b) ∈ U } = Udϕe .
Z lematu przekątniowego wiemy jednak, że nie jest to możliwe. 2
Wniosek 5.2 Jeżeli T jest niesprzeczną teorią aksjomatyzowalną, to
{a ∈ N : ∃ϕ ∈ F a = dϕe ∧ ϕ jest zdaniem ∧ T ` ϕ}
oraz
{a ∈ N : ∃ϕ ∈ F a = dϕe ∧ T ` ϕ}
nie są rekurencyjne. W szczególności zbiory twierdzeń arytmetyki A0 i arytmetyki
Peano nie są rekurencyjne.
Dowód. Jeżeli drugi z tych zbiorów oznaczymy symbolem X i przyjmiemy, że jest
rekurencyjny, to dzięki równoważności
(a, b) ∈ U ⇐⇒ Sub(a, SN (x), dbe) ∈ X
pokażemy, że U jest rekurencyjny. To jednak nie jest możliwe. 2
Lemat 5.3 Jeżeli T jest teorią niesprzeczną, zupełną i aksjomatyzowalną, to
{a ∈ N : ∃ϕ ∈ F a = dϕe ∧ ϕ jest zdaniem ∧ T ` ϕ}
jest rozstrzygalny.
15
Dowód. Niech A będzie zbiorem z tezy lematu i niech
B = {a ∈ N : ∃ϕ ∈ F a = dϕe ∧ ϕ jest zdaniem ∧ T ` ¬ϕ}.
Oba te zbiory są rekurencyjnie przeliczalne. Mamy więc
a ∈ A ⇔ ∃n R(a, n) oraz a ∈ B ⇔ ∃n S(a, n)
dla pewnych rekurencyjnych relacji R i S. Niech f będzie funkcją rekurencyjną
taką, że
f (a) = µn (R(a, n) ∨ S(a, n) ∨ ¬(F orm(a) ∧ n = 0)).
Zupełność T implikuje, że jest to funkcja całkowita (F orm(a) powinno oznaczać,
że a jest numerem zdania). Zauważmy, że
a ∈ A ⇐⇒ R(a, f (a)),
a to oznacza, że A jest relacją rekurencyjną. 2

Podobne dokumenty