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 ...
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 ψ.