Istituzioni di Logica Matematica Sezione 9 del Capitolo 2 Alessandro Andretta Dipartimento di Matematica Università di Torino A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 1 / 47 Calcolabilità Funzioni elementari ricorsive Esempi di funzioni calcolabili La somma +, il prodotto ·, la distanza tra numeri |x − y|, la (parte intera della) divisione ( il più grande k tale che y · k ≤ x bx/yc = 0 se y 6= 0 altrimenti. Supponiamo che f sia k-aria e che g0 , . . . , gk−1 siano n-arie. La composizione di f con g0 , . . . , gk−1 è la funzione h : Nn → N h(x0 , . . . , xn−1 ) = f (g0 (x0 , . . . , xn−1 ), . . . , gk−1 (x0 , . . . , xn−1 )). A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 2 / 47 Calcolabilità Funzioni elementari ricorsive Esempi di funzioni calcolabili Se f è k + 1-aria, la somma generalizzata su f e il prodotto generalizzato su f sono le funzioni k + 1-arie X P f (x0 , . . . , xk−1 , xk ) = f (x0 , . . . , xk−1 , y), y<xk Q f (x0 , . . . , xk−1 , xk ) = Y f (x0 , . . . , xk−1 , y), y<xk dove quando xk = 0 poniamo P f (x0 , . . . , xk−1 , 0) = 0 Q f (x0 , . . . , xk−1 , 0) = 1. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 3 / 47 Calcolabilità Funzioni elementari ricorsive Composizione di funzioni La definizione di composizione può apparire troppo restrittiva in quanto spesso capita di dover comporre delle gi di arietà differente o che l’ordine delle variabili nelle gi non sia lo stesso. Per esempio consideriamo la funzione 3-aria h(x0 , x1 , x2 ) = f (g0 (x1 , x2 ), g1 (x0 ), g2 (x1 , x0 , x0 )). Per ricondurci alla definizione ufficiale di ‘composizione di funzioni’ dobbiamo utilizzare le funzioni di proiezione Ikn , con k < n Ikn : Nn → N, (x0 , . . . , xn−1 ) 7→ xk . Allora la funzione h qui sopra è la composizione della funzione f con g̃0 , g̃1 e g̃2 , dove g̃i è ottenuta da gi mediante proiezioni: g̃0 (~x) = g0 (I13 (~x), I23 (~x)) g̃1 (~x) = g1 (I03 (~x)) g̃2 (~x) = g2 (I13 (~x), I03 (~x), I03 (~x)). A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 4 / 47 Calcolabilità Funzioni elementari ricorsive Esercizio Supponiamo F sia una famiglia di funzioni contenente le proiezioni e chiusa per composizione. Se σ : {0, . . . , n − 1} → {0, . . . , m − 1} e f ∈ F è n-aria, allora la funzione m-aria (x0 , . . . , xm−1 ) 7→ f (xσ(0) , . . . , xσ(n−1) ) è in F. Se F è una famiglia di funzioni chiusa per composizione e per somme e prodotti generalizzati e f, g ∈ F sono k + 1-arie, allora X (x0 , . . . , xk+1 ) 7→ f (x0 , . . . , xk , y) y<g(x0 ,...,xk+1 ) (x0 , . . . , xk+1 ) 7→ Y f (x0 , . . . , xk , y) y<g(x0 ,...,xk+1 ) sono in F. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 5 / 47 Calcolabilità Funzioni elementari ricorsive Funzioni elementari Definizione La famiglia E delle funzioni elementari ricorsive è la più piccola classe di funzioni contenenti la somma, il prodotto, la distanza di due numeri, la (parte intera della) divisione e le proiezioni, cioè: + · |x − y| bx/yc, Ikn (k < n) e chiusa per composizione e per somma e prodotto generalizzate. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 6 / 47 Calcolabilità Funzioni elementari ricorsive Funzioni elementari Lemma Le seguenti funzioni sono in E. La funzione ck : N → N, n 7→ k. La funzione sgn : N → N che vale 0 in 0, e vale 1 altrimenti; la funzione sgn(n) = 1 − sgn(n). La funzione successore S(n) = n + 1 e la funzione predecessore · 1, dove 0 − · 1 = 0. x 7→ x − L’esponenziale e il fattoriale. Dimostrazione. Osserviamo che: Q c0 (x) = |x − x|, sgn(x) = y<x c0 (y), sgn = sgn ◦ sgn,Q c1 = Q sgn ◦ c0 , cm+1 = cm + c1 , S(x) = x + c1 , xy = z<y x, · 1 = |x − c1 (x)| · sgn(x). x! = z<x S(z), x − A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 7 / 47 Calcolabilità Funzioni elementari ricorsive Osservazione Se F : N2 → N è una funzione elementare ricorsiva, allora per ogni n le funzioni Fn : N → N m 7→ F (n, m) sono elementari ricorsive, dato che Fn (m) = F (cn (m), m) = F (cn (m), I01 (m)). Il viceversa non è vero: se Fn è elementare ricorsiva per ogni n, non è detto che F sia elementare ricorsiva. Se f : N → N non è una funzione calcolabile, non lo è neppure la funzione F (n, m) = f (n), anche se ogni Fn = cf (n) : N → N è elementare ricorsiva. Scriveremo A(~x) al posto di ~x ∈ A e diremo che l’insieme A ⊆ Nk è un predicato k-ario. I predicati x = y, x ≤ y, . .. denotano gli insiemi (x, y) ∈ N2 | x = y , (x, y) ∈ N2 | x ≤ y , . . . . A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 8 / 47 Calcolabilità Funzioni elementari ricorsive Diremo che A ⊆ Nk è un insieme elementare ricorsivo ovvero un predicato elementare ricorsivo k-ario se la sua funzione caratteristica χA : Nk → {0, 1}, χA (~x) = 1 ⇔ ~x ∈ A appartiene ad E. Più in generale: se F è una famiglia di funzioni, diremo che A è in F o che è un F-predicato se χA ∈ F. Lemma Supponiamo F ⊇ E sia una famiglia di funzioni, chiusa per composizione e somma eprodotto generalizzate. G(f ) = (~x, y) ∈ Nk+1 | f (~x) = y , il grafo di una funzione k-aria f ∈ F, è un F-predicato k + 1-ario. Dimostrazione. χG(f ) (n1 , . . . , nk , m) = sgn(|f (n1 , . . . , nk ) − m|). A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 9 / 47 Calcolabilità Funzioni elementari ricorsive Osservazione L’implicazione inversa del Lemma non vale per le funzioni e predicati elementari ricorsivi, cioè non è vero che χG(f ) ∈ E ⇒ f ∈ E. Per esempio esistono biezioni elementari ricorsive f : N → N la cui inversa non è elementare ricorsiva. Fissiamo F ⊇ E una famiglia di funzioni, chiusa per composizione e per somma e prodotto generalizzati. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 10 / 47 Calcolabilità Funzioni elementari ricorsive Esempi Se A(x1 , . . . , xm ) è un F-predicato m-ario e f1 , . . . , fm ∈ F sono k-arie, allora A(f1 (x1 , . . . , xk ), . . . , fm (x1 , . . . , xk )) è un F-predicato k-ario. Questo predicato è l’insieme {(x1 , . . . , xk ) ∈ Nk | (f1 (x1 , . . . , xk ), . . . , fm (x1 , . . . , xk )) ∈ A} e la sua funzione caratteristica è χA (f1 (x1 , . . . , xk ), . . . , fm (x1 , . . . , xk )). A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 11 / 47 Calcolabilità Funzioni elementari ricorsive Esempi def Se A, B ⊆ Nn sono F-predicati, allora ¬A = Nn \ A e A ∩ B sono F-predicati. χ¬A = sgn ◦ χA e χA∩B = χA · χB . Quindi anche A ∪ B = ¬(¬A ∩ ¬B), A \ B = A ∩ ¬B e A 4 B = (A \ B) ∪ (B \ A) sono F-predicati. I predicati A(x1 , . . . , xn ) ⇒ B(x1 , . . . , xn ) e A(x1 , . . . , xn ) ⇔ B(x1 , . . . , xn ) non sono nient’altro che gli insiemi ¬A ∪ B e (¬A ∪ B) ∩ (¬B ∪ A) rispettivamente, quindi sono anch’essi F-predicati. Quindi la famiglia dei sottoinsiemi di Nk la cui funzione caratteristica è in F è un’algebra di Boole. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 12 / 47 Calcolabilità Funzioni elementari ricorsive Esempi Il predicato x < y è in F La sua funzione caratteristica è sgbS(x)/S(y)c. Quindi sono F-predicati x ≤ y, dato che è equivalente a ¬(y < x), x = y, dato che è equivalente a x ≤ y ∧ y ≤ x, x 6= y. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 13 / 47 Calcolabilità Funzioni elementari ricorsive Esempi Se {A1 , . . . , Ak } è una partizione di Nn e gli Ai sono in F, e se g1 , . . . , gk ∈ F sono n-arie, allora la funzione f : Nn → N definita da g1 (~x) se ~x ∈ A1 , g2 (~x) se ~x ∈ A2 , f (~x) = . .. gk (~x) se ~x ∈ Ak , è in F. f (~x) = g1 (~x) · χA1 (~x) + · · · + gk (~x) · χAk (~x). A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 14 / 47 Calcolabilità Funzioni elementari ricorsive Esempi Se A ⊆ Nn+1 è in F allora l’insieme B = {(~x, y) ∈ Nn+1 | ∀z (z < y ⇒ A(~x, z))} è in F Q La sua funzione caratteristica è k<y χA (~x, k). Quindi anche C = {(~x, y) ∈ Nn+1 | ∃z (z < y ⇒ A(~x, z))} = ¬{(~x, y) ∈ Nn+1 | ∀z (z < y ⇒ ¬A(~x, z))} è elementare ricorsivo. Useremo ∀z < y A(~x, z) e ∃z < y A(~x, z) per denotare, rispettivamente, i predicati B e C. Analogamente anche ∀z ≤ y A(~x, z) e ∃z ≤ y A(~x, z) sono in F. Questi predicati sono ottenuti da A per quantificazione limitata. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 15 / 47 Calcolabilità Funzioni elementari ricorsive Esempi Se A ⊆ Nn+1 è in F, allora la funzione n + 1-aria ( min{z ≤ y | A(~x, z)} se questo insieme è non vuoto, f (~x, y) = y altrimenti, è in F. La funzione P g(~x, w) = sgn( z<S(w) χA (~x, z)) = ( 0 1 se ∃z ≤ w A(~x, z), altrimenti, P è in F, quindi f (~x, y) = w<y g(~x, w) è in F e diremo che è ottenuta per minimalizzazione limitata, f (~x, y) = µz ≤ y A(~x, z). A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 16 / 47 Calcolabilità Funzioni elementari ricorsive Esempi Se g(~y ) è in F, allora anche la funzione h(~x, ~y ) = f (~x, g(~y )) = µz ≤ g(~y ) A(~x, z) è in F. Se g ∈ F è n + 1-aria, allora per ogni k ∈ N la funzione n + 1-aria ( min{z ≤ y | g(~x, z) = k} se questo insieme è non vuoto, f (~x, y) = y altrimenti, è in F. f (~x, y) = µz ≤ y A(~x, z), dove A è il predicato n + 1-ario è ottenuto dal grafo di g, (~x, y, w) ∈ Nn+2 | g(~x, y) = w , sostituendo alla variabile w il valore k, o meglio: la funzione ck (I0n (~x)). A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 17 / 47 Calcolabilità Funzioni elementari ricorsive Esempi Le seguenti funzioni sono in E: · y = x − y se x ≥ y, x − · y = 0 altrimenti; x− il resto Rem : N2 → N, dove poniamo Rem(n, 0) = 0; le funzioni di massimo e minimo Nk → N definite da maxk (x0 , . . . , xk−1 ) = max {x0 , . . . , xk−1 } mink (x0 , . . . , xk−1 ) = min {x0 , . . . , xk−1 } ; J : N2 → N e (·)0 , (·)1 : N → N; β : N2 → N, `(x) = β(x, 0) e (x, i) 7→ ((x))i = β(x, i + 1). A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 18 / 47 Calcolabilità Funzioni elementari ricorsive Poiché n ∈ Seq ⇔ ¬∃m < n [`(m) = `(n) ∧ ∀i < `(n) (β(n, i) = β(m, i))] Seq è in E. hhn0 , . . . , nk−1 ii è l’intero che codifica (n0 , . . . , nk−1 ), cioè il più piccolo m tale che β(m, 0) = k e β(m, i + 1) = ni per i < k. La funzione IS : N2 → N IS(x, i) = µy ≤ x `(y) = i ∧ ∀j < i ((x))j = ((y))j è elementare ricorsiva. Se x = hhn0 , . . . , nk−1 ii e i ≤ k, allora IS(x, i) = hhn0 , . . . , ni−1 ii; per questo motivo IS è detta funzione segmento iniziale. La funzione concatenazione Conc : N2 → N è definita da hha0 , . . . , an−1 , b0 , . . . , bm−1 ii se x = hha0 , . . . , an−1 ii e y = hhb0 , . . . , bm−1 ii, Conc(x, y) = 0 se x, y ∈ / Seq. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 19 / 47 Calcolabilità Funzioni elementari ricorsive Proposizione 1 C’è una funzione elementare ricorsiva B : N2 → N tale che per ogni n ≥ 1 e ogni k a0 , . . . , an−1 ≤ k ⇒ hha0 , . . . , an−1 ii ≤ B(k, n) e per ogni n ≥ 1 la funzione Nn → N, (a0 , . . . , an−1 ) 7→ hha0 , . . . , an−1 ii, è elementare ricorsiva. 2 Conc è elementare ricorsiva. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 20 / 47 Calcolabilità Funzioni elementari ricorsive Dimostrazione di 1 La funzione w(k, Q n) = max {k, n} · n! è elementare quindi lo è anche B(k, n) = J i≤n c(i, k, n), w(k, n) dove c(i, k, n) = 1 + (i + 1) · w(k,Q n). Fissati a0 , . . . , an−1 ∈ N, per il Teorema Cinese del Resto c’è un x < i≤n c(i, k, n) tale che n ≡ x mod c(0, k, n) e ai ≡ x mod c(i + 1, k, n). Poiché J è crescente in entrambe le variabili, possiamo concludere che ∃z ≤ B(k, n) `(z) = n ∧ ∀i < n (((z))i+1 = ai ) e quindi hha0 , . . . , an−1 ii = µz ≤ B(max a0 , . . . , an−1 , n) `(z) = n ∧ ∀i < n (((z))i+1 = ai ) è elementare ricorsiva. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 21 / 47 Calcolabilità Funzioni elementari ricorsive Dimostrazione di 2 È sufficiente trovare una funzione elementare ricorsiva g : N2 → N tale che per ogni x, y ∈ Seq Conc(x, y) = µz ≤ g(x, y) `(z) = `(x) + `(y) ∧ ∀i < `(x) (((z))i = ((x))i ) ∧ ∀j < `(y) (((z))`(x)+j = ((y))j ) . Poiché β(x, i) ≤ x per ogni i, la funzione h(x) = max{((x))0 , . . . , ((x))`(x)−1 } = µn ≤ x [∀i < `(x) (β(x, i + 1) ≤ n)] è elementare ricorsiva, cosı̀ come lo sono w(x, y) = max{h(x), h(y), `(x), `(y)} · (`(x) + `(y))! ci (x, y) = 1 + (i + 1)w(x, y). Argomentando come nella parte 1 possiamo definire Q g(x, y) = J ( i≤n ci (x, y), w(x, y)). A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 22 / 47 Calcolabilità Funzioni primitive ricorsive Ricorsione primitiva Definizione Se f è k-aria e g è k + 2-aria, diremo che la funzione k + 1-aria ( f (~x) se n = 0, h(~x, n) = g(~x, n − 1, h(~x, n − 1)) se n > 0, è ottenuta per ricorsione primitiva a partire da f e g. Le variabili ~x si dicono parametri della ricorsione; quando non sono presenti, cioè se g è 2-aria e a ∈ N, allora diremo che la funzione h : N → N definita da ( a se n = 0, h(n) = g(n − 1, h(n − 1)) se n > 0, è ottenuta per ricorsione senza parametri a partire da a e g. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 23 / 47 Calcolabilità Funzioni primitive ricorsive Osservazione Gli schemi di ricorsione primitiva e di iterazione possono essere riassunti in un unico schema se consideriamo le costanti come funzioni zero-arie. Se nello schema di ricorsione (con o senza parametri) la funzione g non dipende dalla k + 1-esima variabile, cioè se g è k + 1-aria e h(~x, n) = g(~x, h(~x, n − 1)), (n > 0) diremo che h è ottenuta per iterazione mediante g a partire da f o da a. Definizione La famiglia P delle funzioni primitive ricorsive è la più piccola classe di funzioni contenenti la funzione nulla c0 , la funzione successore S e le proiezioni Ikn , (k < n), e chiusa per composizione e ricorsione primitiva. Diremo che A ⊆ Nk è un insieme primitivo ricorsivo o, equivalentemente, è un predicato primitivo ricorsivo k-ario se la sua funzione caratteristica è una funzione primitiva ricorsiva. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 24 / 47 Calcolabilità Funzioni primitive ricorsive Verifichiamo che E ⊆ P f (x, y) = x + y è in P dato che è ottenuta per iterazione con parametri della funzione successore: ( x se y = 0, f (x, y) = S(f (x, y − 1)) se y > 0. Analogamente il prodotto e l’esponenziale sono in P, quindi x sgn(x) = 0x e sgn(x) = 00 , sono in P. · 1 è in P dato che è ottenibile mediante la La funzione g(x) = x − ricorsione ( 0 se x = 0, g(x) = 2 I0 (x − 1, g(x − 1)) se x > 0, quindi è in P la funzione ( x · y= x− · (y − 1)) g(x − A. Andretta (Torino) Istituzioni di Logica Matematica se y = 0, se y > 0, AA 2013–2014 25 / 47 Calcolabilità Funzioni primitive ricorsive Verifichiamo che E ⊆ P · x è in P, quindi anche |x − y| = (x − · y) + (y − · x) lo è. (x, y) 7→ y − Il predicato x < y è primitivo ricorsivo dato che la sua funzione · x), quindi anche x ≤ y e x = y sono predicati caratteristica è sgn(y − primitivi ricorsivi. La funzione ( 0 bx/yc = µz ≤ x (x < y · (z + 1)) se y = 0, se y > 0. è in P. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 26 / 47 Calcolabilità Funzioni primitive ricorsive Verifichiamo che E ⊆ P P Se f ∈ P è k + 1-aria, allora f ∈ P, dato che P f (x0 , . . . , xk−1 , 0) = 0 P P f (x0 , . . . , xk−1 , y + 1) = f (x0 , . . . , xk−1 , y) + f (x0 , . . . , xk−1 , y), Q f ∈ P, dato che Q f (x0 , . . . , xk−1 , 0) = 1 Q Q f (x0 , . . . , xk−1 , y + 1) = f (x0 , . . . , xk−1 , y) · f (x0 , . . . , xk−1 , y). Quindi E ⊆ P. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 27 / 47 Calcolabilità Funzioni primitive ricorsive Per ogni f : Nk+1 → N sia f m : Nk+1 → N la funzione definita da f m (x1 , . . . , xk , 0) = hh∅ii = 0 f m (x1 , . . . , xk , y + 1) = hhf (x1 , . . . , xk , 0), . . . , f (x1 , . . . , xk , y)ii. In altre parole: f m (~x, y) si ricorda di tutti i valori f (x, y 0 ) con y 0 ≤ y, e per questo motivo è detta la funzione-memoria di f . Chiaramente è possibile definire (un’analoga del)la funzione f m mediante un differente sistema di codifica, per esempio quello basato sui numeri primi. Esercizio Sia F ⊇ P una famiglia di funzioni finitarie su N chiuso per composizione e ricorsione primitiva. Dimostrare che f ∈ F ⇔ f m ∈ F. Il risultato vale anche quando F = E. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 28 / 47 Calcolabilità Funzioni primitive ricorsive Definizione Se f è k-aria e g è k + 2-aria, diremo che la funzione k + 1-aria ( f (~x) se n = 0, h(~x, n) = m g(~x, n − 1, h (~x, n − 1)) se n > 0, è ottenuta per ricorsione primitiva generalizzata a partire da f e g. Proposizione Sia F ⊇ P una famiglia di funzioni finitarie su N chiusa per composizione e ricorsione primitiva. Se h è ottenuta per ricorsione primitiva generalizzata a partire da f e g, allora f, g ∈ F ⇒ h ∈ F. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 29 / 47 Calcolabilità Funzioni primitive ricorsive Dimostrazione. Sia H : Nk+1 → N la funzione definita per ricorsione primitiva ( F (~x) se n = 0, H(~x, n) = G(~x, n − 1, H(~x, n − 1)) se n > 0, dove F : Nk → N G: N k+2 →N F (~x) = hhf (~x)ii, G(~x, m, y) = Conc(y, g(~x, m, y)). Poiché F e G sono primitive ricorsive, allora anche H è primitiva ricorsiva. Quindi anche h è primitiva ricorsiva, dato che h(~x, n) = ((H(~x, n)))`(H(~x,n))−1 · . A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 30 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Sia f una funzione k + 1-aria tale che ∀x1 , . . . , xk ∃y f (x1 , . . . , xk , y) = 0. La funzione k-aria g : Nk → N, g(x1 , . . . , xk ) = min {y ∈ N | (f (x1 , . . . , xk , y) = 0)} si dice ottenuta da f per minimalizzazione e la si indica solitamente con µy (f (x1 , . . . , xk , y) = 0). Se f è calcolabile, allora anche µy (f (x1 , . . . , xk , y) = 0) lo è. La collezione R delle funzioni ricorsive è ottenuta chiudendo l’insieme formato da c0 , S, Ikn (k ≤ n ∈ N) mediante le operazioni di composizione, ricorsione primitiva e minimalizzazione, cioè se f : Nk+1 → N è ricorsiva e ∀~x ∃y f (~x, y) = 0, allora µy (f (~x, y) = 0) è ricorsiva. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 31 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili La tesi di Church La tesi di Church Ogni funzione calcolabile è ricorsiva. Esistono buone ragioni per credere nella tesi di Church dato che: 1 tutti gli esempi noti in matematica di funzione calcolabile sono in realtà funzioni ricorsive; 2 nel secolo scorso sono state proposte numerose formalizzazioni del concetto di funzione calcolabile — la definizione di funzione ricorsiva descritta qui sopra è una di queste, tra le altre citiamo le macchine di Turing e i sistemi di Post. Queste formalizzazioni, benché all’apparenza molto diverse tra loro, individuano tutte lo stesso insieme di funzioni, cioè le funzioni ricorsive. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 32 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Insiemi ricorsivi A ⊆ Nk è un predicato ricorsivo se la sua funzione caratteristica lo è; in altre parole A è ricorsivo se c’è un algoritmo per decidere se un elemento gli appartiene o meno. La famiglia dei sottoinsiemi ricorsivi di Nk è un’algebra di Boole. Se A è un predicato ricorsivo k + 1-ario tale che ∀~x ∈ Nk ∃y ∈ N A(~x, y), allora la funzione µy A(~x, y) che assegna a (n1 , . . . , nk ) il più piccolo m tale che A(n1 , . . . , nk , m), è ricorsiva, dato che · χA (~x, y) = 0]. µy A(~x, y) = µy [1 − A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 33 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Funzioni ricorsive Lemma Una funzione k-aria f : Nk → N è ricorsiva se e solo se il suo grafo n o G(f ) = (~x, y) ∈ Nk+1 | f (~x) = y è un predicato ricorsivo k + 1-ario. Dimostrazione. Se χG(f ) è calcolabile, anche f lo è: dato ~x si cerca il primo (ed unico) y tale che (~x, y) ∈ G(f ), e questo y è f (~x). La dimostrazione qui sopra usa impunemente la Tesi di Church, ma può essere facilmente trasformata in una dimostrazione che non ne fa uso; basta osservare che f (~x) = µm [1 − χG(f ) (~x, m) = 0]. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 34 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Funzioni ricorsive Corollario Se f : N → N è ricorsiva ed è una biezione, allora anche f −1 , è una funzione ricorsiva. La funzione enumerante di un insieme infinito A ⊆ N è la funzione f : N → N che ad n associa l’n-esimo elemento di A. Proposizione Supponiamo A ⊆ N sia infinito e sia f la sua funzione enumerante. A è ricorsivo se e solo se f è ricorsiva. Dimostrazione. Supponiamo A ricorsivo: f è ricorsiva dato che f (n) = min(A) se n = 0 e f (n) = g(n − 1, f (n − 1)) se n > 0, dove g(i, k) = µm [A(m) ∧ m > k] . L’altra direzione discende da A(x) ⇔ ∃y ≤ x [f (y) = x]. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 35 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Funzioni ricorsive Esercizio Sia F = E oppure F = P. Dimostrare che: 1 se f : N → N è crescente ed è in F, allora ran(f ) è in F; 2 se A ⊆ N è in F e f è la sua funzione enumerante, ed esiste h : N → A tale che h ∈ F e ∀n (f (n) ≤ h(n)), allora f è primitiva ricorsiva; 3 la funzione enumerante di Seq è elementare ricorsiva. L’ipotesi dell’esistenza della funzione h qui sopra non può essere rimossa — esistono insiemi primitivi ricorsivi la cui funzione enumerante non è primitiva ricorsiva. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 36 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Ricorsività su altri domini A partire dalla biezione J : N2 → N si possono definire le biezioni J n : Nn → N, J n (x0 , . . . , xn−1 ) = J (x0 , J n−1 (x1 , . . . , xn−1 )) dove J 1 è la funzione identica e J 2 = J . Le funzioni inverse (·)nk : N → N (k < n) sono definite da J n ((x)n0 , . . . , (x)nn−1 ) = x. Una funzione f : Nn → Nm , f (~x) = (f0 (~x), . . . , fm−1 (~x)) si dice (elementare/primitiva) ricorsiva se le fi : Nn → N (i < m) sono (elementari/primitive) ricorsive. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 37 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Ricorsività su altri domini Esercizio Sia F una delle classi E, P, R. Verificare che: 1 le funzioni J m e (·)m i (i < m) sono elementari ricorsive; 2 f : Nn → Nm è in F se e solo se f˜: Nn → N, f˜(~x) = J m (f0 (~x), . . . , fm−1 (~x)) è in F. 3 A ⊆ Nm è in F se e solo se def m à = n ∈ N | ((n)m 0 , . . . , (n)m−1 ) ∈ A è in F. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 38 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Ricorsività su altri domini Una funzione F : N<N → N<N è (elementare/primitiva) ricorsiva se e solo se c’è una funzione (elementare/primitiva) ricorsiva f : N → N tale che F (x0 , . . . , xn ) = (y0 , . . . , ym ) ⇔ f (hhx0 , . . . , xn ii) = hhy0 , . . . , ym ii e un insieme A ⊆ N<N è (elementare/primitivo) ricorsivo se e solo se l’insieme {hhx0 , . . . , xn ii | (x0 , . . . , xn ) ∈ A} è (elementare/primitivo) ricorsivo. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 39 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Insiemi ricorsivamente enumerabili Definizione Un insieme A ⊆ Nm si dice ricorsivamente enumerabile se è vuoto oppure è della forma ran(f ) per qualche f : Nn → Nm ricorsiva. In altre parole: un insieme ricorsivamente enumerabile non vuoto è ottenibile come output di un programma. Un esempio concreto di insieme ricorsivamente enumerabile è dato un insieme diofanteo, cioè insieme della forma N ∩ {f (n1 , . . . , nk ) | n1 , . . . , nk ∈ Z} , dove f ∈ Z[x1 , . . . , xn ]. Il Teorema di Matiyasevich-Davis-Robinson-Putnam asserisce il converso, cioè: ogni insieme ricorsivamente enumerabile è diofanteo! A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 40 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Insiemi ricorsivamente enumerabili Proposizione Ogni insieme ricorsivo è ricorsivamente enumerabile. Dimostrazione. Possiamo limitarci ai sottoinsiemi di N: dato un A ⊆ N ricorsivo e non vuoto, dobbiamo trovare una f : N → N ricorsiva tale che A = ran(f ). Se A è finito, A = {n0 , . . . , nk }, allora n se i = 0, 0 n1 se i = 1, f (i) = . .. nk se i ≥ k, è ricorsiva. Se A è infinito usiamo la sua funzione enumerante. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 41 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Insiemi ricorsivamente enumerabili Teorema Ci sono insiemi ricorsivamente enumerabili che non sono ricorsivi. Proposizione Se A è ricorsivamente enumerabile e infinito, allora A = ran(f ) per una qualche funzione iniettiva e ricorsiva. Dimostrazione. Supponiamo A = ran(g) con g ricorsiva. Definiamo una funzione iniettiva f : N → N tale che ran(f ) = ran(g): f (0) = g(0); f (1) = g(i1 ), dove i1 è il primo i > 0 tale che g(i) 6= g(0); f (2) = g(i2 ), dove i2 è il primo i > i1 tale che g(i) 6= g(0), g(i1 ); e cosı̀ via. f è chiaramente calcolabile e ran(f ) = A. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 42 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Insiemi ricorsivamente enumerabili Teorema A ⊆ N e ¬A sono ricorsivamente enumerabili, allora sono ricorsivi. Dimostrazione. Supponiamo che A = ran(f ) e ¬A = ran(g), con f e g ricorsive. Poiché gli insiemi ricorsivi sono chiusi per complementazione, è sufficiente verificare che A è ricorsivo. Si decide se n ∈ A ragionando come segue: si calcolano i valori f (0), g(0), f (1), g(1), . . . fino a che non si raggiunge un k tale che n = f (k) oppure n = g(k); nel primo caso otteniamo che n ∈ A, nel secondo che n ∈ ¬A, cioè n ∈ / A. Per la Tesi di Church, l’insieme A è ricorsivo. Teorema Se A e B sono ricorsivamente enumerabili, allora anche A ∪ B e A ∩ B lo sono. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 43 / 47 Calcolabilità Insiemi ricorsivi e ricorsivamente enumerabili Insiemi ricorsivamente enumerabili Dimostrazione. Siano A = ran(f ) e B = ran(g). La funzione h(2n) = f (n) e h(2n + 1) = g(n) è ricorsiva e ran(h) = A ∪ B. Se A ∩ B è finito, allora è ricorsivo e quindi è ricorsivamente enumerabile. Se A ∩ B è infinito definiremo una funzione ricorsiva k tale che {k(0), . . . , k(n + 1)} = {a} ∪ Cn , dove a = min(A ∩ B) e Cn = {f (0), . . . , f (n)} ∩ {g(0), . . . , g(n)}. Questa condizione assicura che ran(k) = A ∩ B. La funzione k è definita da k(0) = a e ( min[Cn \ {k(0), . . . , k(n)}] se Cn \ {k(0), . . . , k(n)} = 6 ∅, k(n + 1) = a altrimenti. A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 44 / 47 Calcolabilità La funzione di Ackerman La funzione di Ackerman La funzione di Ackerman Ack : N2 → N è definita da se m = 0, n + 1 Ack(m, n) = Ack(m − 1, 1) se m > 0 e n = 0, Ack(m − 1, Ack(m, n − 1)) se m > 0 e n > 0. Quindi ponendo Ackm : N → N, n 7→ Ack(m, n) si ha che la funzione Ack0 è calcolabile, dato che Ack0 (n) = n + 1, e se m > 0 una semplice induzione mostra che (n+1) Ackm (n) = Ackm−1 (1), cioè la funzione Ackm è ottenibile mediante un’iterazione della funzione Ackm−1 . A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 45 / 47 Calcolabilità La funzione di Ackerman La funzione di Ackerman Ripetendo il ragionamento vediamo che il computo dei valori della funzione Ackm−1 può essere successivamente ricondotto al computo dei valori delle funzioni Ackm−2 , Ackm−3 , . . . , Ack0 . Quindi per la Tesi di Church la funzione di Ackerman è ricorsiva. Teorema Se f : Nn → N è primitiva ricorsiva, allora c’è un c tale che ∀x1 , . . . , xn (f (x1 , . . . , xn ) < Ack(c, x1 + · · · + xn )) . A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 46 / 47 Calcolabilità La funzione di Ackerman La funzione di Ackerman Corollario La funzione di Ackerman non è primitiva ricorsiva. Dimostrazione. Se per assurdo Ack fosse primitiva ricorsiva, allora anche Pn f (n) = i=0 Ack(i, n) lo sarebbe, quindi ∀n (f (n) < Ack(c, n)) per un opportuno c. In particolare, se n ≥ c allora Ack(c, n) ≤ n X Ack(i, n) = f (n) < Ack(c, n) i=0 contraddizione! A. Andretta (Torino) Istituzioni di Logica Matematica AA 2013–2014 47 / 47