Istituzioni di Logica Matematica

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