M
ETODYD
OWODZENIAT
WIERDZE ´NI A
UTOMATYZACJAR
OZUMOWA ´NW YKŁAD 10: F UNKCJE R EKURENCYJNE
III rok kognitywistyki UAM, 2016–2017
1 Wst˛ep
Uwaga. Niniejsza prezentacja w ˙zadnej mierze nie jest przybli˙zonym cho´cby wy- kładem teorii funkcji rekurencyjnych. Ograniczamy si˛e do definicji wybranych po- j˛e´c, podajemy nieco przykładów i formułujemy kilka twierdze´n. Jest oczywiste, ˙ze nie zd ˛a˙zymy w ci ˛agu 45 minut omówi´c wszystkich zagadnie´n anonsowanych w ni- niejszym tek´scie – zach˛ecamy jednak zainteresowanych słuchaczy do jego lektury.
Cele tej prezentacji s ˛a zasadniczo dwa:
1. pokazanie, ˙ze intuicyjne poj˛ecie obliczalno´sci mo˙zna reprezentowa´c mate- matycznie;
2. oswojenie słuchaczy z operacjami kodowania, które b˛ed ˛a wykorzystywane w arytmetyzacji składni.
Słuchacze zainteresowani teori ˛a funkcji rekurencyjnych zechc ˛a skorzysta´c z literatury przedmiotu podanej na ko´ncu prezentacji.
Metoda obliczalna (efektywna): w sko´nczonej liczbie prostych, mechanicz- nych kroków daje odpowied´z dla dowolnych danych ustalonej postaci. Dane mog ˛a mie´c struktur˛e zło˙zon ˛a. Obliczenie za pomoc ˛a metody efektywnej nazywa si˛e al- gorytmem.
Podane wy˙zej poj˛ecie obliczalno´sci ma charakter intuicyjny. Mo˙zliwe s ˛a jego ró˙zne matematyczne precyzacje.
1. Przykład metody efektywnej: algorytm ustalania, czy dana formuła j˛ezyka Klasycznego Rachunku Zda´n jest prawem (tautologi ˛a) tego rachunku.
2. Przykład problemu, dla którego nie istnieje metoda obliczalna: ustalanie, czy dowolna formuła j˛ezyka Klasycznego Rachunku Predykatów jest prawem (tautologi ˛a) tego rachunku.
Nie´smiertelne monogamiczne kazirodcze króliki:
1. Mamy Pierwsz ˛a Par˛e królików (samca i samic˛e). Chcemy obliczy´c, ile par królików otrzymamy po n miesi ˛acach przy zało˙zeniu, ˙ze ka˙zda para króli- ków rodzi co miesi ˛ac now ˛a par˛e (samca i samic˛e), która staje si˛e reproduk- tywna po miesi ˛acu (i natychmiast z tego korzysta).
2. Nadto, króliki ˙zyj ˛a wiecznie, s ˛a monogamiczne i kazirodcze (pocz ˛awszy od drugiej pary tylko brat z siostr ˛a daj ˛a potomstwo; Pierwsza Para te˙z konty- nuuje prokreacj˛e), oraz nie ustaj ˛a w rozmna˙zaniu. [Jest równie˙z wersja ze
´smiertelnymi królikami.]
Ci ˛ag Fibonacciego:
1. F (0) = 0 2. F (1) = 1
3. F (n) = F (n − 1) + F (n − 2) dla n> 2 Ci ˛ag Mosera-Steinhausa:
Wprowad´zmy oznaczenia (oryginalna symbolika Steinhausa była inna):
1. 4(n) oznacza nn
2. (n) oznacza iterowanie n razy operacji 4 dla argumentu n 3. F(n) oznacza iterowanie n razy operacji dla argumentu n.
Czy potrafisz obliczy´cF(2)?
1. F(2) = ((2)) = (4(4(2))) 2. 4(4(2)) = 4(22) = 4(4) = 44 = 256
3. F(2) = (256) = 4(4 . . . (4(256) . . .)), gdzie operacja 4 wykonywana jest 256 razy.
Masz: 4(4(256)) = (256256)(256256) = (256256)256·256256 = 256(256257) a dalej licz samodzielnie:)
W notacji Steinhausa argumenty były umieszczane wewn ˛atrz wielok ˛atów. Kon- strukcj˛e: n w m p-k ˛atach (p > 3) opisuje funkcja M (n, m, p), okre´slona przez nast˛epuj ˛ace zale˙zno´sci:
1. M (n, 1, 3) = nn
2. M (n, 1, p + 1) = M (n, n, p)
3. M (n, m + 1, p) = M (M (n, 1, p), m, p).
LiczbaF2 (czyli 2 w pi˛eciok ˛acie) nazywana jest czasem mega, za´s 2 w mega- k ˛acie (czyli wielok ˛acie o mega bokach) nosi nazw˛e moser. Liczb˛eF10 (czyli 10 w pi˛eciok ˛acie) nazywa si˛e megiston:
1. mega=M (2, 1, 5) 2. megiston=M (10, 1, 5) 3. moser=M (2, 1, M (2, 1, 5)).
Obliczenia traktujemy jako operacje na danych. Argumenty oblicze´n (dane) mog ˛a mie´c ró˙zne struktury (liczby, ci ˛agi symboli, drzewa, itd.). Ka˙zde obliczenie mo˙ze by´c reprezentowane przez drzewo:
1. w korzeniu znajduje si˛e wynik obliczenia 2. w li´sciach znajduj ˛a si˛e dane (argumenty)
3. pozostałe wierzchołki odpowiadaj ˛a cz˛e´sciowym obliczeniom, prowadz ˛acym do wyniku.
Izomorfizm Curry’ego-Howarda ustala odpowiednio´s´c mi˛edzy dowodami a ob- liczeniami (o czym słuchacze by´c mo˙ze dowiedz ˛a si˛e na konwersatorium). W ramach wykładu interesuje nas natomiast mo˙zliwo´s´c wykorzystania matematycz- nych modeli obliczalno´sci w dowodach twierdze´n metalogicznych.
2 Funkcje rekurencyjne
Łaci´nskie recurrere znaczy m.in.: przybiec na powrót, wróci´c do czego´s, pospie- szy´c na powrót, a recursare znaczy: wraca´c, cz˛esto powraca´c. Obliczanie warto´sci pewnych funkcji dla argumentu n + 1 wymaga znajomo´sci warto´sci tych funkcji dla argumentów 0, 1, 2, . . . , n. Rozwa˙zamy przy tym nie całkiem dowolne funkcje, ale jedynie takie, których warto´sci otrzymujemy w sposób efektywny (obliczalny).
Za funkcje obliczalne uznamy np. funkcje stałe (nic nie trzeba liczy´c), funkcj˛e na- st˛epnika (dodanie jedynki do liczby), funkcje rzutu (wybranie liczby ze sko´nczo- nej listy). Uznamy, ˙ze składaj ˛ac funkcje obliczalne otrzymamy funkcj˛e obliczaln ˛a.
Uznamy te˙z, ˙ze pewne inne operacje (rekursja prosta, minimum efektywne) stoso- wane do funkcji obliczalnych daj ˛a funkcje obliczalne.
2.1 Podstawowe definicje
Cz˛e´sciowe funkcje liczbowe f (x1, . . . , xn) (dla n = 1, 2, . . .), to funkcje okre´slone na pewnym podzbiorze zbioru ωno warto´sciach b˛ed ˛acych liczbami naturalnymi.
W tym wykładzie ω to zbiór wszystkich liczb naturalnych. n-argumentowa funk- cja f (x1, . . . , xn) jest całkowita, je´sli jej dziedzin ˛a jest cały zbiór ωn, czyli gdy dom(f ) = ωn.
Nast˛epuj ˛ace funkcje całkowite nazywamy prostymi:
1. s(x) = nast˛epnik x (czyli dodanie jedynki do x), 2. o(x) = 0 (funkcja stała równa 0),
3. Imn(x1, . . . , xn) = xm (dla 16 m 6 n) (rzut na m-t ˛a współrz˛edn ˛a).
Funkcja h(x1, . . . , xn) = g(f1(x1, . . . , xn), . . . , fm(x1, . . . , xn)) otrzymywana jest z funkcji g, f1, . . . , fm przez operacj˛e zło˙zenia.
Funkcj˛e f (x1, . . . , xn, y) otrzymujemy z funkcji g(x1, . . . , xn) oraz h(x1, . . . , xn, y, z) za pomoc ˛a schematu rekursji prostej, je˙zeli:
1. f (x1, . . . , xn, 0) = g(x1, . . . , xn),
2. f (x1, . . . , xn, y + 1) = h(x1, . . . , xn, y, f (x1, . . . , xn, y)).
Dla n = 0 schemat rekursji prostej przyjmuje nast˛epuj ˛ac ˛a posta´c:
1. f (0) = a,
2. f (y + 1) = g(y, f (y)),
gdzie a jest jednoargumentow ˛a funkcj ˛a stał ˛a o warto´sci a.
Je˙zeli funkcja g(x1, . . . , xn) spełnia warunek:
1. (∗) dla wszystkich x1, . . . , xnistnieje y taka, ˙ze g(x1, . . . , xn, y) = 0, to mówimy, ˙ze funkcja f (x1, . . . , xn) okre´slona warunkiem:
f (x1, . . . , xn) = µy [g(x1, . . . , xn, y) = 0]
(czytamy: f (x1, . . . , xn) = najmniejsza y taka, ˙ze g(x1, . . . , xn, y) = 0) jest zdefiniowana przez minimum efektywne. Warunek (∗) nazywamy warunkiem efektywno´sci.
Funkcje okre´slone za pomoc ˛a minimum efektywnego stosowanego do funkcji całkowitych s ˛a całkowite.
Je˙zeli relacja R spełnia warunek:
∀x1. . . ∀xn∃y R(x1, . . . , xn, y),
to mówimy, ˙ze funkcja f (x1, . . . , xn) jest zdefiniowana z relacji R przez minimum efektywne, gdy: f (x1, . . . , xn) = µy R(x1, . . . , xn, y), gdzie µy R(x1, . . . , xn, y) jest najmniejsz ˛a liczb ˛a y, dla której zachodzi R(x1, . . . , xn, y).
Dla przykładu, funkcj˛e f (x) = blog2xc mo˙zna zdefiniowa´c przez minimum efektywne: f (x) = µy (2y+1 > x). Tutaj b c jest funkcj ˛a podłogi i przyjmujemy log20 = 0.
Funkcj˛e f (x1, . . . , xn) otrzymujemy z funkcji g(x1, . . . , xn, y) za pomoc ˛a ope- racji minimum (za pomoc ˛a µ-operatora), co zaznaczamy nast˛epuj ˛aco:
f (x1, . . . , xn) ' µy [g(x1, . . . , xn, y) = 0], gdy spełniony jest warunek:
f (x1, . . . , xn) jest okre´slona i równa y wtedy i tylko wtedy, gdy g(x1, . . . , xn, 0), . . . , g(x1, . . . , xn, y − 1)
s ˛a wszystkie okre´slone i ró˙zne od 0, za´s g(x1, . . . , xn, y) = 0.
Funkcje otrzymane przez operacj˛e minimum (bez warunku efektywno´sci) mog ˛a nie by´c całkowite.
2.2 Funkcje: pierwotnie, cz˛e´sciowo i ogólnie rekurencyjne
1. Funkcja f (x1, . . . , xn) jest pierwotnie rekurencyjna, je´sli mo˙ze by´c otrzy- mana z funkcji prostych za pomoc ˛a sko´nczonej liczby zastosowa´n operacji zło˙zenia oraz rekursji prostej.
2. Funkcja f (x1, . . . , xn) jest cz˛e´sciowo rekurencyjna, je´sli mo˙ze by´c otrzy- mana z funkcji prostych za pomoc ˛a sko´nczonej liczby zastosowa´n operacji zło˙zenia, rekursji prostej oraz operacji minimum.
3. Funkcja f (x1, . . . , xn) jest ogólnie rekurencyjna (krótko: rekurencyjna), gdy jest ona całkowit ˛a funkcj ˛a cz˛e´sciowo rekurencyjn ˛a.
Ka˙zda funkcja pierwotnie rekurencyjna jest te˙z ogólnie rekurencyjna (lecz nie na odwrót).
Funkcj˛e f (x1, . . . , xn) otrzymujemy z funkcji
g(x1, . . . , xn, y) oraz h(x1, . . . , xn)
za pomoc ˛a ograniczonego µ-operatora, je´sli dla wszystkich x1, . . . , xn:
µy[g(x1, . . . , xn, y) = 0]
jest okre´slona i nie wi˛eksza od h(x1, . . . , xn) oraz
f (x1, . . . , xn) = µy [g(x1, . . . , xn, y) = 0].
W szczególno´sci, je´sli h(x1, . . . , xn) = a jest funkcj ˛a stał ˛a, to piszemy:
f (x1, . . . , xn) = µy 6 a [g(x1, . . . , xn, y) = 0].
2.3 Zbiory i relacje rekurencyjne
Niech P b˛edzie dowoln ˛a n-argumentow ˛a relacj ˛a na zbiorze ω. Funkcj˛e χP(x1, . . . , xn) nazywamy funkcj ˛a charakterystyczn ˛a relacji P , je´sli funkcja ta spełnia warunek
χP(x1, . . . , xn) =
0, gdy P (x1, . . . , xn) zachodzi, 1, gdy P (x1, . . . , xn) nie zachodzi.
Relacja P ⊆ ωnjest rekurencyjna (pierwotnie rekurencyjna), je´sli jej funkcja charakterystyczna jest ogólnie rekurencyjna (pierwotnie rekurencyjna). W szcze- gólno´sci, funkcje charakterystyczne zbiorów to funkcje charakterystyczne relacji jednoargumentowych.
Uwaga. W niektórych podr˛ecznikach przez funkcj˛e charakterystyczn ˛a relacji P rozumie si˛e funkcj˛e 1 − χP(x1, . . . , xn). To kwestia umowy, przyjmowanej dla wygody oblicze´n.
2.4 Inna definicja funkcji rekurencyjnych
W my´sl innej definicji zbiór funkcji rekurencyjnych to najmniejszy zbiór funkcji:
1. zawieraj ˛acy funkcje rzutu Imn, dodawania +, mno˙zenia · i funkcj˛e charakte- rystyczn ˛a χ<relacji mniejszo´sci <,
2. domkni˛ety na operacje zło˙zenia funkcji oraz definiowanie przez minimum efektywne.
Obie te definicji okre´slaj ˛a t˛e sam ˛a klas˛e funkcji:
1. mo˙zna pokaza´c, ˙ze +, · i χ<s ˛a pierwotnie rekurencyjne (zobacz ni˙zej);
2. mo˙zna pokaza´c, ˙ze schemat rekursji prostej daje si˛e wyrazi´c za pomoc ˛a mi- nimum efektywnego.
Rozwa˙za si˛e wiele typów rekursji: zwrotna, jednoczesna, ograniczona, itd.
2.5 Kilka oznacze ´n Stosujemy oznaczenie:
f (x1, . . . , xn) = µy[g(x1, . . . , xn, y) = h(x1, . . . , xn, y)],
gdy spełniony jest warunek: f (x1, . . . , xn) jest okre´slone i równe y wtedy i tylko wtedy, gdy g(x1, . . . , xn, i) oraz h(x1, . . . , xn, i) s ˛a okre´slone dla i = 0, 1, . . . , y, g(x1, . . . , xn, i) 6= h(x1, . . . , xn, i) dla i < y oraz g(x1, . . . , xn, y) = h(x1, . . . , xn, y).
W podobny sposób rozumiemy oznaczenia:
1. µy[g(x1, . . . , xn, y) 6= h(x1, . . . , xn, y)], 2. µy[g(x1, . . . , xn, y) 6 h(x1, . . . , xn, y)], 3. µy[g(x1, . . . , xn, y) < h(x1, . . . , xn, y)], itd.
B˛edziemy mówi´c, ˙ze funkcj˛e f (x) otrzymujemy z funkcji g(x) przez iteracj˛e i oznacza´c ten fakt przez f (x) = ig(x), gdy
1. f (0) = 0,
2. f (x + 1) = g(f (x)).
B˛edziemy mówi´c, ˙ze funkcj˛e f (x) otrzymujemy z funkcji g(x) przez odwró- cenie i zaznacza´c ten fakt przez f (x) = g−1(x), gdy
f (x) = µy[g(y) = x].
Niech G b˛edzie pewn ˛a rodzin ˛a n-argumentowych funkcji cz˛e´sciowych. Funk- cj˛e n + 1-argumentow ˛a F nazwiemy funkcj ˛a uniwersaln ˛a dla G, je´sli
G = {F (0, x1, . . . , xn), F (1, x1, . . . , xn), F (2, x1, . . . , xn), . . .}.
2.6 Przykłady funkcji pierwotnie rekurencyjnych Nast˛epuj ˛ace funkcje s ˛a pierwotnie rekurencyjne:
1. (1) f (x) = x + n;
2. (2) f (x) = n;
3. (3) f1(x, y) = x + y;
4. (4) f2(x, y) = x · y;
5. (5) f3(x, y) = xy (przyjmujemy 00= 1);
6. (6) f (x) = x! (przyjmujemy 0! = 1).
Dowód (pierwotnej rekurencyjno´sci tych funkcji).
1. (1) f (x) = s(s(. . . s
| {z }
n razy
(x) . . .)).
2. (2) f (x) = s(s(. . . s
| {z }
n razy
(o(x)) . . .)).
3. (3) f1(x, y) = x + y otrzymujemy przez rekursj˛e prost ˛a: f1(0, y) = y = I11(y), f1(x + 1, y) = (x + y) + 1 = s(f1(x, y)).
4. (4) f2(x, y) = x·y otrzymujemy przez rekursj˛e prost ˛a: f2(0, y) = 0 = o(y), f2(x + 1, y) = (x · y) + y = f1(f2(x, y), y)
5. (5) f3(x, y) = xy otrzymujemy przez rekursj˛e prost ˛a: f3(x, 0) = 1 = s(o(x)), f3(x, y + 1) = xy· x = f2(f3(x, y), x).
6. (6) f (0) = 1, f (x + 1) = s(x) · f (x).
Nast˛epuj ˛ace funkcje s ˛a pierwotnie rekurencyjne:
1. (7) sg(x) =
0, gdy x = 0 1, gdy x > 0;
2. (8) sg(x) =
0, gdy x > 0 1, gdy x = 0;
3. (9) x.1 =
0, gdy x = 0
x − 1, gdy x > 0;
4. (10) x.y =
0, gdy x 6 y
x − y, gdy x > y;
5. (11) |x − y|;
6. (12) max(x, y);
7. (13) min(x, y).
Dowód.
1. (7) sg(0) = 0; sg(x + 1) = s(o(x)).
2. (8) sg(0) = 1, sg(x + 1) = o(x).
3. (9) 0.1 = 0, (x + 1).1 = x.
4. (10) x.0 = x, x.(y + 1) = (x.y).1.
5. (11) |x − y| = (x.y) + (y .x).
6. (12) max(x, y) = x · sg(x.y) + y · sg(x.y).
7. (13) min(x, y) = x · sg(y.x) + y · sg(y .x).
Niech funkcje f0, f1, . . . , fs maj ˛a nast˛epuj ˛ac ˛a własno´s´c: dla dowolnych argu- mentów x1, . . . , xn jedna i tylko jedna z tych funkcji równa jest 0. Powiemy, ˙ze funkcja g jest okre´slona warunkowo, gdy
g(x1, . . . , xn) =
h0(x1, . . . , xn), gdy f0(x1, . . . , xn) = 0,
. . . .
hs(x1, . . . , xn), gdy fs(x1, . . . , xn) = 0.
Je´sli funkcje h0, . . . , hs, f0, . . . , fs s ˛a pierwotnie rekurencyjne, to g jest pier- wotnie rekurencyjna.
Dowód. g(x1, . . . , xn) = h0(x1, . . . , xn) · sg(f0(x1, . . . , xn)) + . . .
. . . + hs(x1, . . . , xn) · sg(fs(x1, . . . , xn)).
Niech g, α, β b˛ed ˛a funkcjami pierwotnie rekurencyjnymi. Wtedy nast˛epuj ˛ace funkcje s ˛a pierwotnie rekurencyjne:
(14) f (x1, . . . , xn, xn+1) =
xn+1
P
i=0
g(x1, . . . , xn, i);
(15) f (x1, . . . , xn, y, z) =
Pz i=y
g(x1, . . . , xn, i), gdy y 6 z,
0, gdy y > z;
(16) f (x1, . . . , xn, y1, . . . , ym) =
=
β(y1,...,ym)
P
i=α(y1,...,ym)
g(x1, . . . , xn, i), gdy α(y1, . . . , ym) 6 β(y1, . . . , ym),
0, w pozostałych przypadkach;
(17) f (x1, . . . , xn, xn+1) =
xn+1
Q
i=0
g(x1, . . . , xn, i);
(18) f (x1, . . . , xn, y, z) =
z
Q
i=y
g(x1, . . . , xn, i), gdy y 6 z
0, gdy y > z;
(19) f (x1, . . . , xn, y1, . . . , ym) =
=
β(y1,...,ym)
Q
i=α(y1,...,ym)
g(x1, . . . , xn, i), gdy α(y1, . . . , ym) 6 β(y1, . . . , ym),
0, w pozostałych przypadkach.
Je´sli funkcj˛e f otrzymujemy z funkcji pierwotnie rekurencyjnych g i h za po- moc ˛a ograniczonego µ-operatora, to f jest pierwotnie rekurencyjna.
Dowód. f (x1, . . . , xn) =
h(x1,...,xn)
P
i=0
sg(
i
Q
j=0
g(x1, . . . , xn, j)).
Nast˛epuj ˛ace funkcje s ˛a pierwotnie rekurencyjne:
1. (20) [xy] — cz˛e´s´c całkowita z dzielenia x przez y (przyjmujemy, ˙ze [x0] = x);
2. (21) rest(x, y) — reszta z dzielenia x przez y (przyjmujemy, ˙ze rest(x, 0) = x);
3. (22) τ (x) — liczba dzielników liczby x, gdzie τ (0) = 0;
4. (23) σ(x) — suma dzielników liczby x, gdzie σ(0) = 0;
5. (24) lh(x) — liczba dzielników liczby x, które s ˛a liczbami pierwszymi (przyj- mujemy lh(0) = 0);
6. (25) π(x) — liczba liczb pierwszych nie wi˛ekszych ni˙z x;
7. (26) k(x, y) — najmniejsza wspólna wielokrotno´s´c liczb x i y, gdzie k(x, 0) = k(0, y) = 0;
8. (27) d(x, y) — najwi˛ekszy wspólny dzielnik liczb x i y, gdzie d(0, 0) = 0.
Dowód.
(20) [xy] =
x
P
i=1
sg(i · y .x).
(21) rest (x, y) = x.y · [xy].
(22) τ (x) =
x
P
i=1
sg (rest (x, i)).
(23) σ(x) = Px i=1
i · sg (rest (x, i)).
(24) x jest liczb ˛a pierwsz ˛a gdy τ (x) = 2 (zob. (22));
lh (x) =
x
P
i=1
sg (|τ (i) − 2| + rest (x, i)).
(25) π(x) =
x
P
i=1
sg (|τ (i) − 2|) (zob. (22)).
(26) k(x, y) = µz6x·y(z · sg (x · y) + sg(x · y)(sg(z)+
+rest (z, x) + rest (z, y)) = 0).
(27) d(x, y) = [k(x,y)xy ] + x · sg(y) + y · sg(x) (zob. (26)).
Nast˛epuj ˛ace funkcje s ˛a pierwotnie rekurencyjne:
1. (28) px– x-ta liczba pierwsza (p0 = 2, p1 = 3, p2 = 5, . . .);
2. (29) long(x) – numer najwi˛ekszego dzielnika liczby x, b˛ed ˛acego liczb ˛a pierw- sz ˛a;
3. (30) ex(x, y) – wykładnik pot˛egi x-tej liczby pierwszej px w kanonicznym rozkładzie liczby y na czynniki pierwsze; przyjmujemy, ˙ze ex(x, 0) = 0;
Dowód.
1. (28) px = µy622x(|π(y) − (x + 1)| = 0) (zob. (25)).
2. (29) long (x) = µy6x(
x
P
i=y+1
sg(rest (x, pi)) = 0).
3. (30) ex (x, y) = µz6x((sg (rest (y, (px)z+1))) · sg(y) = 0) (zob. (28)).
Łatwo zauwa˙zy´c, ˙ze:
1. Jest niesko´nczenie wiele funkcji pierwotnie (cz˛e´sciowo, ogólnie) rekuren- cyjnych.
2. Ka˙zda z tych klas zawiera jednak tylko ℵ0funkcji.
3. Poniewa˙z wszystkich funkcji z ωnw ω jest kontinuum, wi˛ec prawie wszyst- kie funkcje s ˛a poza klas ˛a funkcji ogólnie rekurencyjnych.
Przykłady funkcji, które:
1. s ˛a rekurencyjne, ale nie sa pierwotnie rekurencyjne, 2. nie s ˛a rekurencyjne,
zostan ˛a podane ni˙zej. Czy spotkała´s ju˙z funkcj˛e, która nie jest rekurencyjna? Na czym miałoby polega´c obliczanie jej warto´sci?
Nast˛epuj ˛ace relacje s ˛a pierwotnie rekurencyjne:
1. (a) x = y;
2. (b) x + y = z;
3. (c) x · y = z;
4. (d) x dzieli y;
5. (e) x jest parzyste;
6. (f) x oraz y s ˛a wzgl˛ednie pierwsze;
7. (g) ∃n(x = 12+ 22+ . . . + n2);
8. (h) ∃n(x = 1 + 2 + . . . + n).
Je˙zeli relacje P (x1, . . . , xn) oraz Q(x1, . . . , xn) s ˛a rekurencyjne (pierwotnie rekurencyjne), to nast˛epuj ˛ace relacje s ˛a równie˙z rekurencyjne (pierwotnie rekuren- cyjne):
1. (a) (P (x1, . . . , xn) ∧ Q(x1, . . . , xn));
2. (b) (P (x1, . . . , xn) ∨ Q(x1, . . . , xn));
3. (c) ¬P (x1, . . . , xn);
4. (d) (P (x1, . . . , xn) → Q(x1, . . . , xn));
5. (e) P (x1, x1, x3, . . . , xn);
6. (f) P (f (x1, . . . , xm), xm+1, . . . , xm+n−1), je´sli f (x1, . . . , xm) jest rekuren- cyjna (pierwotnie rekurencyjna).
Łatwo zauwa˙zy´c, ˙ze:
1. Je˙zeli relacja R(x1, . . . , xn, y) jest rekurencyjna (pierwotnie rekurencyjna), to relacje ∃y(y6 z∧R(x1, . . . , xn, y)) oraz ∀y(y 6 z → R(x1, . . . , xn, y)) równie˙z s ˛a rekurencyjne (pierwotnie rekurencyjne).
2. Dowolny sko´nczony zbiór liczb naturalnych jest pierwotnie rekurencyjny.
3. Je˙zeli f jest funkcj ˛a ogólnie rekurencyjn ˛a (pierwotnie rekurencyjn ˛a), za´s a jest ustalon ˛a liczb ˛a, to zbiór rozwi ˛aza´n równania f (x1, . . . , xn) = a jest rekurencyjny (pierwotnie rekurencyjny).
4. Niech f b˛edzie funkcj ˛a cz˛e´sciowo, ale nie ogólnie rekurencyjn ˛a. Wtedy dziedzina funkcji f−1jest zbiorem pierwotnie rekurencyjnym.
5. Je˙zeli zbiory A oraz B s ˛a rekurencyjne (pierwotnie rekurencyjne), to rów- nie˙z zbiory A ∩ B, A ∪ B, ω − A s ˛a rekurencyjne (pierwotnie rekurencyjne).
2.7 Funkcja numeruj ˛aca Cantora
(0,0) (1,0) (0,1) (2,0) (1,1) (0,2)
(3,0) (2,1) (1,2) (0,3)
(4,0) (3,1) (2,2) (1,3) (0,4)
...
Ustawimy te wszystkie pary w jeden ci ˛ag niesko´nczony, wedle porz ˛adku pi˛eter tej niesko´nczonej piramidy (z góry w dół), a w ramach ka˙zdego pi˛etra od prawej do lewej. Zauwa˙z, ˙ze ka˙zde pi˛etro składa si˛e z par (x, y) o stałej sumie x + y.
Funkcja numeruj ˛aca Cantora c(x, y) = ( X
i<x+y
(i + 1)) + x = (x + y)2+ 3x + y 2
ustanawia wzajemnie jednoznaczn ˛a odpowiednio´s´c mi˛edzy ω × ω a ω (koduje pary liczb naturalnych wedle wspomnianego wy˙zej porz ˛adku).
Funkcja c jest pierwotnie rekurencyjna. Takie s ˛a te˙z funkcje:
l(x) = µz 6 x (∃t 6 x c(z, t) = x) r(x) = µz 6 x (∃t 6 x c(t, z) = x).
Nadto, l(c(x, y)) = x oraz r(c(x, y)) = y, a tak˙ze c(l(z), r(z)) = z. Funkcje l oraz r równie˙z s ˛a wzajemnie jednoznaczne.
Analogicznie kodujemy trójki liczb naturalnych: c3(x, y, z) = c(x, c(y, z)) oraz dowolne n-tki takich liczb:
1. c1(x) = x
2. c2(x1, x2) = c(x1, x2)
3. cn+1(x1, x2, . . . , xn, xn+1) = cn(x1, x2, . . . , c(xn, xn+1)).
Istnieje wiele innych funkcji koduj ˛acych. O niektórych z nich opowiemy pod- czas dalszych wykładów.
1. Funkcje cnoraz cnms ˛a pierwotnie rekurencyjne.
2. Funkcje cn(x1, . . . , xn) ustanawiaj ˛a wzajemnie jednoznaczne odpowiednio-
´sci mi˛edzy ωnoraz ω (koduj ˛a ci ˛agi liczb naturalnych długo´sci n).
3. Z jednoargumentowych funkcji cz˛e´sciowo rekurencyjnych oraz z funkcji cn(x1, . . . , xn) otrzyma´c mo˙zna wszystkie funkcje cz˛e´sciowo rekurencyjne.
4. Istnieje wzajemnie jednoznaczna funkcja pierwotnie rekurencyjna ze zbioru wszystkich ci ˛agów sko ´nczonych liczb naturalnych w zbiór ω.
Jedn ˛a z zalet kodowania z u˙zyciem funkcji Cantora jest to, ˙ze jej zbiór warto´sci jest równy całemu zbiorowi ω.
2.8 Funkcje uniwersalne
Dla ka˙zdej liczby naturalnej n istniej ˛a funkcje uniwersalne dla klas wszystkich n-argumentowych funkcji:
1. pierwotnie rekurencyjnych;
2. ogólnie rekurencyjnych.
Mo˙zna udowodni´c, ˙ze dla ka˙zdej liczby naturalnej n istnieje ogólnie rekuren- cyjna funkcja uniwersalna dla klasy wszystkich n-argumentowych funkcji pier- wotnie rekurencyjnych. W dowodzie tego twierdzenia wykorzystuje si˛e mo˙zli- wo´s´c kodowania liczb naturalnych. W szczególno´sci, wykazuje si˛e, ˙ze zakodowa´c mo˙zna: definiowanie przez schemat rekursji prostej, definiowanie przez zło˙zenie oraz definiowanie przez operacj˛e minimum efektywnego.
Twierdzenie A. Nie istnieje funkcja pierwotnie rekurencyjna uniwersalna dla rodziny wszystkich n-argumentowych funkcji pierwotnie rekurencyjnych.
Twierdzenie B. Nie istnieje funkcja cz˛e´sciowo rekurencyjna uniwersalna dla rodziny wszystkich n-argumentowych funkcji ogólnie rekurencyjnych.
Dowód A. Niech F (t, x1, . . . , xn) b˛edzie funkcj ˛a uniwersaln ˛a dla rodziny wszyst- kich n-argumentowych funkcji pierwotnie rekurencyjnych i przypu´s´cmy, ˙ze jest ona pierwotnie rekurencyjna. Wtedy f (x1, . . . , xn) = 1 + F (x1, x1, . . . , xn) = F (t0, x1, . . . , xn) dla pewnego t0. St ˛ad 1 + F (t0, t0, . . . , t0) = F (t0, t0, . . . , t0).
Dochodzimy do sprzeczno´sci.
Dowód B. Zauwa˙zmy, ˙ze funkcja uniwersalna powinna by´c wsz˛edzie okre-
´slona, tzn. całkowita. Dalej, zobacz dowód Twierdzenia A.
Tak wi˛ec, cho´c mo˙zna skonstruowa´c funkcje uniwersalne dla rodziny wszyst- kich n-argumentowych funkcji:
1. pierwotnie rekurencyjnych;
2. ogólnie rekurencyjnych,
to z powy˙zszych twierdze´n A i B otrzymujemy przykłady (n + 1)-argumentowych funkcji, które nie s ˛a:
1. pierwotnie rekurencyjne;
2. ogólnie rekurencyjne.
Inna metoda pokazywania, i˙z jaka´s funkcja nie nale˙zy do okre´slonej klasy funkcji to dowód, ˙ze funkcja ta „ro´snie szybciej” ni˙z ka˙zda z funkcji tej klasy.
W ten sposób pokazuje si˛e np., ˙ze funkcja Ackermanna nie jest funkcj ˛a pierwotnie rekurencyjn ˛a (zob. ni˙zej).
2.9 Funkcje elementarnie rekurencyjne
Klasa funkcji elementarnie rekurencyjnych to najmniejsza klasa funkcji zawiera- j ˛aca funkcje:
1. odejmowania ., 2. funkcj˛e wykładnicz ˛a, 3. funkcj˛e nast˛epnika,
oraz zamkni˛eta ze wzgl˛edu na operacje:
1. zło˙zenia,
2. minimum ograniczonego.
Mo˙zna udowodni´c, ˙ze klasa wszystkich funkcji elementarnie rekurencyjnych jest zawarta w klasie wszystkich funkcji pierwotnie rekurencyjnych (i ta inkluzja jest wła´sciwa).
2.10 Hierarchia Grzegorczyka Hierarchia Grzegorczyka. Niech:
f0(x, y) = y + 1, f1(x, y) = x + y, f2(x, y) = (x + 1) · (y + 1), i dla n > 2:
fn+1(0, y) = fn(x + 1, y + 1)
fn+1(x + 1, y) = fn+1(x, fn+1(x, y)).
Dla dowolnego n niech Enb˛edzie najmniejsz ˛a klas ˛a funkcji zawieraj ˛ac ˛a funk- cje: I12, I22, funkcj˛e nast˛epnika oraz funkcj˛e fni zamkni˛et ˛a ze wzgl˛edu na zło˙zenie i schemat rekursji ograniczonej. Wtedy:
1. E3jest równa klasie funkcji elementarnie rekurencyjnych;
2. dla ka˙zdego n mamy: En⊂ En+1(wszystkie inkluzje wła´sciwe);
3. S
n
Enjest równy klasie wszystkich funkcji pierwotnie rekurencyjnych;
4. dla ka˙zdego n funkcje fn s ˛a ´sci´sle rosn ˛ace wzgl˛edem ka˙zdego z argumen- tów;
5. dla ka˙zdego n funkcja fn+1(x, x) nale˙zy do En+1− En. 2.11 Funkcja Ackermanna
Mówimy, ˙ze funkcja f (x) majoryzuje funkcj˛e g(x1, . . . , xn), gdy istnieje liczba a taka, ˙ze dla wszystkich x1, . . . , xn:
g(x1, . . . , xn) 6 f (max(x1, . . . , xn, a)).
W szczególno´sci, je´sli f jest ´sci´sle rosn ˛aca, to f (x) majoryzuje g(x1, . . . , xn) dokładnie wtedy, gdy g(x1, . . . , xn) 6 f (max(x1, . . . , xn)) dla wszystkich, oprócz sko´nczonej liczby, ci ˛agów (x1, . . . , xn).
Podamy przykład funkcji, która majoryzuje wszystkie funkcje pierwotnie re- kurencyjne: funkcji Ackermanna. Dowodzi si˛e, ˙ze:
1. Funkcja Ackermanna nie jest pierwotnie rekurencyjna (wła´snie dlatego, ˙ze majoryzuje wszystkie funkcje pierwotnie rekurencyjne).
2. Funkcja Ackermanna jest rekurencyjna.
Dla dowolnych m > 0 oraz n > 0 niech:
1. Ack(0, n) = n + 1
2. Ack(m, 0) = Ack(m − 1, 1)
3. Ack(m, n) = Ack(m − 1, Ack(m, n − 1)).
Wprowad´zmy te˙z oznaczenia:
1. Am(n) = A(m, n)
2. A(n) = An(n) (czyli A(n) = Ack(n, n)).
Funkcj˛e A(n) nazywamy funkcj ˛a Ackermanna.
Pisz ˛ac dalej abc mamy na my´sli funkcj˛e a(bc)(a nie funkcj˛e (ab)c— sprawd´z,
˙ze to ró˙zne funkcje!). Podobnie, abcd to a(b(cd)), itd.
Zdefiniujemy teraz funkcj˛eba przez warunki:
1. 0a = 1
2. (b+1)a = a(ba). Wtedy:
1. 1a = a(0a)= a1 = a 2. 2a = a(1a)= aa 3. 3a = a(2a)= aaa 4. na = aa..
.a
(a wyst˛epuje n razy).
Notacja strzałkowa Knutha.
1. a · b = a + a + . . . + a (a wyst˛epuje b razy) 2. ab = a · a · . . . · a (a wyst˛epuje b razy) 3. ba = aa..
.a
(a wyst˛epuje b razy).
W literaturze wprowadza si˛e oznaczenia:
1. a ↑ b = a · a · . . . · a (a wyst˛epuje b razy)
2. a ↑↑ b = a ↑ (a ↑ (. . . ↑ a) . . .) (a wyst˛epuje b razy) 3. a zatem a ↑↑ b =ba = aa..
.a
(a wyst˛epuje b razy)
4. a ↑↑↑ b = a ↑↑ (a ↑↑ (. . . (a ↑↑ a) . . .)) (a wyst˛epuje b razy) 5. a ↑m b = a ↑m−1(a ↑m−1 . . . (a ↑m−1a) . . .) (a wyst˛epuje b razy).
Formalnie ci ˛ag funkcji ↑nokre´slamy w nast˛epuj ˛acy sposób:
1. a ↑nb = ab, gdy n = 1, 2. a ↑nb = 1, gdy b = 0,
3. a ↑nb = a ↑n−1(a ↑n(b − 1)), gdy n > 1.
Mo˙zna pokaza´c, ˙ze np.:
1. 1 ↑nb = 1 2. a ↑n1 = a 3. 2 ↑n2 = 4.
Uwaga. Mo˙zesz pisa´c ↑n (a, b) zamiast a ↑n b, wtedy bodaj łatwiej dokony- wa´c rachunków.
Nietrudno te˙z wykaza´c rachunkiem, ˙ze np.:
1. 2 ↑23 = 2 ↑ (2 ↑ 2) = 2 ↑ 22 = 2 ↑ 4 = 24 = 16 2. 2 ↑33 = 2 ↑2 (2 ↑2 2) = 2 ↑2 4 = 2 ↑ (2 ↑ (2 ↑ 2)) =
= 2 ↑ (2 ↑ 4) = 2 ↑ (24) = 2 ↑ 16 = 216= 65536 3. 3 ↑22 = 3 ↑ (3 ↑2 1) = 3 ↑ (3 ↑ (3 ↑2 0)) = 3 ↑ (3 ↑ 1) = 3 ↑ 3 =
= 33 = 27 4. 3 ↑32 = 3 ↑2 (3 ↑3 1) = 3 ↑2 (3 ↑2(3 ↑30)) = 3 ↑2 (3 ↑2 1) =
= 3 ↑2(3 ↑ (3 ↑20)) = 3 ↑2(3 ↑ 1) = 3 ↑23 = 3 ↑ (3 ↑2 2) =
= 3 ↑ 27 = 327= 7625597484987.
Dla wszystkich n:
1. A0(n) = n + 1
2. A1(n) = n + 2 = 2 + (n + 3) − 3 3. A2(n) = 2n + 3 = 2 · (n + 3) − 3 4. A3(n) = 2n+3− 3 = 2 ↑ (n + 3) − 3 5. A4(n) = 2 ↑2 (n + 3) − 3
6. A5(n) = 2 ↑3 (n + 3) − 3
7. Am(n) = 2 ↑m−2 (n + 3) − 3, dla m > 2.
Ponadto dla wszystkich n> 1:
1. A4(n) = 2A4(n−1)+3− 3.
Dla wszystkich m > 0 warto´s´c Am(n) jest równa kolejno:
1. Am(n) = Am−1(Am(n − 1)) = 2. = Am−1(Am−1(Am(n − 2))) =
3. = Am−1(Am−1(Am−1(Am(n − 3)))) = 4. . . .
5. = Am−1(Am−1(. . . Am−1(Am(0)) . . .)) =
6. = Am−1(Am−1(. . . Am−1(Am−1(1)) . . .)) (tu mamy n + 1 iteracji funkcji Am−1).
Mamy ponadto: A1(1) = 2, A2(1) = 3, A3(1) = 13, A4(1) = 65533.
Inny wariant notacyjny otrzymujemy okre´slaj ˛ac ci ˛ag funkcji Bm: 1. B0(n) = n + 1
2. Bm+1(0) = Bm(1)
3. Bm+1(n + 1) = Bm(Bm+1(n)).
Wtedy:
1. B1(n) = 2 + (n + 3) − 3 2. B2(n) = 2 · (n + 3) − 3 3. B3(n) = 2 ↑ (n + 3) − 3 4. B4(n) = 2 ↑2 (n + 3) − 3 5. Bm(n) = 2 ↑m−2 (n + 3) − 3.
Zauwa˙zmy jeszcze, ˙ze je´sli okre´slimy funkcj˛e trójargumentow ˛a Ac(k, m, n) nast˛epuj ˛aco:
1. Ac(1, m, n) = m + n 2. Ac(k + 1, m, 1) = m
3. Ac(k + 1, m, n + 1) = Ac(k, m, Ac(k + 1, m, n)), to zachodz ˛a nast˛epuj ˛ace równo´sci:
1. Ac(0, m, n) = m + n
2. Ac(1, m, n) = m · n
3. Ac(2, m, n) = mn= m ↑ n
4. Ac(3, m, n) =nm = m ↑2 n = mm..
.m
(m wyst˛epuje tu n razy) 5. Ac(4, m, n) = m ↑3n.
Funkcja Ack(m, n) „ro´snie bardzo szybko”. Warto´s´c Ack(4, 2) ma w zapi- sie dziesi˛etnym 19729 cyfr. Dla dowolnej n warto´s´c A(4, n) mo˙zemy zapisa´c te˙z nast˛epuj ˛aco:
1. Ack(4, n) =(n+3)2 − 3 2. Ack(4, n) = 22..
.2
− 3 (liczba 2 wyst˛epuje tu n + 3 razy).
Warto´sci n ↑nn nazywa si˛e liczbami Ackermana.
3 Zbiory i relacje rekurencyjnie przeliczalne
3.1 Podstawowe definicje
Zbiór n-tek M nazywamy rekurencyjnie przeliczalnym (zbiorem r.e.), je´sli ist- nieje (n + 1)-argumentowa relacja pierwotnie rekurencyjna
RM(x1, . . . , xn, y) spełniaj ˛aca dla ka˙zdych x1, . . . , xnwarunek:
(x1, . . . , xn) ∈ M wtedy i tylko wtedy, gdy ∃y RM(x1, . . . , xn, y)
Zbiory i relacje rekurencyjnie przeliczalne stanowi ˛a matematyczne odpowied- niki poj˛e´c pozytywnie obliczalnych.
Mówimy, ˙ze relacja R ⊆ ωnjest pozytywnie obliczalna wtedy i tylko wtedy, gdy dla dowolnego układu liczb naturalnych a1, . . . , an, je˙zeli zachodzi R(a1, . . . , an), to otrzymamy w sko´nczonej liczbie z góry okre´slonych kroków odpowied´z na py- tanie: „Czy zachodzi R(a1, . . . , an)?”.
Je˙zeli natomiast nie zachodzi R(a1, . . . , an), to mo˙zemy nie uzyska´c ˙zadnej odpowiedzi na to pytanie.
Przykład. Klasyczny Rachunek Predykatów jest nierozstrzygalny. Nie istnieje efektywna metoda rozstrzygania, czy jaka´s formuła j˛ezyka tego rachunku jest jego tautologi ˛a. Klasyczny Rachunek Predykatów jest jednak półrozstrzygalny: wła- sno´s´c bycia tautologi ˛a tego rachunku jest pozytywnie obliczalna. Np. metoda tablic
analitycznych pozwala, gdy jaka´s formuła jest tautologi ˛a tego rachunku, dowie´s´c tego w sposób efektywny.
Dla dowolnego zbioru n-tek M zdefiniujemy cz˛e´sciow ˛a funkcj˛e charaktery- styczn ˛a χ∗M(x1, . . . , xn) w sposób nast˛epuj ˛acy:
χ∗M(x1, . . . , xn) =
0, gdy (x1, . . . , xn) ∈ M, nie okre´slona, gdy (x1, . . . , xn) /∈ M.
Je˙zeli f jest n-argumentow ˛a funkcj ˛a cz˛e´sciow ˛a, to zbiór
Γf = {(x1, . . . , xn, f (x1, . . . , xn)) : (x1, . . . , xn) ∈ dom(f )}
nazywamy wykresem funkcji f .
Funkcj˛e f (x1, . . . , xn) nazywamy dookre´sleniem funkcji g(x1, . . . , xn), je´sli Γg ⊆ Γf oraz dom(f ) = ω.
3.2 Wybrane własno´sci r.e. zbiorów i relacji
Podajemy (bez dowodów) niektóre wybrane własno´sci zbiorów i relacji rekuren- cyjnie przeliczalnych:
1. Je˙zeli relacja R(x1, . . . , xn, y, z) jest pierwotnie rekurencyjna, to M = {(x1, . . . , xn) : ∃y∃zR(x1, . . . , xn, y, z)}
jest zbiorem rekurencyjnie przeliczalnym.
2. Je˙zeli zbiory A i B s ˛a rekurencyjnie przeliczalne, to zbiory A ∩ B i A ∪ B te˙z s ˛a rekurencyjnie przeliczalne.
3. Ka˙zdy zbiór pierwotnie rekurencyjny jest rekurencyjnie przeliczalny.
4. Niech zbiory A i B ró˙zni ˛a si˛e sko´nczon ˛a liczb ˛a elementów. Wtedy:
(a) je´sli A jest rekurencyjny, to B jest rekurencyjny;
(b) je´sli A jest rekurencyjnie przeliczalny, to B jest rekurencyjnie przeli- czalny.
5. Twierdzenie Posta. Je˙zeli zbiór A oraz jego dopełnienie ω − A s ˛a rekuren- cyjnie przeliczalne, to A jest rekurencyjny.
6. Niech M ⊆ ωn. Przyjmijmy:
cn(M ) = {cn(x1, . . . , xn) : (x1, . . . , xn) ∈ M },
gdzie cnjest funkcj ˛a Cantora koduj ˛ac ˛a ci ˛agi, zdefiniowan ˛a wcze´sniej. Wtedy:
(a) M jest pierwotnie rekurencyjny wtedy i tylko wtedy, gdy cn(M ) jest pierwotnie rekurencyjny;
(b) M jest rekurencyjny wtedy i tylko wtedy, gdy cn(M ) jest rekuren- cyjny;
(c) M jest rekurencyjnie przeliczalny wtedy i tylko wtedy, gdy cn(M ) jest rekurencyjnie przeliczalny.
7. Niech M ⊆ ω b˛edzie zbiorem niepustym. M jest rekurencyjnie przeliczalny wtedy i tylko wtedy, gdy istnieje funkcja pierwotnie rekurencyjna f (x) taka,
˙ze M = {f (x) : x ∈ ω}.
8. Niech M b˛edzie niepustym zbiorem n-tek. Wtedy zbiór M jest rekurencyj- nie przeliczalny wtedy i tylko wtedy, gdy istniej ˛a jednoargumentowe funkcje pierwotnie rekurencyjne f1, . . . , fntakie, ˙ze:
M = {(f1(x), . . . , fn(x)) : x ∈ ω}.
9. Niech funkcja ogólnie rekurencyjna f (x) spełnia warunek: f (x) > x dla wszystkich x ∈ ω. Wtedy zbiór warto´sci rng(f ) funkcji f jest rekurencyjny.
10. Zbiór niesko´nczony A jest rekurencyjny wtedy i tylko wtedy, gdy A jest zbiorem warto´sci ´sci´sle rosn ˛acej funkcji ogólnie rekurencyjnej.
11. Niepusty zbiór A jest rekurencyjny wtedy i tylko wtedy, gdy A jest zbiorem warto´sci rosn ˛acej (niekoniecznie ´sci´sle) funkcji ogólnie rekurencyjnej.
12. Ka˙zdy niesko´nczony zbiór rekurencyjnie przeliczalny zawiera niesko´nczony zbiór rekurencyjny.
13. Ka˙zdy niesko´nczony zbiór rekurencyjnie przeliczalny daje si˛e przedstawi´c w postaci A = rng(f ), dla pewnej wzajemnie jednoznacznej funkcji ogólnie rekurencyjnej f .
14. Wykres funkcji ogólnie rekurencyjnej jest zbiorem rekurencyjnym.
15. Je´sli wykres Γf funkcji f jest rekurencyjnie przeliczalny, to funkcja f jest cz˛e´sciowo rekurencyjna.
16. Przeciwobraz zbioru rekurencyjnego wzgl˛edem funkcji ogólnie rekurencyj- nej jest rekurencyjny.
17. Niech A b˛edzie zbiorem rekurencyjnym, f funkcj ˛a ogólnie rekurencyjn ˛a i przy tym niech rng(f ) = ω, f (A) ∩ f (ω − A) = ∅. Wtedy f (A) jest rekurencyjny.
18. Niech A, B b˛ed ˛a zbiorami rekurencyjnie przeliczalnymi, za´s C zbiorem re- kurencyjnym takim, ˙ze A ∩ B = ∅, A ⊆ C ⊆ A ∪ B. Wtedy A jest rekuren- cyjny.
19. Niech A, B b˛ed ˛a zbiorami rekurencyjnie przeliczalnymi. Wtedy istniej ˛a zbiory rekurencyjnie przeliczalne A1 ⊆ A, B1 ⊆ B takie, ˙ze A1 ∩ B1 = ∅, A1∪ B1= A ∪ B.
20. Mo˙zna udowodni´c, ˙ze:
(a) funkcja otrzymana za pomoc ˛a zło˙zenia z funkcji o wykresie rekuren- cyjnie przeliczalnym ma wykres rekurencyjnie przeliczalny;
(b) funkcja utworzona za pomoc ˛a schematu rekursji prostej z funkcji o wykresie rekurencyjnie przeliczalnym ma wykres rekurencyjnie prze- liczalny;
(c) funkcja utworzona z pomoc ˛a µ-operatora z funkcji o wykresie reku- rencyjnie przeliczalnym ma wykres rekurencyjnie przeliczalny;
(d) wykres dowolnej funkcji cz˛e´sciowo rekurencyjnej jest rekurencyjnie przeliczalny.
21. Funkcja jest cz˛e´sciowo rekurencyjna wtedy i tylko wtedy, gdy jej wykres jest rekurencyjnie przeliczalny.
22. Dziedzina funkcji cz˛e´sciowo rekurencyjnej jest zbiorem rekurencyjnie prze- liczalnym.
23. Zbiór warto´sci funkcji cz˛e´sciowo rekurencyjnej jest zbiorem rekurencyjnie przeliczalnym.
24. Ka˙zdy zbiór rekurencyjny jest rekurencyjnie przeliczalny.
25. Zbiór n-tek jest rekurencyjnie przeliczalny wtedy i tylko wtedy, gdy jego funkcja charakterystyczna jest cz˛e´sciowo rekurencyjna.
26. Mo˙zna udowodni´c, ˙ze:
(a) obraz zbioru rekurencyjnie przeliczalnego wzgl˛edem funkcji cz˛e´sciowo rekurencyjnej jest rekurencyjnie przeliczalny;
(b) przeciwobraz zbioru rekurencyjnie przeliczalnego wzgl˛edem funkcji cz˛e´sciowo rekurencyjnej jest rekurencyjnie przeliczalny.
27. Zbiór A rozwi ˛aza´n równania
f (x1, . . . , xn) = a
jest rekurencyjnie przeliczalny, je´sli f jest cz˛e´sciowo rekurencyjn ˛a funkcj ˛a n-argumentow ˛a.
28. Je´sli f jest funkcj ˛a cz˛e´sciowo rekurencyjn ˛a, to zbiór M = {(x1, . . . , xn) :
∃y f (x1, . . . , xn, y) = 0} jest rekurencyjnie przeliczalny.
29. Niech M1, . . . , Mn b˛ed ˛a parami rozł ˛acznymi rekurencyjnie przeliczalnymi
zbiorami n-tek, a f1, . . . , fkcz˛e´sciowo rekurencyjnymi funkcjami n-argumentowymi.
Wtedy funkcja g zdefiniowana nast˛epuj ˛aco:
g(x1, . . . , xn) =
f1(x1, . . . , xn), gdy (x1, . . . , xn) ∈ M1, . . . .
fk(x1, . . . , xn), gdy (x1, . . . , xn) ∈ Mk, nie okre´slona w pozostałych
przypadkach, jest cz˛e´sciowo rekurencyjna.
30. Funkcj˛e cz˛e´sciow ˛a f (x1, . . . , xn) mo˙zna przedstawi´c w postaci f (x1, . . . , xn) = µt(g(x1, . . . , xn, t) = 0) dla stosownej funkcji pierwotnie rekurencyjnej g(x1, . . . , xn, t) wtedy i tylko wtedy, gdy wykres funkcji f (x1, . . . , xn) jest pierwotnie rekurencyjny.
31. Niech F (x, y) b˛edzie funkcj ˛a zdefiniowan ˛a z pomoc ˛a schematu rekursji wzgl˛edem dwu zmiennych:
F (0, y) = ϕ(y),
F (x + 1, 0) = ψ(x, F (x, α(x)), F (x, F (x, γ(x)))), F (x + 1, y + 1) = τ (x, y, F (x, F (x + 1, y))).
Wtedy, je´sli funkcje ϕ, ψ, α, γ, τ s ˛a ogólnie rekurencyjne, to funkcja F jest ogólnie rekurencyjna.
32. Je´sli dziedzina cz˛e´sciowo rekurencyjnej funkcji f jest zbiorem rekurencyj- nym, to f ma rekurencyjne dookre´slenie.
33. Istnieje funkcja cz˛e´sciowo rekurencyjna f (x), która nie ma ogólnie rekuren- cyjnego dookre´slenia.
34. Istnieje funkcja cz˛e´sciowo rekurencyjna f (x), która nie daje si˛e przedstawi´c w postaci f (x) = µy(g(x, y) = 0) dla ˙zadnej ogólnie rekurencyjnej funkcji g.
35. Je´sli V (n, x) jest cz˛e´sciowo rekurencyjn ˛a funkcj ˛a uniwersaln ˛a dla klasy wszystkich jednoargumentowych funkcji cz˛e´sciowo rekurencyjnych, to zbiór M = {x : V (x, x) = 0} jest rekurencyjnie przeliczalny, ale nie jest reku- rencyjny.
36. Je´sli V (n, x) jest cz˛e´sciowo rekurencyjn ˛a funkcj ˛a uniwersaln ˛a dla klasy wszystkich jednoargumentowych funkcji pierwotnie rekurencyjnych, to zbiór
G = {n : V (n, x) jest ogólnie rekurencyjna}
nie jest rekurencyjnie przeliczalny.
4 Wykorzystywana literatura
4.1 Wykorzystywana literatura polska
Grzegorczyk, A. 1973. Zarys logiki matematycznej. PWN, Warszawa.
Ławrow, I.A., Maksimowa, L.L. 2004. Zadania z teorii mnogo´sci, logiki matema- tycznej i teorii algorytmów.Wydawnictwo Naukowe PWN, Warszawa.
Moczurad, M. 2002. Wybrane zagadnienia z teorii rekursji. Wydawnictwo Uni- wersytetu Jagiello´nskiego, Kraków.
Murawski, R. 20003. Funkcje rekurencyjne i elementy metamatematyki. Problemy zupełno´sci, rozstrzygalno´sci, twierdzenia Gödla.Wydawnictwo Naukowe UAM, Pozna´n.
4.2 Wykorzystywana literatura obcoj˛ezyczna
Barwise, J. (ed.) 1977. Handbook of mathematical logic. North-Holland Publi- shing Company, Amsterdam, New York Oxford.
Boolos, G.S., Burgess, J.P., Jeffrey, R.C. 2002. Computability and logic. Cam- bridge University Press, Cambridge.
Cori, R., Lascar, D. 2001. Mathematical Logic. A Course with Exercises. Oxford University Press, Oxford.
Cutland, N. 1980. Computability. An introduction to recursive function theory.
Cambridge University Press, Cambridge.
Hinman, P.G. 2005. Fundamentals of Mathematical Logic. A K Peters, Wellesley.
Kleene, S.C. 1952. Introduction to Metamathematics. Wolters-Noordhoff Publi- shing — Groningen, North-Holland Publishing Company — Amsterdam Oxford, American-Elsevier Publishing Company, Inc. — New York.
Mendelson, E. 1997. Introduction to mathematical logic. Chapman & Hall, Lon- don.
Odifreddi, P.G. 1989. Classical recursion theory. North-Holland Publishing Com- pany, Amsterdam.
Odifreddi, P.G. 1999. Classical recursion theory, Vol. II. North-Holland Publi- shing Company, Amsterdam.
Rogers, H. 1972. Theory of Recursive Functions and Effective Computability.
MIT Press, Cambridge.
Shoenfield, J.R. 1967. Mathematical logic. Addison-Wesley, Reading, MA.
Smullyan, R. 1993. Recursion theory for metamathematics. Oxford University Press.
Soare, R.I. 1987. Recursively enumerable sets and degrees. Springer-Verlag, Ber- lin.
JERZYPOGONOWSKI
Zakład Logiki i Kognitywistyki UAM www.kognitywistyka.amu.edu.pl http://logic.amu.edu.pl/index.php/Dydaktyka pogon@amu.edu.pl