20.05.2013 Views

LOGICA MATEMATICA PER INFORMATICA (A.A. 11/12) 1 ...

LOGICA MATEMATICA PER INFORMATICA (A.A. 11/12) 1 ...

LOGICA MATEMATICA PER INFORMATICA (A.A. 11/12) 1 ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2 DISPENSA N. 5<br />

parole, se T è coerente, completa, e T eor(T ) è enumerabile, allora T eor(T ) non può coincidere con T h(N).<br />

Lo stesso vale per ogni teoria T con T eor(T ) enumerabile e tale che, per ogni E, se T ⊢ E, allora N |= E<br />

(una tale teoria si dice corretta). Infatti, se una tale teoria fosse completa, avremmo che T eor(T ) = T h(N).<br />

Dal quadro appena descritto resta aperta la possibilità che esistano teorie T coerenti, complete, con<br />

T eor(T ) enumerabile, che catturino una parte significativa di T h(N), per esempio, tutte le verità espimibili<br />

con formule una certa complessità quantificazionale. I risultati di Gödel mostrano che questo non è possibile:<br />

ogni teoria T coerente e con T eor(T ) enumerabili, e tale da contenere un minimo di aritmetica, è incompleta.<br />

3. Insiemi algoritmicamente inseparabili<br />

Due insiemi A, B sono algoritmicamente inseparabili se non esiste un algoritmo capace di discrimare tra<br />

A e B. In altre parole, se non esiste una funzione calcolabile f tale che per ogni a ∈ A, f(a) = 1 e per<br />

ogni b ∈ B, f(b) = 0. In altre parole non esiste un insieme C ricorsivo tale che A ⊆ C e B ⊆ N \ C. Nelle<br />

applicazioni del concetto saremo interessati ai casi in cui A ∩ B = ∅ (il caso contrario è banale).<br />

L’utilità degli insiemi inseparabili nelle dimostrazioni di indecidibilità ha due ragioni.<br />

La prima è che se B è il complemento di A (B = N\A) e A, B sono inseparabili, allora A è algoritmicamente<br />

indecidibile: non esiste una funzione f tale che per ogni x ∈ A, f(x) = 1 e per ogni x /∈ A, f(x) = 0.<br />

La seconda ragione è che si può definire una buona nozione di riduzione tra problemi. La proprietà di essere<br />

algoritmicamente inseparabili si traferisce infatti da una coppia di insiemi all’altra attraverso trasformazioni<br />

effettive. Siano C e D immagini effettive di A e B, i.e., insiemi tali che C ∩ D = ∅, ed esiste una funzione<br />

calcolabile f tale che f(A) ⊆ C e f(B) ⊆ D. Allora se A e B sono algoritmicamente inseparabili, lo sono<br />

anche C e D. Per la precisione, vale la proposizione seguente.<br />

Proposizione 3.1. Sia A, B inseparabili. Siano C, D disgiunti. Sia f un algoritmo tale che f(A) ⊆ C e<br />

f(B) ⊆ D. Allora C, D sono inseparabili.<br />

Dimostrazione. Esercizio! <br />

Faremo uso di una particolare coppia di insiemi inseparabili. Supponiamo di avere fissato un modello di<br />

calcolo per le funzioni calcolabili (un sistema di programmazione accettabile) (Pi)i∈N. Assumiamo che ogni<br />

funzione calcolabile ha almeno un programma Pi che la calcola e che la funzione calcolata dal programma<br />

Pi è calcolabile per ogni i. Denotiamo con Pi(n) il risultato (possibilmente indefinito) dell’applicazione della<br />

procedura i-esima all’input n. Assumiamo che l’applicazione i, x ↦→ Pi(x) sia calcolabile (come accade in<br />

tutti i modelli di calcolo usuali).<br />

Definiamo due insiemi come segue.<br />

S0 = {i : Pi(i) = 0}, S1 = {i : Pi(i) = 1}.<br />

Tutti i risultati di indecidibilità logica saranno ottenuti per riduzione a questa coppia. Dimostreremo più<br />

avanti che S0, S1 sono effettivamente inseparabili.<br />

Dimostriamo qualcosa di più forte. Denotiamo con dom(Pi) l’insieme degli argomenti su cui il programma<br />

Pi termina (è definito). Ricordiamo che un insieme S è ricorsivamente enumerabile se e solo se è il dominio<br />

di una funzione calcolabile, i.e., se e solo se esiste i tale che S = dom(Pi).<br />

Proposizione 3.2. Esiste un algoritmo α tale che, per ogni a, b ∈ N, se valgono i seguenti punti allora<br />

α(a, b) è definito e non è né nel dominio di Pa né nel dominio di Pb<br />

(1) dom(Pa) ∩ dom(Pb) = ∅.<br />

(2) S0 ⊆ dom(Pa).<br />

(3) S1 ⊆ dom(Pb).<br />

Dimostrazione. Dati due indici a, b, la seguente procedura ψ è effettiva (algoritmica): dato y, enumeriamo<br />

simultaneamente dom(Pa) e dom(Pb). Se y appare prima in dom(Pa), restituiamo 1, se y appare prima in<br />

dom(Pb), restituiamo 0. Se y non appare né in dom(Pa) né in dom(Pb), la procedura non termina. Un<br />

programma per ψ si può ottenere algoritmicamente dai programmi Pa e Pb, in altre parole: un indice per<br />

ψ si ottiene algoritmicamente dagli indici a, b in modo uniforme. Dunque esiste una funzione f cacolabile<br />

totale tale che P f(a,b) è proprio ψ.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!