WYKŁAD 10: FUNKCJE REKURENCYJNE

Podobne dokumenty
Funkcje rekurencyjne

Rekurencyjna przeliczalność

Metalogika (6) Jerzy Pogonowski. Uniwersytet Opolski. Zakład Logiki Stosowanej UAM

Logika i teoria mnogości Wykład 14

Funkcje rekurencyjne. Jerzy Pogonowski. MDTiAR 15xii2015

Wstęp do Matematyki (4)

III. Funkcje rzeczywiste

Logika Matematyczna (1)

Dowód pierwszego twierdzenia Gödela o. Kołmogorowa

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

1 Działania na zbiorach

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Przykładowe zadania z teorii liczb

Pierścień wielomianów jednej zmiennej

1 Funkcje uniwersalne

Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

IMIĘ NAZWISKO... grupa C... sala Egzamin ELiTM I

Logika Matematyczna 16 17

7. CIĄGI. WYKŁAD 5. Przykłady :

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Matematyka dyskretna dla informatyków

Metalogika (1) Jerzy Pogonowski. Uniwersytet Opolski. Zakład Logiki Stosowanej UAM

1 Zbiory. 1.1 Kiedy {a} = {b, c}? (tzn. podać warunki na a, b i c) 1.2 Udowodnić, że A {A} A =.

ZALICZENIE WYKŁADU: 30.I.2019

Modele Obliczeń. Wykład 3 - Maszyny RAM i funkcje rekurencyjne. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

1 + x 1 x 1 + x + 1 x. dla x 0.. Korzystając z otrzymanego wykresu wyznaczyć funkcję g(m) wyrażającą liczbę pierwiastków równania.

Funkcje elementarne. Matematyka 1

Logika Matematyczna (1)

Indukcja matematyczna

Zadania do samodzielnego rozwiązania

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Analiza funkcjonalna 1.

Robert Kowalczyk. Zbiór zadań z teorii miary i całki

Funkcje: wielomianowa, wykładnicza, logarytmiczna wykład 2

Rodzinę F złożoną z podzbiorów zbioru X będziemy nazywali ciałem zbiorów, gdy spełnione są dwa następujące warunki.

n=0 Dla zbioru Cantora prawdziwe są wersje lematu 3.6 oraz lematu 3.8 przy założeniu α = :

Wstęp do Matematyki (1)

Zasada indukcji matematycznej

DODATEK 1: Wtedy h(α) = 1 oraz h(β) = 0. Jak pamiętamy ze szkoły, obraz sumy zbiorów jest sumą obrazów tych zbiorów. Mamy zatem:

Kombinowanie o nieskończoności. 3. Jak policzyć nieskończone materiały do ćwiczeń

ZALICZENIE WYKŁADU: 26.I.2017

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Wykłady ostatnie. Rodzinę P podzbiorów przestrzeni X nazywamy σ - algebrą, jeżeli dla A, B P (2) A B P, (3) A \ B P,

Schemat rekursji. 1 Schemat rekursji dla funkcji jednej zmiennej

F t+ := s>t. F s = F t.

Struktury formalne, czyli elementy Teorii Modeli

LOGIKA I TEORIA ZBIORÓW

G. Plebanek, MIARA I CAŁKA Zadania do rozdziału 1 28

Prawdopodobieństwo i statystyka

Funkcje. Oznaczenia i pojęcia wstępne. Elementy Logiki i Teorii Mnogości 2015/2016

Treści programowe. Matematyka 1. Efekty kształcenia. Literatura. Warunki zaliczenia. Ogólne własności funkcji. Definicja 1. Funkcje elementarne.

1. Funkcje monotoniczne, wahanie funkcji.

5. Logarytmy: definicja oraz podstawowe własności algebraiczne.

Matematyka dyskretna

LOGIKA ALGORYTMICZNA

Korzystając z własności metryki łatwo wykazać, że dla dowolnych x, y, z X zachodzi

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne.

domykanie relacji, relacja równoważności, rozkłady zbiorów

Matematyka II - Organizacja zajęć. Egzamin w sesji letniej

1. Wykład NWD, NWW i algorytm Euklidesa.

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ

Treści programowe. Matematyka. Literatura. Warunki zaliczenia. Funkcje elementarne. Katarzyna Trąbka-Więcław

Informacja o przestrzeniach Hilberta

Zbiory, relacje i funkcje

Podstawowe struktury algebraiczne

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Notatki z Analizy Matematycznej 2. Jacek M. Jędrzejewski

Indukcja matematyczna, zasada minimum i maksimum. 17 lutego 2017

Liczby zespolone. x + 2 = 0.

1 Elementy logiki i teorii mnogości

Rachunek całkowy funkcji wielu zmiennych

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

WYMAGANIA EDUKACYJNE Z MATEMATYKI dla klasy I ba Rok szk. 2012/2013

2. Liczby pierwsze i złożone, jednoznaczność rozkładu na czynniki pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność.

Zadania do Rozdziału X

LX Olimpiada Matematyczna

Treści programowe. Matematyka. Efekty kształcenia. Warunki zaliczenia. Literatura. Funkcje elementarne. Katarzyna Trąbka-Więcław

Notatki z Analizy Matematycznej 1. Jacek M. Jędrzejewski

n=0 (n + r)a n x n+r 1 (n + r)(n + r 1)a n x n+r 2. Wykorzystując te obliczenia otrzymujemy, że lewa strona równania (1) jest równa

MATeMAtyka 1. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony Klasa pierwsza

Algorytmy w teorii liczb

Algorytmy i struktury danych. Wykład 4

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

0.1 Pierścienie wielomianów

Zajęcia nr. 3 notatki

1 Relacje i odwzorowania

1 Logika (3h) 1.1 Funkcje logiczne. 1.2 Kwantyfikatory. 1. Udowodnij prawa logiczne: 5. (p q) (p q) 6. ((p q) r) (p (q r)) 3.

020 Liczby rzeczywiste

Rozdział 1. Wektory losowe. 1.1 Wektor losowy i jego rozkład

Rozdział 6. Ciągłość. 6.1 Granica funkcji

Zestaw zadań 5: Sumy i sumy proste podprzestrzeni. Baza i wymiar. Rzędy macierzy. Struktura zbioru rozwiązań układu równań.

LXIX Olimpiada Matematyczna Rozwiązania zadań konkursowych zawodów stopnia trzeciego 18 kwietnia 2018 r. (pierwszy dzień zawodów)

Modelowanie wybranych pojęć matematycznych. semestr letni, 2016/2017 Wykład 10 Własności funkcji cd.

Ciągi liczbowe wykład 3

2. FUNKCJE. jeden i tylko jeden element y ze zbioru, to takie przyporządkowanie nazwiemy FUNKCJĄ, lub

Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

