1 Pojęcie spełniania

Transkrypt

1 Pojęcie spełniania
1
1
Pojęcie spełniania
Przypuśćmy, że mamy daną strukturę A o uniwersum A i z interpretacjami r A , f A i cA
odpowiednio symboli relacyjnych r, symboli funkcyjnych f i stałych c z rozważanego języka.
Mając daną taką strukturę definiujemy pojęcia wartości termu i spełniania formuł.
Wartościowaniem w strukturze A nazywamy dowolną funkcję przyporządkowującą zmiennym (indywiduowym) elementy uniwersum A.
1.1
Wartość termu
Wartością t[h] termu t w strukturze A przy wartościowaniu h nazywamy
1) cA , gdy term t jest stała c,
2) h(x), gdy term t jest zmienną x,
3) f A (t1 [h], . . . , tn [h]), gdy term t jest postaci f (t1 , . . . , tn ).
1.2
Spełnianie formuły
Zapis A |= ϕ[h] oznacza, że formuła ϕ jest spełniona w strukturze A przy wartościowaniu h.
Zgodnie z definicją, formuła ϕ jest spełniona w strukturze A przy wartościowaniu h, jeżeli
1) (t1 [h], . . . , tn [h]) ∈ r A w przypadku, gdy ϕ = r(t1 , . . . , tn ),
2) w strukturze A przy wartościowaniu h spełniona jest jedna z formuł: ϕ1 lub ϕ2 , gdy
ϕ = ϕ 1 ∨ ϕ2 ,
3) w strukturze A przy wartościowaniu h nie jest spełniona formuła ϕ1 , gdy ϕ = ¬ϕ1 ,
4) w przypadku, gdy ϕ = ∃xϕ1 , zmieniając wartościowanie h najwyżej dla argumentu x
można otrzymać wartościowanie h0 spełniające w strukturze A formułę ϕ1 .
Mówimy, że w strukturze A spełniona jest formuła ϕ, jeżeli jest ona spełniona w tej strukturze przy każdym wartościowaniu.
Niech teraz T oznacza pewną teorię, czyli pewien zbiór formuł (definiując w ten sposób pojęcie teorii, teorię utożsamiamy ze zbiorem jej aksjomatów). Strukturę A nazywamy modelem
teorii T , jeżeli są w niej spełnione wszystkie formuły należące do T , czyli wszystkie aksjomaty
teorii T .
1.3
Twierdzenie o pełności
Twierdzenie 1.1 (o poprawności) Jężeli w strukturze A są spełnione wszystkie formuły z
teorii T (ze zbioru T ) oraz T ` ϕ, to w strukturze A spełniona jest formuła ϕ.
Twierdzenie o poprawności, a także kolejne twierdzenie o pełności, powinno być prawdziwe
dla każdej formalizacji logiki klasycznej, w tym dla zdefiniowanych formalizacji.
Twierdzenie 1.2 (Gödla o pełności, 1929) Jeżeli formuła ϕ jest spełniona we wszystkich
modelach teorii T , to T ` ϕ.
2
2
2.1
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 . Tak więc ten zapis ma znaczenie inne
niż zwykle. Tak rozumiane funkcje nazywa się częściowymi. Funkcja 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ą).
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 ) oraz 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ę
3
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.
2.2
Definicja klasy funkcji rekurencyjnych
Definicje funkcji rekurencyjnych zmieniały się wraz z rozwojem badań. Pierwszą definicję
podał Gödel. Rekurencyjnymi nazywał on następujące funkcje: następnik S, funkcje stałe, I n,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. Zgodnie z definicją
Kleene’ego, Klasa funkcji rekurencyjnych to najmniejsza klasa funkcji zawierająca I n,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ęć.
Zbiór X ⊆ N k jest rekurencyjny, jeżeli jego funkcja charakterystyczna chX jest rekurencyjna. 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 .
Kleene przyjmował, że 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ę funkcji rekurencyjnych definiujemy przyjmując, że zawiera In,k , dodawanie,
mnożenie, ch< i jest zamknięta ze względu na złożenie oraz operację minimum. 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 jest to najmniejsza klasa funkcji (częściowych) zawierająca funkcji In,k i zamknięta ze względu na składanie, rekursję
prostą i operację minimum.
4
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.
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.
5
3.3
Kodowanie ciągów
Niech ∆0 oznacza najmniejszą klasę formuł języka arytmetyki 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.
Twierdzenie 3.8 Istnieją formuła φ klasy ∆0 i całkowita funkcja β : 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 , . . . , an−1 istnieje liczba a taka, że równości β(a, i) = ai są prawdziwe
dla wszystkich i < n.
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ę.
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).
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ść funkcji β.
Ł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).
Pozostało więc dowieść, że funkcja β ma podane własności.
Przypuśćmy, że chcemy zakodować ciąg a0 , . . . , an−1 . Wtedy bierzemy liczbę b taką, że
b > op(ai , i) dla wszystkich i < n i tworzymy iloczyn
c=
Y
i<n
(1 + (op(ai , i) + 1) · b!).
6
Zauważmy, że
N |= δ(op(c, b!), i, ai )
dla wszystkich i < n. 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(ak , k) dla k < n. Teraz różnowartościowość op implikuje, że d = ai , co jest niemożliwe 2
3.4
Definiowalność
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 3.9 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 3.10 Zbiór X jest rekurencyjnie przeliczalny wtedy i tylko wtedy, gdy jest definiowalny formułą klasy Σ1 .
3.5
Kodowanie ciągów liczb, formuł i dowodów
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 ∧
^
i<n
(x)i = ai ).
7
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 3.11 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.
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 3.12 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
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.1 (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.
8
Dowód. Przedstawię teraz wersję orginalnego dowodu Gödla pokazującą, jak można wykorzystać następujący lemat przekątniowy.
Lemat 4.2 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)).
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]}.
9
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 = U d∀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].
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.
10
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.
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