Transkrypt:

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ WYKŁAD 10: FUNKCJE REKURENCYJNE III rok kognitywistyki UAM, 2016 2017 1 Wstęp Uwaga. Niniejsza prezentacja w żadnej mierze nie jest przybliżonym choćby wykładem teorii funkcji rekurencyjnych. Ograniczamy się do definicji wybranych pojęć, podajemy nieco przykładów i formułujemy kilka twierdzeń. Jest oczywiste, że nie zdążymy w ciągu 45 minut omówić wszystkich zagadnień anonsowanych w niniejszym tekście zachęcamy jednak zainteresowanych słuchaczy do jego lektury. Cele tej prezentacji są zasadniczo dwa: 1. pokazanie, że intuicyjne pojęcie obliczalności można reprezentować matematycznie; 2. oswojenie słuchaczy z operacjami kodowania, które będą wykorzystywane w arytmetyzacji składni. Słuchacze zainteresowani teorią funkcji rekurencyjnych zechcą skorzystać z literatury przedmiotu podanej na końcu prezentacji. Metoda obliczalna (efektywna): w skończonej liczbie prostych, mechanicznych kroków daje odpowiedź dla dowolnych danych ustalonej postaci. Dane mogą mieć strukturę złożoną. Obliczenie za pomocą metody efektywnej nazywa się algorytmem. Podane wyżej pojęcie obliczalności ma charakter intuicyjny. Możliwe są jego różne matematyczne precyzacje. 1. Przykład metody efektywnej: algorytm ustalania, czy dana formuła języka Klasycznego Rachunku Zdań jest prawem (tautologią) tego rachunku. 2. Przykład problemu, dla którego nie istnieje metoda obliczalna: ustalanie, czy dowolna formuła języka Klasycznego Rachunku Predykatów jest prawem (tautologią) tego rachunku. 1

Nieśmiertelne monogamiczne kazirodcze króliki: 1. Mamy Pierwszą Parę królików (samca i samicę). Chcemy obliczyć, ile par królików otrzymamy po n miesiącach przy założeniu, że każda para królików rodzi co miesiąc nową parę (samca i samicę), która staje się reproduktywna po miesiącu (i natychmiast z tego korzysta). 2. Nadto, króliki żyją wiecznie, są monogamiczne i kazirodcze (począwszy od drugiej pary tylko brat z siostrą dają potomstwo; Pierwsza Para też kontynuuje prokreację), oraz nie ustają w rozmnażaniu. [Jest również wersja ze śmiertelnymi królikami.] Ciąg Fibonacciego: 1. F (0) = 0 2. F (1) = 1 3. F (n) = F (n 1) + F (n 2) dla n 2 Ciag Mosera-Steinhausa: Wprowadźmy oznaczenia (oryginalna symbolika Steinhausa była inna): 1. (n) oznacza n n 2. (n) oznacza iterowanie n razy operacji dla argumentu n 3. (n) oznacza iterowanie n razy operacji dla argumentu n. Czy potrafisz obliczyć (2)? 1. (2) = ( (2)) = ( ( (2))) 2. ( (2)) = (2 2 ) = (4) = 4 4 = 256 3. (2) = (256) = (... ( (256)...)), gdzie operacja wykonywana jest 256 razy. Masz: ( (256)) = (256 256 ) (256256) = (256 256 ) 256 256256 = 256 (256257) a dalej licz samodzielnie:) W notacji Steinhausa argumenty były umieszczane wewnątrz wielokątów. Konstrukcję: n w m p-kątach (p 3) opisuje funkcja M(n, m, p), określona przez następujące zależności: 2

1. M(n, 1, 3) = n n 2. M(n, 1, p + 1) = M(n, n, p) 3. M(n, m + 1, p) = M(M(n, 1, p), m, p). Liczba 2 (czyli 2 w pięciokącie) nazywana jest czasem mega, zaś 2 w megakącie (czyli wielokącie o mega bokach) nosi nazwę moser. Liczbę 10 (czyli 10 w pięciokącie) nazywa się 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ń (dane) mogą mieć różne struktury (liczby, ciągi symboli, drzewa, itd.). Każde obliczenie może być reprezentowane przez drzewo: 1. w korzeniu znajduje się wynik obliczenia 2. w liściach znajdują się dane (argumenty) 3. pozostałe wierzchołki odpowiadają częściowym obliczeniom, prowadzącym do wyniku. Izomorfizm Curry ego-howarda ustala odpowiedniość między dowodami a obliczeniami (o czym słuchacze być może dowiedzą się na konwersatorium). W ramach wykładu interesuje nas natomiast możliwość wykorzystania matematycznych modeli obliczalności w dowodach twierdzeń metalogicznych. 2 Funkcje rekurencyjne Łacińskie recurrere znaczy m.in.: przybiec na powrót, wrócić do czegoś, pospieszyć na powrót, a recursare znaczy: wracać, często powracać. Obliczanie wartości pewnych funkcji dla argumentu n + 1 wymaga znajomości wartości tych funkcji dla argumentów 0, 1, 2,..., n. Rozważamy przy tym nie całkiem dowolne funkcje, ale jedynie takie, których wartości otrzymujemy w sposób efektywny (obliczalny). Za funkcje obliczalne uznamy np. funkcje stałe (nic nie trzeba liczyć), funkcję następnika (dodanie jedynki do liczby), funkcje rzutu (wybranie liczby ze skończonej listy). Uznamy, że składając funkcje obliczalne otrzymamy funkcję obliczalną. Uznamy też, że pewne inne operacje (rekursja prosta, minimum efektywne) stosowane do funkcji obliczalnych dają funkcje obliczalne. 3

2.1 Podstawowe definicje Częściowe funkcje liczbowe f(x 1,..., x n ) (dla n = 1, 2,...), to funkcje określone na pewnym podzbiorze zbioru ω n o wartościach będących liczbami naturalnymi. W tym wykładzie ω to zbiór wszystkich liczb naturalnych. n-argumentowa funkcja f(x 1,..., x n ) jest całkowita, jeśli jej dziedziną jest cały zbiór ω n, czyli gdy dom(f) = ω n. Następujące funkcje całkowite nazywamy prostymi: 1. s(x) = następnik x (czyli dodanie jedynki do x), 2. o(x) = 0 (funkcja stała równa 0), 3. I n m(x 1,..., x n ) = x m (dla 1 m n) (rzut na m-tą współrzędną). Funkcja h(x 1,..., x n ) = g(f 1 (x 1,..., x n ),..., f m (x 1,..., x n )) otrzymywana jest z funkcji g, f 1,..., f m przez operację złożenia. Funkcję f(x 1,..., x n, y) otrzymujemy z funkcji g(x 1,..., x n ) oraz h(x 1,..., x n, y, z) za pomocą schematu rekursji prostej, jeżeli: 1. f(x 1,..., x n, 0) = g(x 1,..., x n ), 2. f(x 1,..., x n, y + 1) = h(x 1,..., x n, y, f(x 1,..., x n, y)). Dla n = 0 schemat rekursji prostej przyjmuje następującą postać: 1. f(0) = a, 2. f(y + 1) = g(y, f(y)), gdzie a jest jednoargumentową funkcją stałą o wartości a. Jeżeli funkcja g(x 1,..., x n ) spełnia warunek: 1. ( ) dla wszystkich x 1,..., x n istnieje y taka, że g(x 1,..., x n, y) = 0, to mówimy, że funkcja f(x 1,..., x n ) określona warunkiem: f(x 1,..., x n ) = µy [g(x 1,..., x n, y) = 0] (czytamy: f(x 1,..., x n ) = najmniejsza y taka, że g(x 1,..., x n, y) = 0) jest zdefiniowana przez minimum efektywne. Warunek ( ) nazywamy warunkiem efektywności. Funkcje określone za pomocą minimum efektywnego stosowanego do funkcji całkowitych są całkowite. 4

Jeżeli relacja R spełnia warunek: x 1... x n y R(x 1,..., x n, y), to mówimy, że funkcja f(x 1,..., x n ) jest zdefiniowana z relacji R przez minimum efektywne, gdy: f(x 1,..., x n ) = µy R(x 1,..., x n, y), gdzie µy R(x 1,..., x n, y) jest najmniejszą liczbą y, dla której zachodzi R(x 1,..., x n, y). Dla przykładu, funkcję f(x) = log 2 x można zdefiniować przez minimum efektywne: f(x) = µy (2 y+1 > x). Tutaj jest funkcją podłogi i przyjmujemy log 2 0 = 0. Funkcję f(x 1,..., x n ) otrzymujemy z funkcji g(x 1,..., x n, y) za pomocą operacji minimum (za pomocą µ-operatora), co zaznaczamy następująco: f(x 1,..., x n ) µy [g(x 1,..., x n, y) = 0], gdy spełniony jest warunek: f(x 1,..., x n ) jest określona i równa y wtedy i tylko wtedy, gdy g(x 1,..., x n, 0),..., g(x 1,..., x n, y 1) są wszystkie określone i różne od 0, zaś g(x 1,..., x n, y) = 0. Funkcje otrzymane przez operację minimum (bez warunku efektywności) mogą nie być całkowite. 2.2 Funkcje: pierwotnie, częściowo i ogólnie rekurencyjne 1. Funkcja f(x 1,..., x n ) jest pierwotnie rekurencyjna, jeśli może być otrzymana z funkcji prostych za pomocą skończonej liczby zastosowań operacji złożenia oraz rekursji prostej. 2. Funkcja f(x 1,..., x n ) jest częściowo rekurencyjna, jeśli może być otrzymana z funkcji prostych za pomocą skończonej liczby zastosowań operacji złożenia, rekursji prostej oraz operacji minimum. 3. Funkcja f(x 1,..., x n ) jest ogólnie rekurencyjna (krótko: rekurencyjna), gdy jest ona całkowitą funkcją częściowo rekurencyjną. Każda funkcja pierwotnie rekurencyjna jest też ogólnie rekurencyjna (lecz nie na odwrót). Funkcję f(x 1,..., x n ) otrzymujemy z funkcji g(x 1,..., x n, y) oraz h(x 1,..., x n ) za pomocą ograniczonego µ-operatora, jeśli dla wszystkich x 1,..., x n : 5

µy[g(x 1,..., x n, y) = 0] jest określona i nie większa od h(x 1,..., x n ) oraz f(x 1,..., x n ) = µy [g(x 1,..., x n, y) = 0]. W szczególności, jeśli h(x 1,..., x n ) = a jest funkcją stałą, to piszemy: f(x 1,..., x n ) = µy a [g(x 1,..., x n, y) = 0]. 2.3 Zbiory i relacje rekurencyjne Niech P będzie dowolną n-argumentową relacją na zbiorze ω. Funkcję χ P (x 1,..., x n ) nazywamy funkcja charakterystyczna relacji P, jeśli funkcja ta spełnia warunek { 0, gdy P (x1,..., x χ P (x 1,..., x n ) = n ) zachodzi, 1, gdy P (x 1,..., x n ) nie zachodzi. Relacja P ω n jest rekurencyjna (pierwotnie rekurencyjna), jeśli jej funkcja charakterystyczna jest ogólnie rekurencyjna (pierwotnie rekurencyjna). W szczególności, funkcje charakterystyczne zbiorów to funkcje charakterystyczne relacji jednoargumentowych. Uwaga. W niektórych podręcznikach przez funkcję charakterystyczną relacji P rozumie się funkcję 1 χ P (x 1,..., x n ). To kwestia umowy, przyjmowanej dla wygody obliczeń. 2.4 Inna definicja funkcji rekurencyjnych W myśl innej definicji zbiór funkcji rekurencyjnych to najmniejszy zbiór funkcji: 1. zawierający funkcje rzutu I n m, dodawania +, mnożenia i funkcję charakterystyczną χ < relacji mniejszości <, 2. domknięty na operacje złożenia funkcji oraz definiowanie przez minimum efektywne. Obie te definicji określają tę samą klasę funkcji: 1. można pokazać, że +, i χ < są pierwotnie rekurencyjne (zobacz niżej); 2. można pokazać, że schemat rekursji prostej daje się wyrazić za pomocą minimum efektywnego. Rozważa się wiele typów rekursji: zwrotna, jednoczesna, ograniczona, itd. 6

2.5 Kilka oznaczeń Stosujemy oznaczenie: f(x 1,..., x n ) = µy[g(x 1,..., x n, y) = h(x 1,..., x n, y)], gdy spełniony jest warunek: f(x 1,..., x n ) jest określone i równe y wtedy i tylko wtedy, gdy g(x 1,..., x n, i) oraz h(x 1,..., x n, i) są określone dla i = 0, 1,..., y, g(x 1,..., x n, i) h(x 1,..., x n, i) dla i < y oraz g(x 1,..., x n, y) = h(x 1,..., x n, y). W podobny sposób rozumiemy oznaczenia: 1. µy[g(x 1,..., x n, y) h(x 1,..., x n, y)], 2. µy[g(x 1,..., x n, y) h(x 1,..., x n, y)], 3. µy[g(x 1,..., x n, y) < h(x 1,..., x n, y)], itd. Będziemy mówić, że funkcję f(x) otrzymujemy z funkcji g(x) przez iterację i oznaczać ten fakt przez f(x) = ig(x), gdy 1. f(0) = 0, 2. f(x + 1) = g(f(x)). Będziemy mówić, że funkcję f(x) otrzymujemy z funkcji g(x) przez odwrócenie i zaznaczać ten fakt przez f(x) = g 1 (x), gdy f(x) = µy[g(y) = x]. Niech G będzie pewną rodziną n-argumentowych funkcji częściowych. Funkcję n + 1-argumentową F nazwiemy funkcja uniwersalna dla G, jeśli G = {F (0, x 1,..., x n ), F (1, x 1,..., x n ), F (2, x 1,..., x n ),...}. 2.6 Przykłady funkcji pierwotnie rekurencyjnych Następujące funkcje są pierwotnie rekurencyjne: 1. (1) f(x) = x + n; 2. (2) f(x) = n; 3. (3) f 1 (x, y) = x + y; 7

4. (4) f 2 (x, y) = x y; 5. (5) f 3 (x, y) = x y (przyjmujemy 0 0 = 1); 6. (6) f(x) = x! (przyjmujemy 0! = 1). Dowód (pierwotnej rekurencyjności tych funkcji). 1. (1) f(x) = s(s(... s(x)...)). }{{} n razy 2. (2) f(x) = s(s(... s(o(x))...)). }{{} n razy 3. (3) f 1 (x, y) = x + y otrzymujemy przez rekursję prostą: f 1 (0, y) = y = I 1 1 (y), f 1(x + 1, y) = (x + y) + 1 = s(f 1 (x, y)). 4. (4) f 2 (x, y) = x y otrzymujemy przez rekursję prostą: f 2 (0, y) = 0 = o(y), f 2 (x + 1, y) = (x y) + y = f 1 (f 2 (x, y), y) 5. (5) f 3 (x, y) = x y otrzymujemy przez rekursję prostą: f 3 (x, 0) = 1 = s(o(x)), f 3 (x, y + 1) = x y x = f 2 (f 3 (x, y), x). 6. (6) f(0) = 1, f(x + 1) = s(x) f(x). Następujące funkcje są pierwotnie rekurencyjne: { 0, gdy x = 0 1. (7) sg(x) = 1, gdy x > 0; { 0, gdy x > 0 2. (8) sg(x) = 1, gdy x = 0; { 3. (9) x. 0, gdy x = 0 1 = x 1, gdy x > 0; { 4. (10) x. 0, gdy x y y = x y, gdy x > y; 5. (11) x y ; 6. (12) max(x, y); 7. (13) min(x, y). 8

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 f 0, f 1,..., f s mają następującą własność: dla dowolnych argumentów x 1,..., x n jedna i tylko jedna z tych funkcji równa jest 0. Powiemy, że funkcja g jest określona warunkowo, gdy g(x 1,..., x n ) = h 0 (x 1,..., x n ), gdy f 0 (x 1,..., x n ) = 0,......... h s (x 1,..., x n ), gdy f s (x 1,..., x n ) = 0. Jeśli funkcje h 0,..., h s, f 0,..., f s są pierwotnie rekurencyjne, to g jest pierwotnie rekurencyjna. Dowód. g(x 1,..., x n ) = h 0 (x 1,..., x n ) sg(f 0 (x 1,..., x n )) +...... + h s (x 1,..., x n ) sg(f s (x 1,..., x n )). Niech g, α, β będą funkcjami pierwotnie rekurencyjnymi. Wtedy następujące funkcje są pierwotnie rekurencyjne: x n+1 (14) f(x 1,..., x n, x n+1 ) = g(x 1,..., x n, i); i=0 z g(x 1,..., x n, i), gdy y z, (15) f(x 1,..., x n, y, z) = i=y 0, gdy y > z; (16) f(x 1,..., x n, y 1,..., y m ) = β(y 1,...,y m) g(x = 1,..., x n, i), gdy α(y 1,..., y m ) β(y 1,..., y m ), i=α(y 1,...,y m) 0, w pozostałych przypadkach; x n+1 (17) f(x 1,..., x n, x n+1 ) = g(x 1,..., x n, i); i=0 z g(x 1,..., x n, i), gdy y z (18) f(x 1,..., x n, y, z) = i=y 0, gdy y > z; 9

(19) f(x 1,..., x n, y 1,..., y m ) = β(y 1,...,y m) g(x = 1,..., x n, i), gdy α(y 1,..., y m ) β(y 1,..., y m ), i=α(y 1,...,y m) 0, w pozostałych przypadkach. Jeśli funkcję f otrzymujemy z funkcji pierwotnie rekurencyjnych g i h za pomocą ograniczonego µ-operatora, to f jest pierwotnie rekurencyjna. h(x 1,...,x n) Dowód. f(x 1,..., x n ) = sg( i g(x 1,..., x n, j)). i=0 j=0 Następujące funkcje są pierwotnie rekurencyjne: 1. (20) [ x y ] część całkowita z dzielenia x przez y (przyjmujemy, że [ x 0 ] = x); 2. (21) rest(x, y) reszta z dzielenia x przez y (przyjmujemy, że 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ą liczbami pierwszymi (przyjmujemy lh(0) = 0); 6. (25) π(x) liczba liczb pierwszych nie większych niż x; 7. (26) k(x, y) najmniejsza wspólna wielokrotność liczb x i y, gdzie k(x, 0) = k(0, y) = 0; 8. (27) d(x, y) największy wspólny dzielnik liczb x i y, gdzie d(0, 0) = 0. Dowód. (20) [ x y ] = x i=1 sg(i y. x). (21) rest (x, y) = x. y [ x y ]. (22) τ(x) = x sg (rest (x, i)). i=1 (23) σ(x) = x i sg (rest (x, i)). i=1 (24) x jest liczbą pierwszą gdy τ(x) = 2 (zob. (22)); lh (x) = x sg ( τ(i) 2 + rest (x, i)). i=1 (25) π(x) = x sg ( τ(i) 2 ) (zob. (22)). i=1 (26) k(x, y) = µz x y (z sg (x y) + sg(x y)(sg(z)+ 10

+rest (z, x) + rest (z, y)) = 0). xy (27) d(x, y) = [ k(x,y) ] + x sg(y) + y sg(x) (zob. (26)). Następujące funkcje są pierwotnie rekurencyjne: 1. (28) p x x-ta liczba pierwsza (p 0 = 2, p 1 = 3, p 2 = 5,...); 2. (29) long(x) numer największego dzielnika liczby x, będącego liczbą pierwszą; 3. (30) ex(x, y) wykładnik potęgi x-tej liczby pierwszej p x w kanonicznym rozkładzie liczby y na czynniki pierwsze; przyjmujemy, że ex(x, 0) = 0; Dowód. 1. (28) p x = µy 2 2 x ( π(y) (x + 1) = 0) (zob. (25)). 2. (29) long (x) = µy x ( x i=y+1 sg(rest (x, p i )) = 0). 3. (30) ex (x, y) = µz x ((sg (rest (y, (p x ) z+1 ))) sg(y) = 0) (zob. (28)). Łatwo zauważyć, że: 1. Jest nieskończenie wiele funkcji pierwotnie (częściowo, ogólnie) rekurencyjnych. 2. Każda z tych klas zawiera jednak tylko ℵ 0 funkcji. 3. Ponieważ wszystkich funkcji z ω n w ω jest kontinuum, więc prawie wszystkie funkcje są poza klasą funkcji ogólnie rekurencyjnych. Przykłady funkcji, które: 1. są rekurencyjne, ale nie sa pierwotnie rekurencyjne, 2. nie są rekurencyjne, zostaną podane niżej. Czy spotkałaś już funkcję, która nie jest rekurencyjna? Na czym miałoby polegać obliczanie jej wartości? Następujące relacje są pierwotnie rekurencyjne: 1. (a) x = y; 2. (b) x + y = z; 11

3. (c) x y = z; 4. (d) x dzieli y; 5. (e) x jest parzyste; 6. (f) x oraz y są względnie pierwsze; 7. (g) n(x = 1 2 + 2 2 +... + n 2 ); 8. (h) n(x = 1 + 2 +... + n). Jeżeli relacje P (x 1,..., x n ) oraz Q(x 1,..., x n ) są rekurencyjne (pierwotnie rekurencyjne), to następujące relacje są również rekurencyjne (pierwotnie rekurencyjne): 1. (a) (P (x 1,..., x n ) Q(x 1,..., x n )); 2. (b) (P (x 1,..., x n ) Q(x 1,..., x n )); 3. (c) P (x 1,..., x n ); 4. (d) (P (x 1,..., x n ) Q(x 1,..., x n )); 5. (e) P (x 1, x 1, x 3,..., x n ); 6. (f) P (f(x 1,..., x m ), x m+1,..., x m+n 1 ), jeśli f(x 1,..., x m ) jest rekurencyjna (pierwotnie rekurencyjna). Łatwo zauważyć, że: 1. Jeżeli relacja R(x 1,..., x n, y) jest rekurencyjna (pierwotnie rekurencyjna), to relacje y(y z R(x 1,..., x n, y)) oraz y(y z R(x 1,..., x n, y)) również są rekurencyjne (pierwotnie rekurencyjne). 2. Dowolny skończony zbiór liczb naturalnych jest pierwotnie rekurencyjny. 3. Jeżeli f jest funkcją ogólnie rekurencyjną (pierwotnie rekurencyjną), zaś a jest ustaloną liczbą, to zbiór rozwiązań równania f(x 1,..., x n ) = a jest rekurencyjny (pierwotnie rekurencyjny). 4. Niech f będzie funkcją częściowo, ale nie ogólnie rekurencyjną. Wtedy dziedzina funkcji f 1 jest zbiorem pierwotnie rekurencyjnym. 5. Jeżeli zbiory A oraz B są rekurencyjne (pierwotnie rekurencyjne), to również zbiory A B, A B, ω A są rekurencyjne (pierwotnie rekurencyjne). 12

2.7 Funkcja numerujaca 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ąg nieskończony, wedle porządku pięter tej nieskończonej piramidy (z góry w dół), a w ramach każdego piętra od prawej do lewej. Zauważ, że każde piętro składa się z par (x, y) o stałej sumie x + y. Funkcja numerujaca Cantora c(x, y) = ( i<x+y. (i + 1)) + x = (x + y)2 + 3x + y 2 ustanawia wzajemnie jednoznaczną odpowiedniość między ω ω a ω (koduje pary liczb naturalnych wedle wspomnianego wyżej porządku). Funkcja c jest pierwotnie rekurencyjna. Takie są też funkcje: l(x) = µz x ( t x c(z, t) = x) r(x) = µz x ( t x c(t, z) = x). Nadto, l(c(x, y)) = x oraz r(c(x, y)) = y, a także c(l(z), r(z)) = z. Funkcje l oraz r również są wzajemnie jednoznaczne. Analogicznie kodujemy trójki liczb naturalnych: c 3 (x, y, z) = c(x, c(y, z)) oraz dowolne n-tki takich liczb: 1. c 1 (x) = x 2. c 2 (x 1, x 2 ) = c(x 1, x 2 ) 3. c n+1 (x 1, x 2,..., x n, x n+1 ) = c n (x 1, x 2,..., c(x n, x n+1 )). Istnieje wiele innych funkcji kodujących. O niektórych z nich opowiemy podczas dalszych wykładów. 1. Funkcje c n oraz c n m są pierwotnie rekurencyjne. 2. Funkcje c n (x 1,..., x n ) ustanawiają wzajemnie jednoznaczne odpowiedniości między ω n oraz ω (kodują ciągi liczb naturalnych długości n). 13

3. Z jednoargumentowych funkcji częściowo rekurencyjnych oraz z funkcji c n (x 1,..., x n ) otrzymać można wszystkie funkcje częściowo rekurencyjne. 4. Istnieje wzajemnie jednoznaczna funkcja pierwotnie rekurencyjna ze zbioru wszystkich ciagów skończonych liczb naturalnych w zbiór ω. Jedną z zalet kodowania z użyciem funkcji Cantora jest to, że jej zbiór wartości jest równy całemu zbiorowi ω. 2.8 Funkcje uniwersalne Dla każdej liczby naturalnej n istnieją funkcje uniwersalne dla klas wszystkich n-argumentowych funkcji: 1. pierwotnie rekurencyjnych; 2. ogólnie rekurencyjnych. Można udowodnić, że dla każdej liczby naturalnej n istnieje ogólnie rekurencyjna funkcja uniwersalna dla klasy wszystkich n-argumentowych funkcji pierwotnie rekurencyjnych. W dowodzie tego twierdzenia wykorzystuje się możliwość kodowania liczb naturalnych. W szczególności, wykazuje się, że zakodować można: definiowanie przez schemat rekursji prostej, definiowanie przez złożenie oraz definiowanie przez operację minimum efektywnego. Twierdzenie A. Nie istnieje funkcja pierwotnie rekurencyjna uniwersalna dla rodziny wszystkich n-argumentowych funkcji pierwotnie rekurencyjnych. Twierdzenie B. Nie istnieje funkcja częściowo rekurencyjna uniwersalna dla rodziny wszystkich n-argumentowych funkcji ogólnie rekurencyjnych. Dowód A. Niech F (t, x 1,..., x n ) będzie funkcją uniwersalną dla rodziny wszystkich n-argumentowych funkcji pierwotnie rekurencyjnych i przypuśćmy, że jest ona pierwotnie rekurencyjna. Wtedy f(x 1,..., x n ) = 1 + F (x 1, x 1,..., x n ) = F (t 0, x 1,..., x n ) dla pewnego t 0. Stąd 1 + F (t 0, t 0,..., t 0 ) = F (t 0, t 0,..., t 0 ). Dochodzimy do sprzeczności. Dowód B. Zauważmy, że funkcja uniwersalna powinna być wszędzie określona, tzn. całkowita. Dalej, zobacz dowód Twierdzenia A. Tak więc, choć można skonstruować funkcje uniwersalne dla rodziny wszystkich n-argumentowych funkcji: 1. pierwotnie rekurencyjnych; 2. ogólnie rekurencyjnych, 14

to z powyższych twierdzeń A i B otrzymujemy przykłady (n + 1)-argumentowych funkcji, które nie są: 1. pierwotnie rekurencyjne; 2. ogólnie rekurencyjne. Inna metoda pokazywania, iż jakaś funkcja nie należy do określonej klasy funkcji to dowód, że funkcja ta rośnie szybciej niż każda z funkcji tej klasy. W ten sposób pokazuje się np., że funkcja Ackermanna nie jest funkcją pierwotnie rekurencyjną (zob. niżej). 2.9 Funkcje elementarnie rekurencyjne Klasa funkcji elementarnie rekurencyjnych to najmniejsza klasa funkcji zawierająca funkcje: 1. odejmowania., 2. funkcję wykładniczą, 3. funkcję następnika, oraz zamknięta ze względu na operacje: 1. złożenia, 2. minimum ograniczonego. Można udowodnić, że klasa wszystkich funkcji elementarnie rekurencyjnych jest zawarta w klasie wszystkich funkcji pierwotnie rekurencyjnych (i ta inkluzja jest właściwa). 2.10 Hierarchia Grzegorczyka Hierarchia Grzegorczyka. Niech: f 0 (x, y) = y + 1, f 1 (x, y) = x + y, f 2 (x, y) = (x + 1) (y + 1), i dla n 2: f n+1 (0, y) = f n (x + 1, y + 1) f n+1 (x + 1, y) = f n+1 (x, f n+1 (x, y)). Dla dowolnego n niech E n będzie najmniejszą klasą funkcji zawierającą funkcje: I 2 1, I2 2, funkcję następnika oraz funkcję f n i zamkniętą ze względu na złożenie i schemat rekursji ograniczonej. Wtedy: 15

1. E 3 jest równa klasie funkcji elementarnie rekurencyjnych; 2. dla każdego n mamy: E n E n+1 (wszystkie inkluzje właściwe); 3. n E n jest równy klasie wszystkich funkcji pierwotnie rekurencyjnych; 4. dla każdego n funkcje f n są ściśle rosnące względem każdego z argumentów; 5. dla każdego n funkcja f n+1 (x, x) należy do E n+1 E n. 2.11 Funkcja Ackermanna Mówimy, że funkcja f(x) majoryzuje funkcję g(x 1,..., x n ), gdy istnieje liczba a taka, że dla wszystkich x 1,..., x n : g(x 1,..., x n ) f(max(x 1,..., x n, a)). W szczególności, jeśli f jest ściśle rosnąca, to f(x) majoryzuje g(x 1,..., x n ) dokładnie wtedy, gdy g(x 1,..., x n ) f(max(x 1,..., x n )) dla wszystkich, oprócz skończonej liczby, ciągów (x 1,..., x n ). Podamy przykład funkcji, która majoryzuje wszystkie funkcje pierwotnie rekurencyjne: funkcji Ackermanna. Dowodzi się, że: 1. Funkcja Ackermanna nie jest pierwotnie rekurencyjna (właśnie dlatego, że 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źmy też oznaczenia: 1. A m (n) = A(m, n) 2. A(n) = A n (n) (czyli A(n) = Ack(n, n)). Funkcję A(n) nazywamy funkcja Ackermanna. Pisząc dalej a bc mamy na myśli funkcję a (bc) (a nie funkcję (a b ) c sprawdź, że to różne funkcje!). Podobnie, a bcd to a (b(cd)), itd. Zdefiniujemy teraz funkcję b a przez warunki: 16

1. 0 a = 1 2. (b+1) a = a (ba). Wtedy: 1. 1 a = a (0a) = a 1 = a 2. 2 a = a (1a) = a a 3. 3 a = a (2a) = a aa 4. n a = a a... a (a występuje n razy). Notacja strzałkowa Knutha. 1. a b = a + a +... + a (a występuje b razy) 2. a b = a a... a (a występuje b razy) 3. b a = a a... a (a występuje b razy). W literaturze wprowadza się oznaczenia: 1. a b = a a... a (a występuje b razy) 2. a b = a (a (... a)...) (a występuje b razy) 3. a zatem a b = b a = a a... a (a występuje b razy) 4. a b = a (a (... (a a)...)) (a występuje b razy) 5. a m b = a m 1 (a m 1... (a m 1 a)...) (a występuje b razy). Formalnie ciąg funkcji n określamy w następujący sposób: 1. a n b = a b, gdy n = 1, 2. a n b = 1, gdy b = 0, 3. a n b = a n 1 (a n (b 1)), gdy n > 1. Można pokazać, że np.: 17

1. 1 n b = 1 2. a n 1 = a 3. 2 n 2 = 4. Uwaga. Możesz pisać n (a, b) zamiast a n b, wtedy bodaj łatwiej dokonywać rachunków. Nietrudno też wykazać rachunkiem, że np.: 1. 2 2 3 = 2 (2 2) = 2 2 2 = 2 4 = 2 4 = 16 2. 2 3 3 = 2 2 (2 2 2) = 2 2 4 = 2 (2 (2 2)) = = 2 (2 4) = 2 (2 4 ) = 2 16 = 2 16 = 65536 3. 3 2 2 = 3 (3 2 1) = 3 (3 (3 2 0)) = 3 (3 1) = 3 3 = 4. 3 3 2 = 3 2 (3 3 1) = 3 2 (3 2 (3 3 0)) = 3 2 (3 2 1) = = 3 2 (3 (3 2 0)) = 3 2 (3 1) = 3 2 3 = 3 (3 2 2) = Dla wszystkich n: 1. A 0 (n) = n + 1 2. A 1 (n) = n + 2 = 2 + (n + 3) 3 3. A 2 (n) = 2n + 3 = 2 (n + 3) 3 4. A 3 (n) = 2 n+3 3 = 2 (n + 3) 3 5. A 4 (n) = 2 2 (n + 3) 3 6. A 5 (n) = 2 3 (n + 3) 3 7. A m (n) = 2 m 2 (n + 3) 3, dla m > 2. Ponadto dla wszystkich n 1: 1. A 4 (n) = 2 A 4(n 1)+3 3. Dla wszystkich m > 0 wartość A m (n) jest równa kolejno: = 3 3 = 27 = 3 27 = 3 27 = 7625597484987. 18

1. A m (n) = A m 1 (A m (n 1)) = 2. = A m 1 (A m 1 (A m (n 2))) = 3. = A m 1 (A m 1 (A m 1 (A m (n 3)))) = 4.... 5. = A m 1 (A m 1 (... A m 1 (A m (0))...)) = 6. = A m 1 (A m 1 (... A m 1 (A m 1 (1))...)) (tu mamy n + 1 iteracji funkcji A m 1 ). Mamy ponadto: A 1 (1) = 2, A 2 (1) = 3, A 3 (1) = 13, A 4 (1) = 65533. Inny wariant notacyjny otrzymujemy określając ciąg funkcji B m : 1. B 0 (n) = n + 1 2. B m+1 (0) = B m (1) 3. B m+1 (n + 1) = B m (B m+1 (n)). Wtedy: 1. B 1 (n) = 2 + (n + 3) 3 2. B 2 (n) = 2 (n + 3) 3 3. B 3 (n) = 2 (n + 3) 3 4. B 4 (n) = 2 2 (n + 3) 3 5. B m (n) = 2 m 2 (n + 3) 3. Zauważmy jeszcze, że jeśli określimy funkcję trójargumentowa Ac(k, m, n) następująco: 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ą następujące równości: 1. Ac(0, m, n) = m + n 19

2. Ac(1, m, n) = m n 3. Ac(2, m, n) = m n = m n 4. Ac(3, m, n) = n m = m 2 n = m m... m (m występuje tu n razy) 5. Ac(4, m, n) = m 3 n. Funkcja Ack(m, n) rośnie bardzo szybko. Wartość Ack(4, 2) ma w zapisie dziesiętnym 19729 cyfr. Dla dowolnej n wartość A(4, n) możemy zapisać też następująco: 1. Ack(4, n) = (n+3) 2 3 2. Ack(4, n) = 2 2... 2 3 (liczba 2 występuje tu n + 3 razy). Wartości n n n nazywa się liczbami Ackermana. 3 Zbiory i relacje rekurencyjnie przeliczalne 3.1 Podstawowe definicje Zbiór n-tek M nazywamy rekurencyjnie przeliczalnym (zbiorem r.e.), jeśli istnieje (n + 1)-argumentowa relacja pierwotnie rekurencyjna R M (x 1,..., x n, y) spełniająca dla każdych x 1,..., x n warunek: (x 1,..., x n ) M wtedy i tylko wtedy, gdy y R M (x 1,..., x n, y) Zbiory i relacje rekurencyjnie przeliczalne stanowią matematyczne odpowiedniki pojęć pozytywnie obliczalnych. Mówimy, że relacja R ω n jest pozytywnie obliczalna wtedy i tylko wtedy, gdy dla dowolnego układu liczb naturalnych a 1,..., a n, jeżeli zachodzi R(a 1,..., a n ), to otrzymamy w skończonej liczbie z góry określonych kroków odpowiedź na pytanie: Czy zachodzi R(a 1,..., a n )?. Jeżeli natomiast nie zachodzi R(a 1,..., a n ), to możemy nie uzyskać żadnej odpowiedzi na to pytanie. Przykład. Klasyczny Rachunek Predykatów jest nierozstrzygalny. Nie istnieje efektywna metoda rozstrzygania, czy jakaś formuła języka tego rachunku jest jego tautologią. Klasyczny Rachunek Predykatów jest jednak półrozstrzygalny: własność bycia tautologią tego rachunku jest pozytywnie obliczalna. Np. metoda tablic 20

analitycznych pozwala, gdy jakaś formuła jest tautologią tego rachunku, dowieść tego w sposób efektywny. Dla dowolnego zbioru n-tek M zdefiniujemy częściowa funkcję charakterystyczna χ M (x 1,..., x n ) { w sposób następujący: 0, gdy χ M (x (x1,..., x 1,..., x n ) = n ) M, nie określona, gdy (x 1,..., x n ) / M. Jeżeli f jest n-argumentową funkcją częściową, to zbiór Γ f = {(x 1,..., x n, f(x 1,..., x n )) : (x 1,..., x n ) dom(f)} nazywamy wykresem funkcji f. Funkcję f(x 1,..., x n ) nazywamy dookreśleniem funkcji g(x 1,..., x n ), jeśli Γ g Γ f oraz dom(f) = ω. 3.2 Wybrane własności r.e. zbiorów i relacji Podajemy (bez dowodów) niektóre wybrane własności zbiorów i relacji rekurencyjnie przeliczalnych: 1. Jeżeli relacja R(x 1,..., x n, y, z) jest pierwotnie rekurencyjna, to M = {(x 1,..., x n ) : y zr(x 1,..., x n, y, z)} jest zbiorem rekurencyjnie przeliczalnym. 2. Jeżeli zbiory A i B są rekurencyjnie przeliczalne, to zbiory A B i A B też są rekurencyjnie przeliczalne. 3. Każdy zbiór pierwotnie rekurencyjny jest rekurencyjnie przeliczalny. 4. Niech zbiory A i B różnią się skończoną liczbą elementów. Wtedy: (a) jeśli A jest rekurencyjny, to B jest rekurencyjny; (b) jeśli A jest rekurencyjnie przeliczalny, to B jest rekurencyjnie przeliczalny. 5. Twierdzenie Posta. Jeżeli zbiór A oraz jego dopełnienie ω A są rekurencyjnie przeliczalne, to A jest rekurencyjny. 6. Niech M ω n. Przyjmijmy: c n (M) = {c n (x 1,..., x n ) : (x 1,..., x n ) M}, 21

gdzie c n jest funkcją Cantora kodującą ciągi, zdefiniowaną wcześniej. Wtedy: (a) M jest pierwotnie rekurencyjny wtedy i tylko wtedy, gdy c n (M) jest pierwotnie rekurencyjny; (b) M jest rekurencyjny wtedy i tylko wtedy, gdy c n (M) jest rekurencyjny; (c) M jest rekurencyjnie przeliczalny wtedy i tylko wtedy, gdy c n (M) jest rekurencyjnie przeliczalny. 7. Niech M ω będzie zbiorem niepustym. M jest rekurencyjnie przeliczalny wtedy i tylko wtedy, gdy istnieje funkcja pierwotnie rekurencyjna f(x) taka, że M = {f(x) : x ω}. 8. Niech M będzie niepustym zbiorem n-tek. Wtedy zbiór M jest rekurencyjnie przeliczalny wtedy i tylko wtedy, gdy istnieją jednoargumentowe funkcje pierwotnie rekurencyjne f 1,..., f n takie, że: M = {(f 1 (x),..., f n (x)) : x ω}. 9. Niech funkcja ogólnie rekurencyjna f(x) spełnia warunek: f(x) x dla wszystkich x ω. Wtedy zbiór wartości rng(f) funkcji f jest rekurencyjny. 10. Zbiór nieskończony A jest rekurencyjny wtedy i tylko wtedy, gdy A jest zbiorem wartości ściśle rosnącej funkcji ogólnie rekurencyjnej. 11. Niepusty zbiór A jest rekurencyjny wtedy i tylko wtedy, gdy A jest zbiorem wartości rosnącej (niekoniecznie ściśle) funkcji ogólnie rekurencyjnej. 12. Każdy nieskończony zbiór rekurencyjnie przeliczalny zawiera nieskończony zbiór rekurencyjny. 13. Każdy nieskończony zbiór rekurencyjnie przeliczalny daje się przedstawić 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śli wykres Γ f funkcji f jest rekurencyjnie przeliczalny, to funkcja f jest częściowo rekurencyjna. 16. Przeciwobraz zbioru rekurencyjnego względem funkcji ogólnie rekurencyjnej jest rekurencyjny. 22

17. Niech A będzie zbiorem rekurencyjnym, f funkcją ogólnie rekurencyjną i przy tym niech rng(f) = ω, f(a) f(ω A) =. Wtedy f(a) jest rekurencyjny. 18. Niech A, B będą zbiorami rekurencyjnie przeliczalnymi, zaś C zbiorem rekurencyjnym takim, że A B =, A C A B. Wtedy A jest rekurencyjny. 19. Niech A, B będą zbiorami rekurencyjnie przeliczalnymi. Wtedy istnieją zbiory rekurencyjnie przeliczalne A 1 A, B 1 B takie, że A 1 B 1 =, A 1 B 1 = A B. 20. Można udowodnić, że: (a) funkcja otrzymana za pomocą złożenia z funkcji o wykresie rekurencyjnie przeliczalnym ma wykres rekurencyjnie przeliczalny; (b) funkcja utworzona za pomocą schematu rekursji prostej z funkcji o wykresie rekurencyjnie przeliczalnym ma wykres rekurencyjnie przeliczalny; (c) funkcja utworzona z pomocą µ-operatora z funkcji o wykresie rekurencyjnie przeliczalnym ma wykres rekurencyjnie przeliczalny; (d) wykres dowolnej funkcji częściowo rekurencyjnej jest rekurencyjnie przeliczalny. 21. Funkcja jest częściowo rekurencyjna wtedy i tylko wtedy, gdy jej wykres jest rekurencyjnie przeliczalny. 22. Dziedzina funkcji częściowo rekurencyjnej jest zbiorem rekurencyjnie przeliczalnym. 23. Zbiór wartości funkcji częściowo rekurencyjnej jest zbiorem rekurencyjnie przeliczalnym. 24. Każdy zbiór rekurencyjny jest rekurencyjnie przeliczalny. 25. Zbiór n-tek jest rekurencyjnie przeliczalny wtedy i tylko wtedy, gdy jego funkcja charakterystyczna jest częściowo rekurencyjna. 26. Można udowodnić, że: (a) obraz zbioru rekurencyjnie przeliczalnego względem funkcji częściowo rekurencyjnej jest rekurencyjnie przeliczalny; 23

(b) przeciwobraz zbioru rekurencyjnie przeliczalnego względem funkcji częściowo rekurencyjnej jest rekurencyjnie przeliczalny. 27. Zbiór A rozwiązań równania f(x 1,..., x n ) = a jest rekurencyjnie przeliczalny, jeśli f jest częściowo rekurencyjną funkcją n-argumentową. 28. Jeśli f jest funkcją częściowo rekurencyjną, to zbiór M = {(x 1,..., x n ) : y f(x 1,..., x n, y) = 0} jest rekurencyjnie przeliczalny. 29. Niech M 1,..., M n będą parami rozłącznymi rekurencyjnie przeliczalnymi zbiorami n-tek, a f 1,..., f k częściowo rekurencyjnymi funkcjami n-argumentowymi. Wtedy funkcja g zdefiniowana następująco: g(x 1,..., x n ) = nie określona jest częściowo rekurencyjna. f 1 (x 1,..., x n ), gdy (x 1,..., x n ) M 1,......... f k (x 1,..., x n ), gdy (x 1,..., x n ) M k, w pozostałych przypadkach, 30. Funkcję częściową f(x 1,..., x n ) można przedstawić w postaci f(x 1,..., x n ) = µt(g(x 1,..., x n, t) = 0) dla stosownej funkcji pierwotnie rekurencyjnej g(x 1,..., x n, t) wtedy i tylko wtedy, gdy wykres funkcji f(x 1,..., x n ) jest pierwotnie rekurencyjny. 31. Niech F (x, y) będzie funkcją zdefiniowaną z pomocą schematu rekursji względem 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śli funkcje ϕ, ψ, α, γ, τ są ogólnie rekurencyjne, to funkcja F jest ogólnie rekurencyjna. 32. Jeśli dziedzina częściowo rekurencyjnej funkcji f jest zbiorem rekurencyjnym, to f ma rekurencyjne dookreślenie. 24

33. Istnieje funkcja częściowo rekurencyjna f(x), która nie ma ogólnie rekurencyjnego dookreślenia. 34. Istnieje funkcja częściowo rekurencyjna f(x), która nie daje się przedstawić w postaci f(x) = µy(g(x, y) = 0) dla żadnej ogólnie rekurencyjnej funkcji g. 35. Jeśli V (n, x) jest częściowo rekurencyjną funkcją uniwersalną dla klasy wszystkich jednoargumentowych funkcji częściowo rekurencyjnych, to zbiór M = {x : V (x, x) = 0} jest rekurencyjnie przeliczalny, ale nie jest rekurencyjny. 36. Jeśli V (n, x) jest częściowo rekurencyjną funkcją uniwersalną 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ści, logiki matematycznej i teorii algorytmów. Wydawnictwo Naukowe PWN, Warszawa. Moczurad, M. 2002. Wybrane zagadnienia z teorii rekursji. Wydawnictwo Uniwersytetu Jagiellońskiego, Kraków. Murawski, R. 2000 3. Funkcje rekurencyjne i elementy metamatematyki. Problemy zupełności, rozstrzygalności, twierdzenia Gödla. Wydawnictwo Naukowe UAM, Poznań. 4.2 Wykorzystywana literatura obcojęzyczna Barwise, J. (ed.) 1977. Handbook of mathematical logic. North-Holland Publishing Company, Amsterdam, New York Oxford. Boolos, G.S., Burgess, J.P., Jeffrey, R.C. 2002. Computability and logic. Cambridge University Press, Cambridge. 25

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 Publishing Groningen, North-Holland Publishing Company Amsterdam Oxford, American-Elsevier Publishing Company, Inc. New York. Mendelson, E. 1997. Introduction to mathematical logic. Chapman & Hall, London. Odifreddi, P.G. 1989. Classical recursion theory. North-Holland Publishing Company, Amsterdam. Odifreddi, P.G. 1999. Classical recursion theory, Vol. II. North-Holland Publishing 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, Berlin. JERZY POGONOWSKI Zakład Logiki i Kognitywistyki UAM www.kognitywistyka.amu.edu.pl http://logic.amu.edu.pl/index.php/dydaktyka pogon@amu.edu.pl 26