84
Dispense del corso di Elementi di Logica II M. Baioletti 1 A.A. 2005/06 1 Queste dispense sono dedicate alla memoria del prof. Sauro Tulipani (1946–2005), gi` a insigne docente di questo corso, maestro e collega inestimabile

Dispense del corso di Elementi di Logica II - dmi.unipg.itbaioletti/didattica/el-log2/dispense.pdf · 1Queste dispense sono dedicate alla memoria del prof. Sauro Tulipani ... {funzionale

Embed Size (px)

Citation preview

Dispense del corso di Elementi di Logica II

M. Baioletti1

A.A. 2005/06

1Queste dispense sono dedicate alla memoria del prof. Sauro Tulipani (1946–2005),gia insigne docente di questo corso, maestro e collega inestimabile

Capitolo 1

Linguaggi e logicaproposizionale

1.1 La logica simbolica

La logica matematica moderna ha un approccio puramente simbolico, nel sensoche gli oggetti di studio sono sequenze di simboli (chiamate parole) presi da undato alfabeto.

La visione sintattico–simbolica della logica e in netta contrapposizione ri-spetto alla visione semantico–funzionale di molte branche della matematica,come ad esempio l’analisi matematica, in cui gli oggetti di studio sono funzioniviste in modo indipendentemente dalla loro definizione in termini: per l’analisile due funzioni f1(x) = |x| e f2(x) =

√x2 sono lo stesso oggetto. Nella logica

proposizionale, invece, le due proposizioni (p ∧ q) e (q ∧ p) sono due oggettidistinti, pur essendo proposizioni logicamente equivalenti.

La logica deve indicare la sintassi, cioe l’insieme delle regole con cui sonoformate le parole che hanno senso, e la semantica, cioe il meccanismo per attri-buire un significato alle parole. Deve inoltre specificare un meccanismo dedut-tivo, chiamato usualmente calcolo, mediante e possibile produrre alcune parolespeciali, i cosiddetti teoremi, attraverso un procedimento meccanico finito.

Per sottolineare l’idea di lavorare a livello simbolico si introdurra la sintassidei due tipi di logica (la logica proposizionale e la logica dei predicati del primoordine) utilizzando i linguaggi formali.

1.2 I linguaggi formali: brevi cenni

Definiamo in questa sezione il semigruppo delle parole su un alfabeto e legrammatiche generative dei linguaggi formali.

Definizione 1 Dato un insieme A, chiamato alfabeto, i cui elementi sonodetti simboli, definiamo parola w (o stringa) su A una sequenza ordinata finita

1

di simboli di A. Il numero di elementi presenti in w si chiama lunghezza dellaparola.

In altri termini, una parola di lunghezza n puo essere vista come una funzionew : 1, 2, . . . , n → A, cioe come una funzione che ad ogni intero compreso tra1 e n associa un elemento dell’alfabeto.

E’ ammesso anche il caso n = 0, la cui unica parola si chiama parola nulla(o vuota) e si indica con ε.

Ad esempio con l’alfabeto A = a, b si possono formare infinite parole, dicui alcune sono: ε, a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb,aaaa, . . . .

L’insieme di tutte le parole formate con un alfabeto A si indica con A∗

Definizione 2 Due parole w e w′ di uno stesso alfabeto A possono essere com-poste con un’operazione · chiamata concatenazione: w ·w′ e una nuova parolache inizia come w e che, al termine di questa, continua come w′.

Ad esempio la concatenazione della parola aba con la parola bb ha comerisultato la parola ababb.

E’ naturale considerare un singolo simbolo come parola di lunghezza 1 equindi ha senso effettuare la concatenazione tra una parola e un simbolo.

L’operazione di concatenazione e un’operazione associativa, di cui la paro-la nulla e l’elemento neutro. Quindi A∗ insieme con l’operazione · forma unsemigruppo unitario non commutativo.

Una proprieta particolare della concatenazione e una versione molto fortedella legge di annullamento del prodotto: x · y = ε se e solo se x = ε e y =ε. Tranne casi particolari, la concatenazione non e commutativa, nell’esempioprecedente la concatenazione di bb con aba da come risultato la parola bbaba,diverso da quello ottenuto nell’altro ordine.

Vale inoltre una legge molto ovvia di scomposizione delle parole: se w e laparola a1a2 . . . an allora w = a1 ·a2 · · · · ·an. In generale una parola di lunghezzan si puo decomporre in n+ 1 modi come composizione di due parole, ecc.

D’ora in avanti il simbolo di concatenazione · verra omesso e in tutti i contestiin cui si troveranno due parole giustapposte xy, si intendera la concatenazionetra x e y.

Definizione 3 Un qualunque sottoinsieme L di A∗ si chiama linguaggio (for-male) su A.

Questo strumento e utilizzato sia per definire matematicamente i linguaggidi programmazione, come il Pascal o il C, sia i linguaggi naturali, come l’italianoo l’inglese.

Per definire in modo preciso un linguaggio si puo utilzzare definire un mec-canismo di produzione delle parole, ad esempio una grammatica, in grado digenerare tutte le parole del linguaggio.

Definizione 4 Una produzione su un alfabeto A e una coppia (w,w′) diparole su A, indicata con w → w′.

2

Una produzione w → w′ si puo applicare ad una parola s se w e una sotto-parola di s, cioe se esistono due parole u, v tali che s = uwv. In tal caso si diceche w occorre in s e la posizione di w all’interno di s si chiama occorrenza. Ilrisultato dell’applicazione della produzione alla parola s e la parola s′ = uw′v.

Ad esempio la produzione aa → b e applicabile alla parola s = baaba e ilrisultato della sua applicazione e la parola s′ = bbba.

Una produzione w → w′ potrebbe produrre parole diverse a partire dallastessa parola s se w occorre in piu punti di s, ad esempio da s = aababaaa sipossono formare le parole s′ = bbabaaa, s′′ = aababba e s′′′ = aababab.

Definizione 5 Diremo che dalla parola s discende la parola s′ usando la pro-duzione Π, in simboli s→Π s′, se s′ e uno dei risultati dell’applicazione di Π as.

Si noti che →Π e una relazione binaria tra parole.

Definizione 6 Una grammatica G e una quadrupla (S,A, V, P ), in cui A eun alfabeto di simboli terminali, V e un alfabeto di simboli non terminali,S e un particolare elemento di V , detto simbolo iniziale e P e un insieme finitodi produzioni sull’alfabeto A ∪ V .

I simboli terminali sono i simboli di cui saranno composte le parole dellinguaggio, mentre i simboli non terminali sono simboli aggiuntivi utilizzati soloper generare il linguaggio.

Un’ulteriore restrizione e che nella prima parola di ogni produzione devecomparire almeno un simbolo non terminale. Questo comporta che nessunaproduzione si puo applicare a parole formate solo da simboli terminali.

Definizione 7 Date due parole s, s′ su A ∪ V , diremo che da s discende di-rettamente s′ tramite le produzioni P , s →P s′, se s →Π s′ per qualcheΠ ∈ P .

Definizione 8 Diremo invece che da s discende s′ tramite le produzioni P ,s →∗P s′, se esiste una sequenza finita di parole s0, s1, . . . , sm, tale che s0 = s,sm = s′ e si−1 →P si per ogni i = 1, . . . ,m.

Indicheremo infine con L(G) il linguaggio generato dalla grammatica G illinguaggio su A definito da

L(G) = w ∈ A∗ : S →∗P w

Ad esempio, data la grammatica G1 = (S, a, b, S, T, P1), in cui P1 con-tiene le produzioni S → aT, T → aT, T → bT, T → ε, si hanno le seguenti di-scendenze dirette aSb→P1

aab, aSb→P1aaTb, aTb→P1

aaTb, aTb→P1abTb,

aTb→P1ab.

Per quanto riguarda la relazione di discendenza si ha che T →∗P1a, T →∗P1

b,T →∗P1

aa, T →∗P1ab, ecc., cioe per tutte le parole w ∈ a, b∗, si ha che

3

T →∗P1w. Da cio segue che L(G1) e l’insieme di tutte le parole di a, b∗ che

iniziano per a.Un altro esempio e fornito dalla grammatica G2 = (S, (, ), S, P2), in cui

P2 contiene le produzioni S → SS, S → (S), S → ε. E’ facile vedere che L(G2)e il linguaggio formato da tutte le parole di parentesi aperte e chiuse in cui ogniparentesi aperta ha la corrispondente parentesi chiusa.

Un ulteriore esempio e la grammatica G3 = (S, a, b, S, P3) in cui P3

contiene le produzioni S → a, S → b, S → aSa, S → bSb. E’ un po’ piucomplicato far vedere che L(G3) e il linguaggio formato da tutte le parole dia, b∗ palindrome.

Un ultimo esempio, piu complicato, e dato dalla grammatica G4 = (S, x, y,+,−, ∗, S, P4), in cui P4 contiene le produzioni S → x, S → y, S → (S +S), S → (S − S), S → (S ∗ S). In questo caso L(G4) e l’insieme di tutte leespressioni contenenti somme, sottrazioni e moltiplicazioni e le variabili x e y,come (x+ y), (x ∗ (y + x)), ((x ∗ x)− (y ∗ y)), ((x+ y) ∗ (x− y)), ecc.

Si noti che in una produzione come S → (S + S), il fatto che nella paroladestra appaiano due simboli S non vuol dire che ai due simboli uguali cor-rispondono la stessa parola: essi indicano solo che saranno sostituiti da dueparole (espressioni), anche diverse.

4

Capitolo 2

La logica proposizionale

2.1 La sintassi

Il linguaggio P della logica proposizionale e basato su un alfabeto formato dadue tipi di simboli: i connettivi logici C e le variabili proposizionali olettere L.

I connettivi logici sono

¬ negazione, da leggersi “non”

∨ disgiunzione, da leggersi “o” oppure “vel” oppure “or”

∧ congiunzione, da leggersi “e” oppure “et” oppure “and”

⇒ implicazione, da leggersi “implica”

⇔ doppia implicazione, da leggersi “se e solo se”

Le variabili proposizionali sono simboli esogeni del linguaggio presi da unalfabeto L. Normalmente sono simboli, ma in teoria potrebbe essere ancheparole di un linguaggio.

Definizione 9 Le parole del linguaggio P si chiamano proposizioni.

La grammatica che genera il linguaggio P e la quadrupla (S,C∪L∪(, ), S, P ),in cui P e composto dalle seguenti produzioni

• S → (S ∨ S)

• S → (S ∧ S)

• S → (S ⇒ S)

• S → (S ⇔ S)

• S → (¬S)

5

• S → l per ogni l ∈ L.

Prendendo come insieme delle variabili L = x, y, z, le seguenti parole suC∪L sono proposizioni x, ¬x, (x∨x), (¬x∧y), ((x⇒ y)∨(y ⇒ x)), ((¬x∨¬y)⇔¬(x ∧ y)).

Mentre le seguenti parole su C ∪ L ∪ (, ) non sono proposizioni:

1. xy: non e ammesso concatenare due variabili

2. x ∧ y: sono necessarie le parentesi

3. ¬(∧x): mancherebbe una proposizione tra la parentesi e il connettivo ∧

4. ((¬x ∨ ¬y)⇔ ¬(x ∧ y): manca l’ultima parentesi

5. ¬)⇒ xy ∧ ((: parola senza senso

2.2 La semantica della logica proposizionale

2.2.1 Introduzione

Una proposizione e semplicemente una parola del linguaggio P, senza alcunovvio significato, se non per i connettivi logici.

Si prenda ad esempio la proposizione (p ∧ q). Essa non ha alcun significato“naturale”. Fermo restando che ∧ e interpretato come la congiunzione italiana“e”, il massimo significato attribuibile e ”sia p che q sono veri”.

A seconda del significato che io posso attribuire a p e a q, la proposizionepuo assumere significati molto diversi e puo essere, nel contesto prescelto, verao falsa. Ma esistono situazioni in cui non si puo stabilire la sua verita o falsita.

Ad esempio se p e l’affermazione “Perugia e in Italia” e q e l’affermazione“5 e un numero primo”, (p ∧ q) e un’affermazione vera, in quanto sono vereentrambe le proposizioni p e q.

Se invece q fosse l’affermazione ”Marte e piu grande del Sole”, (p∧q) sarebbeun’affermazione falsa.

Infine se q fosse l’affermazione ”Esistono altre forme di vita oltre a quellaterrestre”, (p∧ q) sarebbe un’affermazione il cui valore di verita non puo esserestabilito con certezza.

Di ben altra natura e la proposizione (p∨(¬p)). Essa puo essere riletta come”p e vera oppure p non e vera”.

Questa affermazione e vera indipendentemente dal significato che si puoattribuire a p. Questo tipo di affermazione viene chiamato in latino “tertiumnon datur” e nel linguaggio della logica filosofica “il principio del terzo escluso”(non esiste una terza possibilita: o p e vera oppure e falsa).

L’affermazione puo assumere le forme piu disparate, a seconda dell’interpre-tazione che si da del simbolo p, ma tutte queste affermazioni saranno comunquevere.

6

2.2.2 Assegnamenti e soddisfacibilita

Per definire un significato logico di una proposizione faremo uso dei valori diverita vero, indicato con >, e falso, indicato con ⊥; indicheremo con B l’insieme⊥,>.

Definizione 10 Dato un insieme V di variabili proposizionali, una qualunquefunzione α : V → B e chiamata assegnamento di verita su V .

E facile vedere che esistono 2n assegnamenti di verita possibili su un insiemedi n variabili.

Definizione 11 Dato un assegnamento di verita α su V , diremo che una pro-posizione p e vera in α, ovvero che α soddisfa p, in simboli α |= p secondo leregole ricorsive

• se p ∈ V allora α |= p se e solo α(p) = >

• se p = (¬q), allora α |= p se e solo non e vero che α |= q, in simboli α 6|= q

• se p = (q ∧ r) se e solo α |= q e α |= r

• se p = (q ∨ r) se e solo α |= q e/o α |= r

• se p = (q ⇒ r) se e solo α 6|= q e/o α |= r

• se p = (q ⇔ r) se e solo α |= q e α |= r oppure se α 6|= q e α 6|= r

Ad esempio se U = x, y, z e α : U → B e l’assegnamento α(x) = α(z) = >e α(y) = ⊥ si ha che α |= x, α |= (x ∨ y), α 6|= (x ∧ (¬z)), α 6|= (x ⇒ y),α |= (x⇒ (y ⇒ x)).

2.2.3 Tabelle di verita

In modo alternativo, possiamo estendere un assegnamento di verita in modo daattribuire valori di verita ad ogni proposizione.

In maniera ricorsiva, dato un assegnamento di verita α, se p e una variabile,allora il valore di verita di p e dato direttamente da α(p).

Se invece p = (q ∧ r), p = (q ∨ r), p = (q ⇒ r), p = (q ⇔ r) o p = (¬q)allora il valore di verita di p e dato dalla seguente tabella in funzione dei valoridi verita di q e di r:

q r (q ∧ r) (q ∨ r) (q ⇒ r) (q ⇔ r) (¬q)⊥ ⊥ ⊥ ⊥ > > >⊥ > ⊥ > > ⊥ >> ⊥ ⊥ > ⊥ ⊥ ⊥> > > > > > ⊥

Si noti che la logica proposizionale e vero–funzionale, cioe il valore di veritadi una proposizione p dipende in modo funzionale dai valori di verita assunti

7

delle sue proposizioni componenti, ad esempio q e r. Inoltre la dipendenza e solosui valori e non sulle proposizioni in se: sostituendo una qualunque proposizione,ad esempio r, con un’altra avente lo stesso valore di verita, il valore di verita dip non cambia.

2.2.4 Tautologie

Daremo ora alcune semplici definizioni.

Definizione 12 Una proposizione p si dira soddisfacibile se esiste almenoun assegnamento di verita α sulle variabili di p che soddisfa p. Si dira che p einsoddisfacibile se non esiste nessun assegnamento di verita che soddisfa p.Infine si dira che p e una tautologia se ogni assegnamento di verita lo soddisfa.

Ad esempio sono tautologie le seguenti proposizioni

• (x ∨ (¬x)) (detta “tertium non datur”),

• (¬(x ∧ (¬x))),

• (x⇒ ((¬x)⇒ y)) (detta “ex falso quodlibet”),

• (x⇒ ((x⇒ y)⇒ y)) (detta “modus ponens”),

• ((¬y)⇒ ((x⇒ y)⇒ (¬x))) (detta “modus tollens”),

• (x⇒ x)

• (x⇒ (y ⇒ x)),

• ((x⇒ y) ∨ (y ⇒ x)),

• (x⇔ (¬(¬x)))

Sono soddisfacibili, oltre a tutte le tautologie, anche le seguenti proposizionix, (x ∧ y), (x ∨ ¬y), ((x⇒ y) ∧ (y ⇒ x)).

Infine sono insoddisfacibili le proposizioni (x ∧ (¬x)), (¬(x ⇒ x)), (x ⇔(¬x)), ecc.

Vale il seguente risultato, di facile dimostrazione:

Proposizione 1 Una proposizione p e una tautologia se e solo se (¬p) e insod-disfacibile.

Da una tautologia si possono formare molte altre tautologie, in base alseguente risultato

Proposizione 2 Se p e una tautologia e q e una qualsiasi proposizione, allo-ra sostituendo una qualsiasi variabile proposizionale occorrente in p con q, siottiene ancora una tautologia.

8

Ad esempio, dalla tautologia p = (x⇒ x), sostituendo x con (a∧b) si ottienela tautologia ((a ∧ b)⇒ (a ∧ b)), sostituendo invece x con ((¬c)⇒ d) si ottienela tautologia (((¬c)⇒ d)⇒ ((¬c)⇒ d)), ecc. La dimostrazione e semplice e sibasa sul fatto che una tautologia e vera indipendentemente dal valore di veritaassunto dalle proposizioni che la compongono, siano esse variabili proposizionali(come nella versione originaria di p), siano esse proposizioni (come nelle altreversioni di p).

Definizione 13 Due proposizioni p e q definite sulle stesse variabili sono (lo-gicamente) equivalenti, in simboli p ≡ q, se per ogni assegnamento di veritaα, α |= p se e solo se α |= q.

Diamo ora un elenco delle equivalenze logiche piu importanti

• (x ∧ x) ≡ x, (x ∨ x) ≡ x (idempotenza)

• (x ∧ y) ≡ (y ∧ x), (x ∨ y) ≡ (y ∨ x) (commutativita)

• (x ∧ (y ∧ z)) ≡ ((x ∧ y) ∧ z), (x ∨ (y ∨ z)) ≡ ((x ∨ y) ∨ z) (associativita)

• (x ∨ (y ∧ z)) ≡ ((x ∨ y) ∧ (x ∨ z)), (x ∧ (y ∨ z)) ≡ ((x ∧ y) ∨ (x ∧ z))(distributivita)

• (x⇒ y) ≡ ((¬x) ∨ y), (x⇔ y) ≡ ((x⇒ y) ∧ (y ⇒ x)) (implicazione)

• (¬(¬x)) ≡ x (doppia negazione)

• (¬(x ∨ y)) ≡ ((¬x) ∧ (¬y)), (¬(x ∧ y)) ≡ ((¬x) ∨ (¬y)) (De Morgan)

In base a queste equivalenze potremo scrivere, con un abuso di notazione,(x∧y∧z) al posto delle due forme corrette equivalenti (x∧(y∧z)) e ((x∧y)∧z).Allo stesso modo si potra scrivere (x∨ y∨ z) e estendere queste notazioni ancheal caso della congiunzione o disgiunzione di un numero arbitrario di proposizionicon le simbologie

n∧

i=1

pi

n∨

i=1

pi

Vale il seguente risultato

Proposizione 3 Due proposizioni p e q sono equivalenti se e solo se (p⇔ q) euna tautologia, ovvero se e solo se (¬(p⇔ q)) e insoddisfacibile.

Anche per le equivalenze vale quanto detto per le tautologie:

Proposizione 4 Date due proposizioni equivalenti p, q e data una qualsiasi pro-posizione r, sostituendo r ad una qualsiasi variabile proposizionale di p e di q,si ottengono ancora due proposizioni equivalenti.

Ad esempio sono equivalenti le proposizioni ((p ⇒ q) ∧ r) e (r ∧ (p ⇒ q)),(s ∨ (t ∧ u)) e ((t ∧ u) ∨ s), ecc.

Il concetto di soddisfacibilita si puo estendere ad insiemi arbitrari di propo-sizioni. Si dira che dato un insieme di proposizioni ∆ ed un assegnamento α, ∆e vero in α o che α soddisfa ∆ se α |= q per ogni q ∈ ∆.

9

Definizione 14 Una proposizione q e conseguenza logica di un insieme diproposizioni ∆, in simboli ∆ |= q, se per ogni assegnamento di verita α chesoddisfa ∆, accade che α soddisfa anche q.

Ad esempio come conseguenze logiche delle proposizioni ∆ = a, (b ⇒c), (a⇒ b) si ottengono le proposizioni b, c, oltre a quelle di ∆.

Valgono i seguenti semplici risultati

Proposizione 5 (Monotonia) Se ∆ |= q e ∆ ⊂ Γ, allora Γ |= q

Proposizione 6 Una proposizione q e conseguenza logica di un insieme finitodi proposizioni p1, . . . , pn se e solo se ((p1 ∧ p2 ∧ . . . pn)⇒ q) e una tautologia,ovvero se e solo se (p1 ∧ p2 ∧ . . . pn ∧ (¬q)) e insoddisfacibile.

2.3 Il Sudoku come soddisfacibilita di una pro-posizione

In questa sezione vogliamo scrivere una proposizione p associata ad una matriceSudoku M tale che

1. p e soddisfacibile se e solo M e risolvibile.

2. da ogni assegnamento di verita α che soddisfa p e possibile estrarre unasoluzione per M

Una matrice Sudoku M e una matrice 9 × 9 tale che ogni entrata Mrc evuota (indicata con il simbolo B) oppure e un numero da 1 a 9. Una matricesi dice risolvibile se esiste un modo per completare le entrate vuote di M connumeri da 1 a 9 in modo tale che

1. in ogni riga non ci sono piu celle con lo stesso numero

2. in ogni colonna non ci sono piu celle con lo stesso numero

3. in ogni quadrante, cioe una regione di 9 celle della prima, seconda o laterza terne di righe e della prima, seconda o la terza terne di colonne, nonci sono piu celle con lo stesso numero

Prendiamo 93 variabili proposizionali indicate con il simbolo Xijk, i, j, k =1, . . . , 9 e aventi il significato che nella cella di coordinate (i, j) ce’il numero k.

Allora i vincoli 1–3 si traducono nelle seguenti proposizioni

p1 =∧

i

(¬∨

j,j′,k

(Xijk ∧Xij′k))

p2 =∧

j

(¬∨

i,i′,k

(Xijk ∧Xi′jk))

p3 = (¬∗∨

i,i′,j,j′,k

Xijk ∧Xi′j′k))

10

In p3 la disgiunzione si intende estesa a tutte le quintuple i, i′, j, j′, k in cui lacella (i, j) e nello stesso quadrante della cella (i′, j′), cioe per

b i− 1

3c = b i

′ − 1

3c e bj − 1

3c = bj

′ − 1

3c

Bisogna inoltre aggiungere che i vincoli che in ogni cella ce uno e un solnumero da 1 a 9

p4 =∧

ij

k

(Xijk ∧∧

k′ 6=k(¬Xijk′))

e che le celle non vuote in M hanno esattamente quei numeri

p5 =∧

Mij 6=BXi,j,Mij

Per cui la proposizione cercata e proprio

p = (p1 ∧ p2 ∧ p3 ∧ p4 ∧ p5)

E’ infatti facile dimostrare che α |= p se e solo se M e una soluzione di M ,in cui

Mij = l’unico valore k tale che α(Xijk) = >per ogni i, j = 1, . . . , 9.

Questo esempio dimostra che la logica proposizionale e in grado, seppur inmodo poco agevole, di modellare un mondo, come il Sudoku 9 × 9, fatto di unnumero finito e fissato a priori di oggetti. Non e in grado invece di modellaremondi con un numero infinito di oggetti, ma anche semplicemente quelli aventiun numero finito ma non precisato di oggetti, come il Sudoku generico n× n.

2.4 Metodi semantici per la verifica della soddi-sfacibilita

Dalle proposizioni 1, 3 e 6 segue che i problemi di verificare che una proposizionep e una tautologia, e equivalente ad un’altra proposizione o e conseguenza logicadi altre proposizioni sono tutti riconducibili al problema di verificare se una dataproposizione e soddisfacibile.

Vediamo in questa sezione un metodo per verificare se una proposizione p esoddisfacibile.

Un metodo molto banale sarebbe quello della verifica diretta. Si prova ognipossibile assegnamento di verita, fermandosi quando si trova un assegnamentoche soddisfa p, o quando sono stati provati tutti, in tal caso p e chiaramenteinsoddisfacibile. Questo metodo non e utilizzabile se non per proposizioni conun numero estremamente limitato di variabili.

Descriveremo ora un metodo alternativo, chiamato procedura di Davis–Putnam.Il meccanismo e abbastanza semplice da capire e soprattutto da implementare

11

in un computer, infatti questa procedura e di gran lunga la piu utilizzata nelleapplicazioni.

Innanzitutto la proposizione p si riduce in forma normale congiuntiva(CNF). Esiste infatti una proposizione pCNF , equivalente a p, in cui

• non compaiono i connettivi logici ⇒ e ⇔

• il connettivo logico ¬ compare solo davanti a variabili proposizionali

• pCNF e della forma (c1 ∧ c2 ∧ . . . cm−1 ∧ cm)

• ogni sotto–proposizione ci, detta clausola, e della forma (li1∨li2∨. . . li,ni−1∨li,ni)

• ogni lij e detto letterale ed e una variabile proposizionale o la sua nega-zione

E’ possibile indicare un procedimento che data una proposizione p, trova unaproposizione pCNF in forma normale congiuntiva:

• Sostituire i connettivi ⇔ usando la legge (x⇔ y) ≡ ((x⇒ y) ∧ (y ⇒ x))

• Sostituire i connettivi ⇒ usando la legge (x⇒ y) ≡ (¬x ∨ y)

• Utilizzando le leggi di De Morgan (¬(x∧y)) ≡ ((¬x)∨(¬y)) e (¬(x∨y)) ≡((¬x) ∧ (¬y)) spostare tutti i connettivi ¬ davanti alle variabili

• Utilizzando le leggi distributive portare p nella forma a clausole

La proposizione pCNF viene poi rappresentata solo con i connettivi ¬: ogniclausola viene scritta come insieme di letterali e la proposizioni come insieme diclausole.

Ad esempio alla formula (((p ⇒ q) ∨ (t ∧ (¬r))) ∧ s) corrisponde la formanormale congiuntiva ¬p, q, t, ¬p, q,¬r, s.

Si noti che una proposizione p n forma normale congiuntiva e soddisfacibile see solo se ogni sua clausola e soddisfacibile, e cio accade se esiste un assegnamentodi verita α che rende vero almeno un letterale per ogni clausola.

La procedura di Davis–Putnam quindi procede alla ricerca di un assegna-mento che soddisfa p. Anziche usare gli assegnamenti, la procedura gestisce uninsieme di letterali A che devono essere veri, all’inizio A e vuoto e cio corrispon-de al fatto che all’inizio nessuna variabile ha un valore di verita fissato. QuindiA e in realta corrisponde ad un assegnamento di verita parziale, che potrebbenon assegnare un valore di verita ad alcune variabili.

Dato un letterale λ indicheremo con ¬λ il suo letterale opposto: se λ = x,per una certa variabile proposizionale x, allora ¬λ = ¬x, se invece se λ = ¬x,allora ¬λ = x.

L’algoritmo e descritto in un linguaggio pseudo–Pascal come funzione cheha come argomenti p, la proposizione da verificare, e A, l’attuale assegnamentoparziale, e restituisce come risultato un assegnamento parziale che soddisfa p oil simbolo UNSAT che sta ad indicare che p e insoddisfacibile.

12

procedure DP(p,A)begin

if p = ∅ then DP:= Aelse if ∅ ∈ p then DP:=UNSATelse if λ ∈ p then DP:=DP(p[λ], A ∪ λ)else if λ e’ puro per p then DP:=DP(p[λ], A ∪ λ)else begin

scegli un letterale λr:=DP(p[λ], A ∪ λ)if r6= UNSAT then DP:= relse DP:=DP(p[¬λ], A ∪ ¬λ)

endend

Ecco la spiegazione dei vari passi dell’algoritmo.

• Se p e la proposizione vuota, cioe senza piu alcuna clausola, allora e ov-viamente soddisfacibile e la procedura termina riportando come assegna-mento quello corrispondente all’insieme A.

• Se in p c’e una clausola vuota, allora e insoddisfacibile e la proceduratermina con insuccesso. Questa alternativa, come del resto quella prece-dente, non si possono verificare all’inizio, ma solo solo dopo l’applicazionedi altre regole.

• Se in p c’e una clausola con un solo letterale λ (detta clausola unitaria,allora p e soddisfacibile se solo se lo e la proposizione p[λ], ottenuta elimi-nando da p tutte le clausole che contengono λ e cancellando da tutte le al-tre clausole il letterale ¬λ, ove esso appare, aggiungendo all’assegnamentoparziale A il letterale λ.

• Se in p esiste un letterale puro λ, cioe non compare mai il letteraleopposto ¬λ, allora p e soddisfacibile se solo se lo e la proposizione p[λ]aggiungendo all’assegnamento parziale A il letterale λ.

• Se nessuna delle precedenti regole di semplificazione puo essere applicata,allora si sceglie un letterale λ, con un criterio da stabilire e si prova adassegnare a λ uno dei valori di verita, ad esempio >. Si verifica se p[λ] esoddisfacibile mettendo λ in A.

Se p[λ] e soddisfacibile, allora anche p e soddisfacibile e nell’assegnamentocercato λ e vero.

Se invece p[λ] non fosse soddisfacibile, allora la procedura tentera conp[¬λ], mettendo ¬λ in A. Se quest’ultima proposizione risultasse soddi-sfacibile, allora p sarebbe soddisfacibile e nell’assegnamento cercato λ efalso. Se invece nemmeno p[¬λ] fosse soddisfacibile, allora la proceduradedurra che p e insoddisfacibile.

13

Il corretto funzionamento della procedura e basato sul seguente fatto, difacile dimostrazione: p e soddisfacibile se e solo se almeno una delle proposizionip[λ] e p[¬λ] e soddisfacibile, in cui λ e un qualsiasi letterale.

Facciamo a titolo di esempio vedere in funzione la procedura di Davis–Putnam su alcuni esempi.

Come primo esempio facciamo vedere che

q = ((a⇒ b)⇒ ((¬b)⇒ (¬a)))

e una tautologia, mostrando che r = (¬q) e insoddisfacibile. La proposizionerCNF e

¬a, b, ¬b, aApplicando due volte la regola della clausola unitaria si ottiene la clausola

vuota e quindi r e insoddisfacibile.Come secondo esempio facciamo vedere che

s = ((a ∨ b) ∧ ((a⇒ c) ∧ ((b⇒ c) ∧ (c⇒ (¬b)))))

e soddisfacibile.La sua forma normale congiuntiva e

sCNF = a, b, ¬a, c, ¬b, c, ¬b,¬c

Non ci sono clausole unitarie, ne letterali puri, dobbiamo quindi scegliere unavariabile. Supponendo di provare a porre vero il letterale b otteniamo

sCNF [b] = ¬a, c, c, ¬c

che con due applicazione della regola della clausola unitaria conduce ad unaclausola vuota.

Percio dobbiamo vedere se

sCNF [¬b] = a, ¬a, c

e soddisfacibile. La risposta e positiva ponendo a e c veri. Per cui l’assegnamentoche soddisfa s e A = a,¬b, c.

2.5 Un sistema formale per la logica proposizio-nale

Un approccio per determinare le tautologie (cioe i teoremi) della logica proposi-zionale completamente diverso da quello semantico e quello dei sistemi formali.Nei sistemi formali i teoremi saranno ottenuti attraverso una dimostrazione.

Un sistema formale S su un linguaggio L e definito attraverso un insiemedi assiomi A ed un insieme di regole di inferenza R.

L’insieme A contiene alcuni elementi di L che si suppone siano veri, senzabisogno di dimostrazione.

14

Una regola di inferenza e una “procedura” che dati n elementi di L, chesi suppone si gia dimostrati essere veri, e in grado di garantire la verita di unnuovo elemento di L.

I teoremi del sistema formale S sono ottenuti attraverso una dimostrazio-ne, cioe una sequenza finita di elementi di L, in cui ogni elemento della sequen-za e un assioma o e ottenuto da elementi precedenti della sequenza mediantel’applicazione di una delle regole di inferenza di R.

In questa sezione illustreremo percio un calcolo proposizionale, cioe unsistema formale costituito da un insieme di assiomi e da regole di inferenza ingrado di ottenere tutte e sole le conseguenze logiche di un insieme di proposizioni∆. Nel caso particolare di ∆ = ∅, il calcolo proposizionale e in grado di otteneretutte e sole tautologie.

2.5.1 Il sistema di assiomi

Il simbolo ⇔ non verra utilizzato e una proposizione del tipo (p ⇔ q) saraconsiderata semplicemente come abbreviazione della proposizione

((p⇒ q) ∧ (q ⇒ p))

Presentiamo ora un sistema di assiomi per il calcolo proposizionale, cheindicheremo con A.

1. (b⇒ (c⇒ b))

2. ((b⇒ (c⇒ d))⇒ ((b⇒ c)⇒ (b⇒ d)))

3. ((b ∧ c)⇒ b)

4. ((b ∧ c)⇒ c)

5. (b⇒ (c⇒ (b ∧ c)))

6. (b⇒ (b ∨ c))

7. (c⇒ (b ∨ c))

8. ((b⇒ d)⇒ ((c⇒ d)⇒ ((b ∨ c)⇒ d)))

9. ((b⇒ c)⇒ ((b⇒ (¬c))⇒ (¬b)))

10. ((¬(¬b))⇒ b)

Ognuno di questi assiomi va inteso come schema di assiomi, cioe i reali as-siomi sono quelli che si ottengono a partire da uno schema di assiomi sostituendouna o piu variabili proposizionali con proposizioni arbitrarie. Ad esempio dal-lo schema di assiomi 1 si ottengono le proposizioni ((b ∨ c) ⇒ (c ⇒ (b ∨ c))),((¬b)⇒ ((¬c)⇒ (¬b))), ((b⇒ b)⇒ ((b⇒ b)⇒ (b⇒ b))), ecc.

Comunque continueremo a parlare di assiomi, anziche di schemi di assiomi.

15

Questi assiomi sono alcune delle possibili tautologie del calcolo proposizio-nale. Non tutti gli insiemi finiti di tautologie sono adatti ad essere degli assiomidi un sistema formale per il calcolo proposizionale. Il motivo sara chiaro allafine della sezione.

Nel caso specifico della logica proposizionale l’unica regola di inferenza cheutilizzeremo e il modus ponens: date due proposizioni dimostrate p e q, in cuiq = (p ⇒ r), per una certa proposizione r, allora si puo dedurre la verita dellaproposizione r. Si indichera che r = MP (p, q).

2.5.2 Derivazioni e tecniche di dimostrazione

Dato un insieme ∆ di proposizioni, diremo che la proposizione q e derivabile da∆, in simboli ∆ ` q, se esiste una sequenza finita di proposizioni q1, q2, . . . , qm,detta derivazione, tale che qm = q e per ogni i = 1, . . . ,m, accade che qi ∈ ∆∪Aoppure esistono j, k < i per cui qi = MP (qj , qk).

Come caso particolare e possibile avere ∆ = ∅, in tal caso si dice che q e de-rivabile (tout court), oppure che q e un teorema del calcolo proposizionale,in simboli ` q.

Innanzitutto e facile dimostrare che il teorema di correttezza

Teorema 1 (di correttezza) Dati un insieme di proposizioni ∆ e una propo-sizione q, se ∆ ` q allora ∆ |= q

Infatti gli assiomi e le proposizioni di ∆ sono ovviamente conseguenze logichedi ∆, mentre il Modus Ponens, se applicato conseguenze logiche di ∆, produceancora una conseguenza logica di ∆.

In particolare per ∆ = ∅ si ottiene che ogni teorema del calcolo proposizionalee una tautologia.

Inoltre vale banalmente il seguente risultato

Proposizione 7 (di monotonia) Se ∆ ` q e ∆ ⊂ Γ, allora anche Γ ` q.

Per dimostrare il prossimo teorema abbiamo bisogno di dimostrare un lemmapreliminare.

Lemma 1 La tautologia (p⇒ p) e derivabile.

Dim. Denotiamo con q = (p⇒ p). Allora la derivazione di q e

• ((p ⇒ (q ⇒ p)) ⇒ ((p ⇒ q) ⇒ (p ⇒ p))) (assioma 2) riscritto come((p⇒ (q ⇒ p))⇒ ((p⇒ q)⇒ q))

• (p⇒ (q ⇒ p)) (assioma 1)

• ((p⇒ q)⇒ q) (per modus ponens)

• (p⇒ (p⇒ p)) (assioma 1) riscritto come (p⇒ q)

• q (per modus ponens).

16

Indicheremo nel resto delle dispense ∆, p ` . . . al posto di ∆ ∪ p ` . . . ep, q ` . . . al posto di p, q ` . . . .

Un risultato estremamente importante perche consente di dimostrare la va-lidita delle implicazioni del tipo (p⇒ q) a partire dalla dimostrazione di q sottol’ipotesi p e il seguente.

Teorema 2 (di deduzione) Dati un insieme di proposizioni ∆ e due propo-sizioni p e q, allora ∆, p ` q se e solo se ∆ ` (p⇒ q)

Dim. Come spesso accade una delle due implicazioni e facile da dimostrare.Se ∆ ` (p ⇒ q), allora la stessa derivazione si puo utilizzare per far vedereche ∆, p ` (p ⇒ q). A quella derivazione si possono aggiungere, nell’ordine, leproposizioni p (perche adesso e tra le ipotesi) e q (per modus ponens delle dueproposizioni p⇒ q e p). Quella ottenuta e quindi una derivazione di q da ∆, p.

Per dimostrare il viceversa, supponiamo di avere una derivazione q0, q1, . . . , qm =q di q da ∆, p. Costruiamo una derivazione r1, . . . , rn, in modo che per ogni qiesiste un rj per cui rj = (p ⇒ qi). Dato che qm = q, si avra che nella deriva-zione ri un elemento sara proprio (p⇒ q) e questo chiudera la derivazione, cioern = (p⇒ q).

Per ottenere la derivazione r1, . . . , rn di (p⇒ q), si parta con una sequenzainizialmente vuota e poi, per ogni proposizione qi si aggiungano alla sequenzaalcune proposizioni secondo lo schema seguente.

Se qi ∈ A, allora si aggiungano le proposizioni (qi ⇒ (p⇒ qi)), qi e (p⇒ qi).Se qi = p, allora si aggiunga (almeno la prima volta che qi = p) la dimostrazionedi (p ⇒ p). Se qi ∈ ∆, allora si aggiunga qi, (qi ⇒ (p ⇒ qi)) e (p ⇒ qi). Seqi = MP (qj , qk) allora, posto ad esempio qj = (qk ⇒ qi), si aggiungano le pro-posizioni ((p ⇒ (qk ⇒ qi)) ⇒ ((p ⇒ qk) ⇒ (p ⇒ qi))), ((p ⇒ qk) ⇒ (p ⇒ qi)),(p⇒ qi).

Un altro risultato molto importante e quello della dimostrazione “per as-surdo”: se assumendo come ipotesi p si giunge ad una contraddizione, allorabisogna necessariamente che p e falso, ossia che e vero (¬p). In generale si dirache un insieme di proposizioni ∆ e inconsistente se ∆ ` r e ∆ ` (¬r), per unaqualsiasi proposizione r.

Teorema 3 (di dimostrazione per assurdo) Dati un insieme di proposizio-ni ∆ e una proposizione p, ∆, p e inconsistente se e solo se ∆ ` (¬p)

Dim. Se ∆ ` (¬p), allora si ha contemporaneamente che se ∆, p ` p e se∆, p ` (¬p) e quindi ∆, p e inconsistente. Se invece ∆, p e inconsistente, al-lora per il teorema di deduzione si possono ottenere le derivazioni di (p⇒ (¬r))e di (p⇒ r) da ∆. Poi usando l’assioma 9 ((p⇒ r)⇒ ((p⇒ (¬r))⇒ (¬p))) edue volte il modus ponens, si ottiene (¬p).

17

Normalmente la contraddizione a cui si arriva e che partendo dall’ipotesi p,si ottiene come risultato (¬p). Il teorema sopra dimostrato usa una definizione(apparentemente) piu generale di contraddizione, in cui si ottengono sia unaproposizione che il suo contrario.

Da un insieme inconsistente di ipotesi si puo derivare qualunque proposizio-ne:

Proposizione 8 ∆ e inconsistente se e solo se per ogni proposizione q, si ha∆ ` q

Dim. Ovviamente se per ogni proposizione q, si ha ∆ ` q, allora ∆ e inconsisten-te. Se ∆ e inconsistente, allora lo e anche ∆, q, con q una qualsiasi proposizione.Per il teorema della dimostrazione per assurdo si ottiene ∆ ` (¬(¬q)). Tramitel’assioma 10, si ottiene una dimostrazione anche di q.

Un altro corollario della dimostrazione per assurdo e la tautologia del “modustollens”

((¬q)⇒ ((p⇒ q)⇒ (¬p)))Infatti (¬q), (p⇒ q), p e inconsistente e quindi (¬q), (p⇒ q) ` (¬p), da cui perdeduzione l’asserto.

2.5.3 Teorema di completezza

Per dimostrare l’ultimo risultato (il teorema di completezza) abbiamo bisognodi alcuni risultati intermedi.

Il primo e un semplice corollario della proposizione 8

Lemma 2 La tautologia Ex Falso Quodlibet (p⇒ ((¬p)⇒ q)) e derivabile.

Il secondo risultato e

Lemma 3 La tautologia ((¬p)⇒ ((¬q)⇒ (¬(p ∨ q)))) e derivabile.

Dim. Facciamo innanzitutto vedere che se ∆, s e ∆, t sono inconsistenti, alloralo e anche ∆, (s ∨ t). Infatti abbiamo che ∆, s ` r e ∆, t ` r, per ogni propo-sizione r. Per deduzione, ∆ ` (s ⇒ r) e ∆ ` (t ⇒ r). Usando l’assioma 8 e ilmodus ponens, otteniamo che ∆ ` ((s ∨ t) ⇒ r), ovvero che ∆, (s ∨ t) ` r. Dacio segue che ∆, (s ∨ t) e inconsistente.Posto ∆ = (¬p), (¬q), dal fatto che ∆, p e ∆, q sono inconsistenti, segue cheanche ∆, (p ∨ q) e inconsistente. Applicando i teoremi di dimostrazione per as-surdo e deduzione si ottiene facilmente l’asserto.

Lemma 4 La tautologia (p⇒ (¬(¬p))) e derivabile

Dim. L’insieme p, (¬p) e chiaramente inconsistente, percio, usando il teoremadella dimostrazione per assurdo, si ottiene l’asserto.

18

Lemma 5 La tautologia ((p⇒ q)⇒ (((¬p)⇒ q)⇒ q)) e derivabile

Dim. Facciamo innanzitutto vedere che se ∆, s e ∆, (¬s) sono inconsistenti, al-lora lo e anche ∆: infatti abbiamo che ∆ ` (¬s) e ∆ ` (¬(¬s)).Percio usando ∆ = (p ⇒ q), ((¬p) ⇒ q), (¬q) e s = p, si ottiene facilmentel’asserto.

Il risultato fondamentale per la dimostrazione del teorema di completezza eil seguente lemma

Lemma 6 Sia V un insieme finito di variabili proposizionali, α un assegna-mento di verita su V e Xα l’insieme di tutti i letterali veri in α

Xα = v : v ∈ V e α(v) = > ∪ (¬v) : v ∈ V e α(v) = ⊥allora per ogni proposizione p tale che α |= p, si ha Xα ` p, mentre per ogniproposizione p tale che α 6|= p, si ha Xα ` (¬p).

La dimostrazione di questo lemma si fa per induzione strutturale o, in modoalternativo ma equivalente, sul numero di parentesi aperte di p.

Se p non ha parentesi, allora p e per forza una variabile proposizionale. Inoltrese α |= p allora p ∈ Xα e banalmente Xα ` p. Mentre se α 6|= p, allora allora(¬p) ∈ Xα e quindi Xα ` (¬p)

Supponiamo ora che il lemma valga per proposizioni con un numero di pa-rentesi aperte minore o uguale a n e facciamo vedere che vale anche per unaproposizione p con n+ 1 parentesi aperte.

Se p = (¬q), q ha al massimo n parentesi aperte. Se supponiamo che α |= q,per ipotesi induttiva Xα ` q. Usando il lemma 4, otteniamo Xα ` (¬(¬q)), cioeXα ` (¬p), che corrisponde al fatto che α |= (¬p).

Se invece supponiamo che α 6|= q, per ipotesi induttiva Xα ` (¬q). Ma(¬q) = p e quindi Xα ` p, che corrisponde al fatto che α |= p.

Se p = (q∧r), allora sia q che r hanno al massimo n parentesi aperte. Se α 6|= q,per ipotesi induttiva si ha che Xα ` (¬q), da cio discende che Xα, (q∧ r) ` (¬q)e contemporaneamente Xα, (q ∧ r) ` q e quindi otteniamo usando la dimostra-zione per assurdo che Xα ` (¬(q ∧ r)), che corrisponde al fatto che α |= (¬p).Lo stesso vale nel caso in cui Xα ` (¬r).

Nel caso rimanente, α |= q e α |= r e per ipotesi induttiva vale che Xα ` q eXα ` r, quindi si ha facilmente che Xα ` (q ∧ r) in virtu dell’assioma 5.

Se p = (q ⇒ r), allora sia q che r hanno al massimo n parentesi aperte. Seα |= r, per ipotesi induttiva Xα ` r, quindi usando l’assioma 1, si ha facilmenteche Xα ` (q ⇒ r), che corrisponde al fatto che α |= p.

Nel caso in cui α 6|= q, si ha Xα ` (¬q), quindi usando la derivazione dellemma 2 e il modus ponens si ottiene Xα ` (q ⇒ r), anche questo corrispondenteal fatto che α |= p.

19

Nel caso rimanente, α |= q e α 6|= r, percio per ipotesi induttiva Xα ` q eXα ` (¬r); da cio si ottiene contemporaneamente Xα, (q ⇒ r) ` r e Xα, (q ⇒r) ` (¬r). Usando la dimostrazione per assurdo si ottiene che Xα ` (¬(q ⇒ r)),corrispondente al fatto che α 6|= p.

Se p = (q ∨ r), allora sia q che r hanno al massimo n parentesi aperte. Nelcaso in cui α |= q, per ipotesi induttiva vale Xα ` q e percio per l’assioma 6 siottiene Xα ` (q ∨ r), corrispondente al fatto che α |= p. Analogamente si trattail caso in cui α |= r.

Nel caso in cui α 6|= q e α 6|= r, per ipotesi induttiva abbiamo Xα ` (¬q)e Xα ` (¬r), quindi si usa la dimostrazione della tautologia ((¬q) ⇒ ((¬r) ⇒(¬(q ∨ r)))) per ottenere che Xα ` (¬(q ∨ r)), perfettamente corrispondente alfatto che α 6|= p.

Il risultato finale e il seguente

Teorema 4 (completezza) A e un insieme completo di assiomi, cioe per ognitautologia q, si ha che ` q.

Dim. Sia q una tautologia, le cui variabili proposizionali siano V = x1, x2, . . . , xn.Per ogni α : V → B, si ha che α |= q e per il lemma 6, Xα ` q. Si partacon la variabile x1 e si trovino tutte le coppie di assegnamenti che differisconosolo per il valore di verita assegnato a x1. Il numero di tali coppie e 2n−1.Per ognuna di queste coppie, diciamo α, α′, e chiaro che Xα = x1 ∪ Xβ eXα′ = (¬x1) ∪ Xβ , ove β : x2, . . . , xn → B. Si ottiene facilmente cheXβ ` (x1 ⇒ q) e Xβ ` ((¬x1) ⇒ q) e da cio, utilizzando la tautologia dellemma 5 si ottiene che Xβ ` q. Facendo questo procedimento per tutte le cop-pie, si otterra che Xβ ` q per tutti gli assegnamenti β sull’insieme di variabilix2, . . . , xn.

A questo punto, lo stesso processo viene svolto per x2, x3, . . . , xn. Alla finedell’ultimo passaggio si avra la dimostrazione che ` q.

2.5.4 Considerazioni finali

Attraverso i teoremi di correttezza e di completezza abbiamo dimostrato che idue concetti di verita semantica (essere una tautologia) e di verita formale–sintattica (essere derivabile) coincidono. Questo risultato e estremamente im-portante perche permette di giustificare l’utilizzo di procedimenti puramentemeccanici di dimostrazione tratti dalla teoria assiomatica.

Inoltre come corollario del teorema di correttezza abbiamo anche il fatto chel’insieme degli assiomi e consistente (cioe non inconsistente).

Resta da chiedersi se puo essere esistere un’altra assiomatizzazione (corret-ta e completa) della logica proposizionale ed eventualmente come scegliere gliassiomi. Innanzitutto quella proposta non e l’unica assiomatizzazione possibile.Ne esistono molte altre, ad esempio sul Mendelson [3] si usano solo gli assiomi1, 2 e 9, perche gli altri connettivi sono scritti tutti in termini di ⇒ e ¬.

20

L’assiomatizzazione che abbiamo scelto, proposta da Kleene, ha il vantaggiodi utilizzare gli assiomi corrispondenti alle regole della deduzione naturale, chee uno dei modelli alternativi per la teoria della dimostrazione. Infatti ogniassioma di A puo essere riletto come regola di deduzione: ad esempio l’assioma5 (b⇒ (c⇒ (b∧ c))) puo essere convertito nella regola “Se ∆ ` b e ∆ ` c, allora∆ ` (b ∧ c)”. La notazione che si usa in questo caso e la seguente

∆ ` b, ∆ ` c∆ ` (b ∧ c)

21

Capitolo 3

La logica dei predicati

3.1 Sintassi della logica dei predicati

Un linguaggio della logica dei predicati della logica dei predicati e composto diparole di un alfabeto avente simboli logici CQ e simboli extra–logici Σ. L’alfa-beto CQ, oltre ai connettivi ∧,∨,⇒,⇔,¬ della logica proposizionale, contienei quantificatori ∀ e ∃.

L’alfabeto Σ e l’unioni di quattro alfabeti finiti diversi

V , i cui elementi sono detti simboli di variabili

C, i cui elementi sono detti simboli di costanti

F , i cui elementi sono detti simboli di funzioni

R, i cui elementi sono detti simboli di relazioni

Inoltre all’alfabeto Σ e associata una funzione δ : R ∪ F → N, detta arita,che indica per ogni simbolo di funzione e di relazione, quanti argomenti sonoprevisti per quella funzione o relazione. Ad esempio se per f ∈ F , δ(f) = 2,vuol dire che f e un simbolo di funzione binaria che puo essere applicato solo adue argomenti.

Innanzitutto introduciamo il linguaggio dei termini.

Definizione 15 Dato Σ, il linguaggio dei termini T (Σ) e il linguaggio ge-nerato dalla grammatica (T, T, AT , PT ) in cui AT = F ∪ V ∪C ∪ (, ), , e lecui produzioni PT sono

• T → k per ogni k ∈ C

• T → x per ogni x ∈ V

• T → f(T, T, . . . , T ) per ogni f ∈ F , in cui il numero di simboli T all’in-terno delle parentesi e δ(r)

22

Ad esempio se F = f, g, C = c e V = x, y, con δ(f) = 1 e δ(g) = 2.Allora alcuni termini sono x, c, f(c), f(x), g(x, c), g(c, c), g(f(x), c), g(c, f(c)),ecc.

Si noti che se F 6= ∅ allora il linguaggio e infinito, infatti si possono averex, f(x), f(f(x)), f(f(f(x))), . . . .

Dato che il linguaggio dei termini dipende da Σ, nella logica dei predicatisi parlera del linguaggio LP(Σ) della logica dei predicati (e non del linguaggiotout court), proprio ad indicare la dipendenza da Σ.

Il linguaggio LP(Σ) e generato dalla grammatica (S, S, T, AP , PT ∪P ′) incui AP = R ∪AT ∪ CQ ∪ . e le produzioni sono quelle di PT piu le seguenti

• S → r(T, T, . . . , T ) per ogni r ∈ R, in cui il numero di simboli T all’internodelle parentesi e δ(r)

• S → (S ∨ S)

• S → (S ∧ S)

• S → (S ⇒ S)

• S → (S ⇔ S)

• S → (¬S)

• S → (∀x.S) per ogni x ∈ V

• S → (∃x.S) per ogni x ∈ V

Definizione 16 Le parole del linguaggio LP(Σ) sono dette formule, in par-ticolare quelle prodotte applicando solo la prima produzione, cioe quelle in cuinon sono presenti connettivi o quantificatori, sono dette formule atomiche.

Se F, C, V sono come nell’esempio precedente e R = r, s, con δ(r) = 2e δ(s) = 1, allora sono formule atomiche di LP(Σ)(Σ) le parole: r(f(x), x),r(c, g(c, c)), s(y), s(f(c)), ecc. Mentre sono formule di LP(Σ)(Σ) le parole(¬s(y)), (∀x.s(x)), (∀x.(∀y.r(x, f(y)))), ecc.

Definizione 17 Si dira che una variabile x occorre legata in una formulaφ, se x ha un occorrenza in una parola del tipo (∃x.ψ) o del tipo (∀x.ψ), che asua volta occorre in φ. Cio vuol dire che x e sotto l’azione di un quantificatore.Si dira invece che x occorre libera in φ se x pur occorrendo nella parola φ,non occorre in parole del tipo sopra descritto. Cio significa che x non e sottol’azione di un quantificatore.

Ad esempio nella formula (s(x) ⇒ ((∃x.(∀y.r(x, g(y, z)))))), x occorre duevolte, una prima volta libera (a partire da sinistra) e una seconda volta legata,y occorre solo una volta legata e z solo una volta libera.

Se una formula ha solo occorrenze di variabili legate, la formula si chiamaenunciato. Per indicare che una formula φ ha come variabili libere x1, x2, . . . , xnsi puo usare la notazione φ(x1, x2, . . . , xn).

23

Data una formula φ, una variabile x che occorre libera in φ e un termine t,indicheremo con φ[x/t] la formula che si ottiene da φ sostituendo ogni occorrenzalibera di x con il termine t. Ad esempio se φ = ((∀x.P (x, y))⇒ P (y, x)) alloraφ[y/z] = ((∀x.P (x, z))⇒ P (z, x)) mentre φ[x/z] = ((∀x.P (x, y))⇒ P (y, z)).

3.2 Semantica della logica dei predicati

La semantica della logica dei predicati e molto piu complessa di quella dellalogica proposizionale, in quanto il linguaggio della logica dei predicati permettedi rappresentare oggetti e relazioni tra di loro, mentre nella logica proposizionalesi puo parlare solo di fatti.

Il concetto chiave e quello di interpretazione.

Definizione 18 Dato un linguaggio LP(Σ), un’interpretazione I e una qua-drupla (D, IC , IF , IR), in cui D e un insieme chiamato dominio, IC : C → De una funzione che ad ogni costante c ∈ C assegna un valore IC(c) ∈ D, IF euna funzione che ad ogni simbolo di funzione f di arita n assegna una funzioneIF (f) : Dn → D e infine IR e una funzione che ad ogni simbolo di relazione Rdi arita n assegna una relazione n-aria su D, ossia IR(R) ⊂ Dn.

Affiancata all’intepretazione vi e il concetto di valutazione.

Definizione 19 Dato un linguaggio LP(Σ), una valutazione e una funzioneµ : V → D, che ad ogni simbolo di variabile v assegna un elemento del dominio.

Dati un’intepretazione I e una valutazione µ, e facile vedere che ad ognitermine τ puo essere associato un elemento del dominio [τ ]I,µ secondo le seguentileggi ricorsive:

• se τ e una costante c ∈ C, allora [τ ]I,µ = IC(c)

• se τ e una variabile v ∈ V , allora [τ ]I,µ = µ(v)

• se τ = f(τ1, . . . , τn) e [τi]I,µ = di, per i = 1, . . . , n, allora [τ ]I,µ =IF (f)(d1, . . . , dn).

Definizione 20 Date due valutazioni µ, µ′ : V → D e data x ∈ V , diremo cheµ e µ′ differiscono al piu su x, in simboli µ′ ∼x µ, se per ogni v ∈ V , conv 6= x, accade che µ(v) = µ′(v).

E’ ovvio che µ ∼x µ e quindi ∼x e una relazione di equivalenza. Inoltredato una valutazione µ, ogni altra valutazione µ′, per cui µ′ ∼x µ, si ottieneprendendo un valore arbitrario d ∈ D, con d 6= µ(d) e definendo

µ′(v) =

µ(v) se v 6= xd se v = x

Definizione 21 Una formula φ di un linguaggio LP(Σ) e vera dati I e µ, insimboli I, µ |= φ in base alle seguenti regole ricorsive

24

• se φ e una formula atomica del tipo φ = r(t1, . . . , tn), allora I, µ |= φ se esolo se (d1, . . . , dn) ∈ IR(r) ove [τi]I,µ = di, per i = 1, . . . , n

• se φ = (¬ψ), allora I, µ |= φ se e solo se non e vero che I, µ |= ψ, insimboli I, µ 6|= ψ

• se φ = (ψ ∧ χ), allora I, µ |= φ se e solo se I, µ |= ψ e I, µ |= χ

• se φ = (ψ ∨ χ), allora I, µ |= φ se e solo se I, µ |= ψ e/o I, µ |= χ

• se φ = (ψ ⇒ χ), allora I, µ |= φ se e solo se I, µ 6|= ψ e/o I, µ |= χ

• se φ = (ψ ⇔ χ), allora I, µ |= φ se e solo se I, µ |= ψ e I, µ |= χ oppureI, µ 6|= ψ e I, µ 6|= χ

• se φ = (∀x.ψ), allora I, µ |= φ se e solo se I, µ′ |= ψ per ogni µ′ ∼x µ

• se φ = (∃x.ψ), allora I, µ |= φ se e solo se I, µ′ |= ψ per almeno unµ′ ∼x µ

Definizione 22 La forumula φ e soddisfacibile (il qual fatto si indica conI |= φ) se I, µ |= φ per ogni valutazione µ : V → D. In tal caso I e dettamodello di φ.

Indicheremo con Mod(φ) l’insieme dei modelli di φ.E’ semplice dimostrare che se φ e un enunciato, allora accade che I, µ |= φ per

ogni valutazione µ : V → D, oppure I, µ 6|= φ per ogni valutazione µ : V → D.Invece in generale se φ ha delle variabili libere allora potrebbe accadere che peralcune valutazioni µ : V → D I, µ |= φ, mentre per altre I, µ 6|= φ.

Definizione 23 Una formula φ e valida, in simboli |= φ, se I |= φ, per ognipossibile interpretazione I, mentre φ e insoddisfacibile se I 6|= φ per ogni I.

Essere una formula φ valida nella logica dei predicati e un concetto corri-spondente ad essere una tautologia nella logica proposizionale: in entrambi icasi si tratta di una formula che e vera indipendentemente dall’interpretazione(che nella logica proposizionale e semplicemente un assegnamento di verita).

Una tautologia della logica proposizionale puo essere espressa nella logica deipredicati come formula valida: ad esempio usando un simbolo di relazione r, unsimbolo di costante ci associato ad ogni variabile proposizionale xi e sostituendoal posto di xi la formula atomica r(ci). Ad esempio la tautologia (p⇒ (q ⇒ p))diventerebbe (r(c)⇒ (r(d)⇒ r(c))).

Se si prende una tautologia e al posto di ogni variabile proposizionale sisostituisce una formula qualsiasi, si ottiene una formula valida. Ad esempiodalla tautologia (p ∨ (¬p)) si possono ottenere le formule valide ((∀x.Q(x)) ∨(¬(∀x.Q(x)))), ((∀x.(∃y.P (x, y))) ∨ (¬(∀x.(∃y.P (x, y))))), ecc.

Esistono pero molte formule valide che non derivano da tautologie. Ecconeun paio di esempi.

25

L’enunciato α = ((∀x.P (x)) ⇒ (∃x.P (x))) e una formula valida, in quantopresa un’interpretazione I, se I 6|= (∀x.P (x)), allora I |= α, mentre se I |=(∀x.P (x)), allora accade che IR(P ) = D, in quanto deve verificarsi che I, µ |=P (x) per ogni possibile valutazione µ. Da cio segue che esiste una valutazioneµ per cui I, µ |= P (x), cioe I |= (∃x.P (x)), e quindi I |= α.

L’enunciato β = ((∀x.u(x) ⇒ m(x)) ∧ u(s)) ⇒ m(s) e una formula valida,in quanto presa un’interpretazione I e presa I |= (∀x.u(x)⇒ m(x))∧ u(s), cioeI |= (∀x.u(x)⇒ m(x)) e I |= u(s), si ha che IR(u) ⊂ IR(m) e che IC(s) ∈ IR(u),da cio segue banalmente che IC(s) ∈ IR(m), quindi I |= m(s) e percio I |= β.

Definizione 24 Due formule α e β sono equivalenti se per ogni interpreta-zione I e per ogni valutazione µ accade che I, µ |= α se e solo se I, µ |= β.In particolare, due enunciati α e β sono equivalenti se hanno gli stessi modelli,cioe per ogni interpretazione I, accade che I |= α se e solo se I |= β.

Ad esempio sono enunciati equivalenti (¬(∀x.α)) e (∃x.(¬α)). Infatti seI e un modello del primo enunciato, allora I 6|= (∀x.α) e quindi esiste unavalutazione µ, per cui I, µ 6|= α, ovvero I, µ |= (¬α) e quindi I |= (∃x.(¬α)). Ilcaso inverso (¬(∃x.α)) ≡ (∀x.(¬α)) e analogo.

Parimenti sono equivalenti gli enunciati (¬(∃x.α)) e (∀x.(¬α)).Un’altra legge di equivalenza importante e

(∀x.(∀y.α)) ≡ (∀y.(∀x.α))

insieme alla sua duale

(∃x.(∃y.α)) ≡ (∃y.(∃x.α)),

di facile dimostrazione. Cio ci autorizza a scrivere le formule precedenti in modoabbreviato (∀x.∀y.α) e (∃x.∃y.α).

Definizione 25 Dati ∆ un insieme di formula e γ una formula, si dira che γe una conseguenza logica di ∆, in simboli ∆ |= γ, se per ogni interpretazioneI e per ogni valutazione µ tali che

I, µ |= δ per ogni formula δ ∈ ∆,

accade che I, µ |= γ. Se ∆ e γ sono enunciati, allora indicato con Mod(∆)l’insieme dei modelli comuni a tutti gli elementi di ∆, accade che

Mod(∆) ⊂Mod(γ)

Se ∆ e un insieme finito di formule δ1, . . . , δn, allora ∆ |= γ se e solo sela formula (δ1 ∧ . . . δn) ∧ (¬γ) e insoddisfacibile.

26

3.3 Metodi semantici per il controllo della sod-disfacibilita

In questa sezione descriveremo per sommi capi una procedura che e in grado ditrovare se un enunciato e insoddisfacibile o se una formula e una conseguenzalogica di un insieme finito di formule. La procedura che troveremo non e deltutto soddisfacente, ma come sara chiaro in seguito non ci sono speranze ditrovarne di migliori.

Supponiamo di avere un enunciato α. E’ possibile trovare una formula α′,tale che α′ e soddisfacibile se e solo se α lo e, e che e forma prenessa, cioeespressa solo con quantificatori universali disposti solo all’inizio della formula.

Il procedimento che porta α in forma prenessa si effettua in cinque passi:

1. Sostituire i connettivi⇔ e⇒, usando le leggi (α⇔ β) ≡ ((α⇒ β)∧ (β ⇒α) e (α⇒ β) ≡ ((¬α) ∨ β)

2. Muovere i connettivi ¬ verso l’interno usando le leggi di de Morgan per ∨e ∧ e le leggi (¬(∀x.α)) ≡ (∃x.(¬α)) e (¬(∃x.α)) ≡ (∀x.(¬α)) fino a cheogni negazione sia applicata solo a formule atomiche

3. Rinominare le variabili in modo che ogni quantificatore agisca su unavariabile diversa

4. Portare completamente all’esterno i quantificatori usando le leggi ((∃x.α)∨β) ≡ (∃x.(α ∨ β)), ((∀x.α) ∨ β) ≡ (∀x.(α ∨ β)) e simili

5. Eliminare ogni quantificatore esistenziale procedendo dall’esterno versol’interno mediante il procedimento di Skolemizzazione. Se il quantificatore(∃x.φ) e quello piu esterno (comprendendo anche i ∀), sostitiure al posto dix una costante c non presente in α. Se il quantificatore (∃x.φ) e precedutoda n quantificatori universali ∀x1.∀x2. . . . .∀xn, sostituire al posto di x iltermine f(x1, . . . , xn), in cui f e un simbolo di funzione non presente inα. In ogni caso il linguaggio con cui e espressa α′

La validita dell’ultimo passo e giustificata dalla seguente

Proposizione 9 Sia γ = (∀x1.∀x2. . . . .∀xn.∃x.φ) e γs la sua Skolemizzazione,ovvero γs = (∀x1.∀x2. . . . .∀xn.φ[x/f(x1, . . . , xn)]), allora γ e soddisfacibile se esolo se γs e soddisfacibile.

Dim. Innanzitutto si noti che γ e γs non posso essere equivalenti in quanto for-mule di linguaggi diversi. Infatti in γs sono presenti simboli di costanti o simbolidi funzioni che potrebbero non essere presenti nel linguaggio originario di α.

Per iniziare e facile far vedere che ogni modello di γs e un modello di γ. Infatti se,data un intepretazione I, I |= (∀x1.∀x2. . . . .∀xn.φ[x/f(x1, . . . , xn)]) allora perogni valutazione µ, posto d1 = µ(x1), . . . , dn = µ(xn) e d = IF (f)(d1, . . . , dn),la valutazione µ′(x) = d e µ′(y) = µ(x), per ogni y 6= x, e tale che I, µ′ |= φ e

27

quindi I |= γ.

Supponiamo invece che esiste un’intepretazione I di dominio D per cui I |=(∀x1.∀x2. . . . .∀xn.∃x.φ). Definiamo ora un’intepretazione J di dominio D taleche J |= (∀x1.∀x2. . . . .∀xn.φ[x/f(x1, . . . , xn)]). J eredita da I l’interpretazionedi tutti i simboli, in piu J interpretera f con la funzione JF (f) : Dn → D defini-ta nel seguente modo. Per ogni ennupla (d1, . . . , dn) ∈ Dn, sia µ una valutazioneper cui µ(xi) = di, per i = 1, . . . , n. Dato che I |= γ, esiste una valutazioneµ′ ∼x per cui I, µ′ |= φ. Definendo JF (f)(d1, . . . , dn) = µ′(x) si vede facilmenteche J, µ |= φ[x/f(x1, . . . , xn)] e quindi l’asserto.

Un paio di esempi di utilizzo del procedimento di riduzione a forma prenessasaranno presentati in seguito.

3.3.1 Il teorema di Herbrand

Definizione 26 L’universo di Herbrand di un enunciato α e il linguaggioH(α) di tutti i termini chiusi (cioe senza variabili), costruiti usando le funzionie le costanti usate in α. Nel caso in cui in α non si presentassero delle costantisi aggiunga una costante arbitraria c

Ad esempio se α = (p(x, c)⇒ p(f(x), d)) allora

H(α) = c, d, f(c), f(d), f(f(c)), f(f(d)), . . ..

Definizione 27 Dato un enunciato α, l’insieme degli atomi A(α) e l’insiemedi tutte le formule atomiche composte con i simboli di relazione presenti in αapplicati a termini di H(α)

A(α) = r(t1, . . . , tn) : ti ∈ H(α), δ(r) = n

Ad esempio A(α) = p(c, c), p(c, d), p(d, c), p(d, d), p(f(c), c), . . . , per α co-me nell’esempio precedente.

Teorema 5 Dato α = (∀x1.∀x2. . . . .∀xn.β) un enunciato in forma prenessa,allora α e soddisfacibile se e solo e soddisfacibile (nella logica proposizionale)l’insieme di proposizioni

Ω(α) = β[x1/t1, . . . , xn/tn] : ti ∈ H(α)

considerando come variabili proposizionali le formule atomiche di A(α).

Dim. Innanzitutto supponiamo che α abbia come modello l’interpretazione I.E’ possibile allora costruire un assegnamento δ : A(α)→ B definito da

δ(r(t1, . . . , tn)) = > ⇔ I |= r(t1, . . . , tn)

per ogni r(t1, . . . , tn) termine di A(α). E’ facile mostrare che questo assegna-mento soddisfa ogni proposizione ω ∈ Ω(α).

28

Sia adesso invece Ω(α) soddisfacibile tramite un assegnamento δ : A(α) →B, allora e possibile costruire un’interpretazione I a partire da δ avente comedominio D proprio H(α).

Definiremo, usando una tecnica che sfrutteremo di nuovo per dimostrare ilteorema di completezza, IC come la funzione identita (cioe per ogni simbolodi costante c ∈ C IC(c) = c) e IF (f) : Dn → D, per ogni simbolo di funzionef ∈ F con arita n, come quella funzione che ad ogni ennupla t1, . . . , tn di terminidi H(α) associa il termine f(t1, . . . , tn) (intendendo con maggiore precisione laparola ottenuta concatenando le parole “f(”, t1, “,” . . . tn e infine la parola “)”).Infine definiremo IR(r) ⊂ Dn, per ogni simbolo di relazione r ∈ R con arita n,come quel sottoinsieme di Dn contenente tutte e sole quelle ennuple (t1, . . . , tn)di parole di H(α) tali che δ(r(t1, . . . , tn)) = >, intendendo la parola r(t1, . . . , tn)costruita in modo analogo a quanto detto sopra.

E’ facile dimostrare che questa interpretazione e un modello di α.

A questo punto siamo in grado di enunciare e dimostrare il teorema diHerbrand

Teorema 6 Un enunciato α in forma prenessa e insoddisfacibile se e solo esisteun sottoinsieme finito ∆ di Ω(α) che e insoddisfacibile

Dim. Per la dimostrazione e indispensabile il teorema di compattezza, checitiamo senza dimostrarlo:

Un insieme di proposizioni e soddisfacibile se e solo se ogni suosottoinsieme finito e soddisfacibile.

Infatti, per il teorema 5, α e insoddisfacibile se e solo se Ω(α) e insoddi-sfacibile, il che accade, per il teorema di compattezza, se e solo se esiste unsottoinsieme finito ∆ ⊂ Ω(α) che e insoddisfacibile.

Questo risultato ci permette di definire un procedimento che e in grado distabilire se un enunciato α e insoddisfacibile:

1. Si porti α in forma prenessa

2. Si costruisca un’enumerazione effettiva di tutti i sottoinsiemi finiti di Ω(α)1 ∆1,∆2, . . . ,∆n, . . .

3. Per ogni sottoinsieme ∆i, si determini la sua soddisfacibilita con un qual-siasi metodo della logica proposizionale, ad esempio la procedura di Davis–Putnam

4. Nel caso che ∆i risultasse insoddisfacibile, allora il procedimento terminacon la risposta che α e insoddisfacibile

5. Nel caso contrario il procedimento continua

1Ovvero un procedimento che e in grado di produrre uno dopo l’altro tutti i sottoinsiemifiniti. Questo concetto sara formalizzato meglio in seguito

29

Si noti che tale procedimento non termina se α e soddisfacibile. Questo pro-cedimento e utilizzabile solo se si vuol dimostrare, gia essendone a conoscenza,che α e insoddisfacibile, ma non puo essere utilizzato per scoprire se α e soddi-sfacibile oppure no, perche in caso positivo il procedimento non darebbe alcunarisposta.

Ma non si puo fare di meglio: in base al teorema di Church, che faremosuccessivamente, non e possibile trovare un procedimento che sia in grado distabilire se una formula e soddisfacibile oppure no.

3.3.2 Esempi

Il primo esempio e quello di verificare che (∀x.u(x)⇒ m(x)), u(s) |= m(s).Sia α = ((∀x.u(x)⇒ m(x)) ∧ u(s) ∧ (¬m(s))).La sua forma prenessa e

α′ = (∀x.(((¬u(x)) ∨m(x)) ∧ u(s) ∧ (¬m(s))))

Chiaramente H(α′) = s e Ω(α′) = ((¬u(s)) ∨ m(s)) ∧ u(s) ∧ (¬m(s)).Dato che Ω(α′) e insoddisfacibile, ne segue che α e insoddisfacibile e quindi(∀x.u(x)⇒ m(x)), u(s) |= m(s).

Il secondo esempio, tratto da [1], parla di girini e di squali.Si vuole modellare la seguente situazione

• Ogni squalo mangia un girino

• Tutti i pesci grandi sono squali

• Alcuni pesci grandi vivono sui fondali

• Ogni girino mangiato da pesci di fondale e sfortunato

e dimostrare, sotto queste ipotesi, che “alcuni girini sono sfortunati”.Useremo le relazioni m(x, y) per “x mangia y”, s(x) per “x e uno squalo”,

P (x) per “x e un pesce grande”, g(x) per “x e un girino”, f(x) per “x vive suifondali” e infine d(x) per “x e sfortunato”.

Il nostro insieme ∆ e quindi

(∀x.(s(x)⇒ (∃y.g(y) ∧m(x, y)))),

(∀x.P (x)⇒ s(x)),

(∃x.P (x) ∧ f(x)),

(∀x.(g(x) ∧ (∃y.f(y) ∧m(y, x)))⇒ d(x))

e vogliamo dimostrare che ∆ |= γ ove

γ = (∃x.g(x) ∧ d(x))

30

Dobbiamo quindi dimostrare l’insoddisfacibilita di

α = (∀x.(s(x)⇒ (∃y.g(y) ∧m(x, y)))) ∧(∀x.P (x)⇒ s(x)) ∧(∃x.P (x) ∧ f(x)) ∧(∀x.(g(x) ∧ (∃y.f(y) ∧m(y, x)))⇒ d(x)) ∧(¬(∃x.g(x) ∧ d(x)))

Dopo il passo 1 otterremo

(∀x.((¬s(x)) ∨ (∃y.g(y) ∧m(x, y)))) ∧(∀x.(¬P (x)) ∨ s(x)) ∧(∃x.P (x) ∧ f(x)) ∧(∀x.(¬(g(x) ∧ (∃y.f(y) ∧m(y, x)))) ∨ d(x)) ∧(¬(∃x.g(x) ∧ d(x)))

Dopo il passo 2 otterremo

(∀x.((¬s(x)) ∨ (∃y.g(y) ∧m(x, y)))) ∧(∀x.(¬P (x)) ∨ s(x)) ∧(∃x.P (x) ∧ f(x)) ∧(∀x.((¬g(x)) ∨ (∀y.(¬f(y)) ∨ (¬m(y, x))) ∨ d(x)) ∧(∀x.(¬g(x)) ∨ (¬d(x)))

Dopo il passo 3 otterremo

(∀x1.((¬s(x1)) ∨ (∃y1.g(y1) ∧m(x1, y1)))) ∧(∀x2.(¬P (x2)) ∨ s(x2)) ∧(∃x3.P (x3) ∧ f(x3)) ∧(∀x4.((¬g(x4)) ∨ (∀y4.(¬f(y4)) ∨ (¬m(y4, x4))) ∨ d(x4)) ∧(∀x5.(¬g(x5)) ∨ (¬d(x5)))

Dopo il passo 4 si avra

(∃x3.∀x1.∃y1.∀x2.∀x4.∀y4.∀x5.

((¬s(x1)) ∨ (g(y1) ∧m(x1, y1))) ∧((¬P (x2)) ∨ s(x2)) ∧(P (x3) ∧ f(x3)) ∧((¬g(x4)) ∨ ((¬f(y4)) ∨ (¬m(y4, x4))) ∨ d(x4)) ∧((¬g(x5)) ∨ (¬d(x5))))

31

Effettuando la Skolemizzazione di x3 (sostuituendolo con la costante c) e diy1 (sostituendolo con il termine h(x1)) si ottiene la forma prenessa finale

α′ = (∀x1.∀x2.∀x4.∀y4.∀x5.

((¬s(x1)) ∨ (g(h(x1)) ∧m(x1, h(x1)))) ∧((¬P (x2)) ∨ s(x2)) ∧(P (c) ∧ f(c)) ∧((¬g(x4)) ∨ ((¬f(y4)) ∨ (¬m(y4, x4))) ∨ d(x4)) ∧((¬g(x5)) ∨ (¬d(x5))))

Si noti che l’ordine con cui i quantificatori sono stati portati all’esternoe stato scelto per rendere minimo l’impatto della Skolemizzazione (solo unacostante e una funzione di arita uno).

A questo punto bisogna dimostrare che l’insieme Ω(α′) e insoddisfacibile ove

β = ((¬s(x1)) ∨ (g(h(x1)) ∧m(x1, h(x1)))) ∧((¬P (x2)) ∨ s(x2)) ∧(P (c) ∧ f(c)) ∧((¬g(x4)) ∨ (¬f(y4)) ∨ (¬m(y4, x4)) ∨ d(x4)) ∧((¬g(x5)) ∨ (¬d(x5)))

e H(α′) = c, h(c), h(h(c)), h(h(h(c))), . . . , .Un sottoinsieme finito insoddisfacibile di Ω(α′) e il singoletto

β[x1/c, x2/c, x4/h(c), y4/c, x5/c]

come si puo vedere dalla forma assunta di β, in quanto dopo queste sostituzionisi puo applicare la procedura di Davis–Putnam (dopo aver portato β in CNF)e ottenere la clausola vuota, dopo alcuni passaggi.

Per concludere si noti che non sempre la situazione e cosı fortunata e soventeil sottoinsieme insoddisfacibile di H(α) sara formato da piu elementi.

3.4 Un sistema formale per la logica dei predi-cati

In questa sezione illustreremo un calcolo dei predicati, cioe un sistema for-male costituito da un insieme di assiomi e da regole di inferenza in grado diottenere tutte e sole le conseguenze logiche di un insieme di formule ∆. Nelcaso particolare di ∆ = ∅, il calcolo dei predicati e in grado di ottenere tutte esole le formule valide.

Il simbolo ∃ non sara piu utilizzato se non come abbreviazione, infattiscriveremo (∃x.φ) al posto di (¬(∀x.(¬φ))).

32

3.4.1 Gli assiomi e le regole di inferenza

Gli assiomi del sistema formale per il calcolo dei predicati sono suddivisi inquesti quattro schemi di assiomi

AX0 tutte le tautologie della logica proposizionale in cui le variabili proposizio-nali sono sostituite da formule arbitrarie di LP(Σ)

AX1 ((∀x.φ) ⇒ φ[x/t]), in cui φ e una formula di LP(Σ) e t e un terminesostituibile al posto di x in φ

AX2 (φ⇒ (∀x.φ)), in cui φ e una formula di LP(Σ) e x e una variabile che nonoccorre libera in φ

AX3 ((∀x.(φ⇒ ψ))⇒ ((∀x.φ)⇒ (∀x.ψ))), in cui φ e ψ sono formule di LP(Σ)

Inoltre sono considerati assiomi validi anche tutte le generalizzazioni di altriassiomi: se φ e un assioma anche (∀x.φ) e un assioma.

Gli assiomi del tipo AX0 formano gia da soli un insieme infinito (ma ricor-sivo). In realta, in virtu del teorema di completezza della logica proposizionale,sarebbe necessario solo inserire i dieci assiomi.

Negli assiomi del tipo AX1, il termine t deve essere sostituibile al posto di x inφ, cioe non deve contenere variabili che in φ[x/t] diventano variabili legate. Adesempio prendendo φ = (∃y.P (x, y)), il termine y non e sostituibile al posto di x,infatti ((∀x.φ)⇒ φ[x/y]) corrisponderebbe a ((∀x.(∃y.P (x, y)))⇒ (∃y.P (y, y)))che non e valida in quanto falsa nell’interpretazione di dominio N e in cui P (x, y)e interpretato come la relazione x < y.

Negli assiomi del tipo AX2, x non deve comparire libera in φ. Infatti la formu-la (P (x) ⇒ (∀x.P (x))) e falsa nell’interpretazione di dominio 1, 2, in cui larelazione P (x) e vera solo per x = 1, e nella valutazione µ(x) = 1.

Indicheremo con AX l’insieme di tutti gli assiomi.Come unica regola di inferenza utilizzeremo ancora il modus ponens, cioe

da φ e da (φ⇒ ψ) si puo dedurre ψ.

Definizione 28 Dati ∆ e γ, rispettivamente un insieme di formule e una for-mula, diremo che γ e derivabile da ∆, in simboli ∆ ` γ, se esiste una se-quenza finita detta derivazione γ1, . . . , γn di formule tali che γn = γ e per ognii = 1, . . . , n accade che γi ∈ AX ∪∆ o γi = MP (γj , γk), con j, k < i

Il caso ∆ = ∅ assume un ruolo particolare: ` γ vuol dire che γ e un teoremadella logica dei predicati.

Facciamo ad esempio vedere che (∀x.u(x) ⇒ m(x)), u(s) ` m(s): bastaprendere la sequenza

((∀x.u(x)⇒ m(x))⇒ (u(s)⇒ m(s))) assioma(∀x.u(x)⇒ m(x)) elemento di ∆(u(s)⇒ m(s)) modus ponensu(s) elemento di ∆m(s) modus ponens

33

3.4.2 Tecniche di dimostrazione

Iniziamo con il teorema di correttezza che, come il suo equivalente della logicaproposizionale, ci dice che il processo di derivazione da un insieme ∆ e in gradodi produrre solo formule che sono conseguenze logiche di ∆

Teorema 7 (di correttezza) Se ∆ ` γ, allora ∆ |= γ

La dimostrazione di questo risultato si basa sul fatto che gli assiomi e leipotesi di ∆ sono ovviamente conseguenze logiche di ∆ e che il Modus Ponens,applicato a conseguenze logiche di ∆, produce ancora una conseguenza logicadi ∆.

Il secondo risultato e il teorema di deduzione, la cui dimostrazione e similea quella vista per il calcolo proposizionale:

Teorema 8 (di deduzione) Dati ∆ φ e ψ, rispettivamente un insieme diformule e due formule, si ha che ∆, φ ` ψ se e solo se ∆ ` (φ⇒ ψ)

Riprendendo i concetti di consistenza e inconsistenza (∆ e inconsistente se∆ ` φ e ∆ ` (¬φ), per ogni formula φ), possiamo enunciare il seguente risultato,la cui dimostrazione e analoga a quanto visto nel capitolo precedente

Teorema 9 (di dimostrazione per assurdo) Dati ∆ e φ, rispettivamenteun insieme di formule e una formula, ∆ ∪ φ e inconsistente se e solo se∆ ` φ

Un teorema che non ha ovviamente il corrispettivo nel calcolo proposizio-nale e quello della generalizzazione giustificata. L’idea e quella che si riesce adimostrare che una proprieta p vale per un elemento arbitrario, indicato da unavariabile libera x, allora la proprieta (proprio per l’arbitrarieta di x) vale perogni x.

Teorema 10 ( della generalizzazione giustificata) Dati ∆ e φ, rispettiva-mente un insieme di formule e una formula, se ∆ ` φ e se x e una variabileche non occorre libera in nessuna formula di ∆, allora ∆ ` (∀x.φ)

Dim. Sia φ1, . . . , φn una derivazione di φ da ∆. Costruiremo una derivazioneψ1, . . . , ψm di (∀x.φ) da ∆, con la proprieta che per ogni i = 1, . . . , n, esiste unelemento ψj = (∀x.φi).

La derivazione ψ1, . . . , ψm verra costruita per induzione in modo analogo aquello usato per dimostrare il teorema di deduzione del calcolo proposizionale.Si parte percio con una sequenza inizialmente vuota e poi, per ogni formula φisi aggiungono alla sequenza alcune formule secondo lo schema seguente.

Se φi ∈ AX , allora direttamente anche (∀x.φi) e un elemento di AX e siaggiunge questa formula alla sequenza. Se φi ∈ ∆, allora si aggiungono allasequenza le formule φi (elemento di ∆), (φi ⇒ (∀x.φi)) (che e un assioma del-lo schema AX1, dato che x non compare nelle formule di ∆) e infine (∀x.φi)(per Modus Ponens). Se φi e infine ottenuto per Modus Ponens da φj e φk,

34

ove φj = (φk ⇒ φi), allora per ipotesi induttive nella sequenza esistono gia leformule (∀x.(φk ⇒ φi)) e (∀x.φk), quindi si possono aggiungere alla sequenza leformule ((∀x.(φk ⇒ φi)) ⇒ ((∀x.φk) ⇒ (∀x.φi))) (assioma dello schema AX3),((∀x.φk)⇒ (∀x.φi)) (per Modus Ponens), (∀x.φi) (per Modus Ponens).

Infine citiamo il seguente risultato che e il contrario dell’assioma AX1, cioedata una formula φ di LP(Σ) e t un termine sostituibile al posto di x in φ, laformula

(φ[x/t]⇒ (∃x.φ)),

inteso come abbreviazione di

((¬φ[x/t])⇒ (¬(∀x.(¬φ)))),

e un teorema.Infatti si puo usare il teorema ((φ ⇒ ψ) ⇒ ((¬ψ) ⇒ (¬φ))) che, applicato

all’assioma AX1, produce l’asserto.

3.4.3 Teorema di completezza

Il teorema di completezza, analogo a quello dimostrato per il calcolo proposi-zionale, e stato dimostrato per primo da Godel nel 1930. Noi forniremo unadimostrazione basata su quella di Henkin [4].

Teorema 11 (di completezza) Se per ∆ insieme di enunciati e γ enunciatodi LP(Σ), accade che ∆ |= γ, allora ∆ ` γ

In realta dimostreremo un risultato equivalente:

Teorema 12 Se un insieme di enunciati ∆ e consistente, allora ammette unmodello, cioe esiste un’interpretazione I per cui I, µ |= δ per ogni δ ∈ ∆

Facciamo innanzitutto vedere che quest’ultimo risultato implica il teoremadi completezza. Se ∆ |= γ, allora ∆ ∪ ¬γ e insoddisfacibile, percio in baseall’ultimo teorema enunciato ∆∪ ¬γ e un insieme inconsistente, ma allora invirtu del teorema della dimostrazione per assurdo, ∆ ` γ.Dim. Vogliamo trovare un interpretazione che soddisfa un insieme di formulesapendo solo che si tratta di un insieme consistente e senza nessun’altra infor-mazione che possa indicare che dominio (o che tipo di dominio) sia necessario.Tale problema e risolto usando un dominio artificiale, puramente “sintattico”,cioe l’insieme di tutti i termini chiusi (cioe in cui non compaiono variabili) diT (Σ) che verra indicato T (Σ).

In realta per evitare problemi, arricchiamo il linguaggio Σ di un infinitanumerabile di nuove costanti, che saranno utili in seguito. Chiamiamo quindi Σ′

il nuovo linguaggio e indichiamo con D = T (Σ′) il dominio dell’interpretazioneI che costruiremo.

E’ facile vedere che ∆ rimane consistente anche passando al nuovo linguaggioΣ′.

35

Sia φ1, φ2, . . . , φn, . . . un’enumerazione di tutti e soli gli enunciati di LP(Σ′).Questa enumerazione e possibile, ad esempio, disponendo tutti gli enunciati inordine lessicografico (dopo aver definito un ordine sugli elementi di Σ′).

Definiamo per induzione una successione crescente di insiemi di enunciati∆i∞i=0, iniziando con ∆0 = ∆ e ponendo

• ∆i = ∆i−1∪φi se ∆i−1∪φi e consistente e φi non e del tipo (¬(∀x.ψ))per qualche variabile x e enunciato ψ.

• ∆i = ∆i−1 ∪ φi, (¬ψ[x/c]) se ∆i−1 ∪ φi e consistente, φi e del tipo(¬(∀x.ψ)) per qualche variabile x e enunciato ψ, e c e una costante chenon compare in nessuna enunciato di ∆i−1.

• ∆i = ∆i−1 ∪ (¬φi) se ∆i−1 ∪ φi e inconsistente e φi non e del tipo(∀x.ψ) per qualche variabile x e enunciato ψ.

• ∆i = ∆i−1 ∪ (¬φi), (¬ψ[x/c]) se ∆i−1 ∪ φi e incconsistente, φi e deltipo (∀x.ψ) per qualche variabile x e enunciato ψ, e c e una costante chenon compare in nessuna enunciato di ∆i−1.

E’ semplice, anche se un po laborioso, vedere che ogni insieme ∆i e consi-stente.

Sia adesso ∆ =⋃∞i=0 ∆i. ∆ verifica le seguenti proprieta

• ∆ e consistente, infatti una qualsiasi derivazione di una formula e la suanegazione userebbe solo un numero finito di elementi di ∆ che, per costru-zione, sarebbero elementi di un insieme ∆j , per un certo indice j; cio eimpossibile in quanto ogni ∆i e consistente.

• ∆ e completo, cioe per ogni enunciato φ di LP(Σ′) accade che φ ∈∆ oppure (¬φ) ∈ ∆ (ovviamente non si possono verificare entrambe lecondizioni).

• ∆ e chiuso, cioe per ogni enunciato φ ∈ ∆, in cui φi e del tipo (¬(∀x.ψ))per qualche variabile x e enunciato ψ, e presente in ∆ un’enunciato deltipo ψ[x/c], per qualche costante c detta testimone di ψ.

Vale inoltre il fatto che φ ∈ ∆ se e solo se ∆ ` φ, per ogni enunciato φ.Siamo ora in grado di fornire l’intepretazione I cercata. Abbiamo gia detto

che il suo dominio sara D = T (Σ′). Inoltre avremo che IC(c) = c per ognicostante c e IF (f)(d1, . . . , dn) = f(d1, . . . , dn) per ogni simbolo di funzione f diarita n e per ogni ennupla di elementi (d1, . . . , dn) di elementi di D, analoga-mente a quanto visto nella dimostrazione del teorema di Herbrand. Infine se re un simbolo di relazione di arita n, definiremo che

IR(r) = (d1, . . . , dn) ∈ Dn : r(d1, . . . , dn) ∈ ∆

Per completare la dimostrazione faremo vedere che per ogni enunciato φ diLP(Σ′), I |= φ se e solo se φ ∈ ∆. Dato che ∆ ⊂ ∆, cio garantisce la veritadell’asserto di partenza.

36

La dimostrazione e fatta per induzione sul numero n di parentesi aperte pre-senti in φ non contando quelle occorrenti nei termini.

Se n = 1, allora φ e una formula atomica e, essendo un enunciato, sara del tipor(d1, . . . , dn) per qualche simbolo di relazione r di arita n e per una ennuplad1, . . . , dn di termini chiusi, ovvero elementi del dominio D. Ma per costruzionedi I, si ha che I |= φ se e solo se φ ∈ ∆.

Supponiamo che l’asserto sia vero per ogni n < m e dimostriamo che e veroanche per n = m. Se φ = (¬ψ), allora per ipotesi induttiva I |= ψ se e solo seψ ∈ ∆. Poiche si ha che φ ∈ ∆ se e solo se ψ 6∈ ∆, l’asserto e vero in questo caso.

Se φ = (ψ ∧ χ), allora per ipotesi induttiva I |= ψ se e solo se ψ ∈ ∆ eI |= χ se e solo se χ ∈ ∆. Nel caso in cui I 6|= ψ, si ha che (¬ψ) ∈ ∆ e quindi∆ ` (¬(ψ ∧ χ)), sfruttando il fatto che ` (¬ψ)⇒ (¬(ψ ∧ χ)). Percio (¬φ) ∈ ∆,che corrisponde al fatto che I 6|= φ. Analogamente si tratta il caso in cui I 6|= χ.Nel caso invece in cui I |= ψ e I |= χ, si ha che ψ ∈ ∆ e χ ∈ ∆ e percio∆ ` (ψ ∧ χ), sfruttando l’assioma (ψ ⇒ (χ ⇒ (ψ ∧ χ))). Quindi avremo cheφ ∈ ∆, corrispondente al fatto che I |= φ.

Se φ = (ψ ∨χ) o φ = (ψ ⇒ χ) l’asserto puo essere dimostrato in modo analogo,utilizzando degli opportuni teoremi o assiomi del calcolo proposizionale.

Infine se φ = (∀x.ψ), allora consideriamo per il primo il caso in cui I |= φ.Quindi avremo che I , µ |= ψ per ogni valutazione µ che assegna a x un valorearbitrario d di D. Poiche il dominio D e composto di termini del linguaggio Σ′

si ottiene che I |= ψ[x/d] per ogni elemento d del dominio D 2. Poiche ψ[x/d]e un enunciato, vale l’ipotesi induttiva e quindi ψ[x/d] ∈ ∆ per ogni d ∈ D. Seper assurdo fosse (¬φ) ∈ ∆, si avrebbe per la chiusura di ∆, che ψ[x/c] ∈ ∆,con la costante c testimone di ψ, in contraddizione con ψ[x/d] ∈ ∆, per ognid ∈ D. Nel caso in cui I |= ¬φ, si ha che I , µ |= (¬ψ) per una valutazio-ne µ. Sia d = µ(x), allora vale I |= (¬ψ[x/d]) Quindi per ipotesi induttiva∆ ` (¬ψ[x/d]) Dal teorema del calcolo dei predicati ((¬ψ[x/t])⇒ (¬∀x.(¬ψ))),dimostrato nella sezione precedente, ponendo t = d, si ottiene per Modus Po-nens ∆ ` (¬∀x.(¬ψ)), cioe ∆ ` (¬φ) e quindi φ 6∈ ∆.

3.4.4 Conseguenze e considerazioni finali

Anche per il calcolo dei predicati si e dimostrato che i concetti di verita seman-tica e verita sintattica coincidono. L’assiomatizzazione fornita anche in questocaso non e unica.

La logica dei predicati puo essere estesa a trattare la relazione di uguaglianza

2Si noti che in generale questa sostituzione non e possibile, in quanto un elemento deldominio non e un termine, fatta eccezione proprio per questo tipo di interpretazione sintattica

37

=, che e un simbolo di arita 2 a cui ogni interpretazione deve dare il significatoovvio (cioe IR(=) = (d, d) : d ∈ D).

Si indichera con (t 6= t′) un’abbreviazione per la formula ¬(t = t′).A livello di sistema formale, il trattamento dell’uguaglianza e possibile me-

diante l’aggiunta di tre schemi di assiomi

AX4 t = t per ogni termine t

AX5 ((t1 = t′1) ∧ (t2 = t′2) ∧ · · · ∧ (tn = t′n))⇒ f(t1, . . . , tn) = f(t′1, . . . , t′n) per

ogni 2n–pla di termini t1, . . . , tn, t′1, . . . , t

′n e per ogni simbolo di funzione

f di arita n

AX6 ((t1 = t′1)∧(t2 = t′2)∧· · ·∧(tn = t′n))⇒ (r(t1, . . . , tn)⇔ r(t′1, . . . , t′n)) per

ogni 2n–pla di termini t1, . . . , tn, t′1, . . . , t

′n e per ogni simbolo di relazione

r di arita n

Tramite l’uguaglianza e possibile modellare molte realta di interesse mate-matico, ad esempio la teoria dei gruppi. Sia infatti Σ il linguaggio avente lacostante e, la relazione binaria =, la funzione unaria −1 e la funzione binaria ·.Sia inoltre ∆ l’insieme degli assiomi propri della teoria dei gruppi

∆ = (∀x.∀y.∀z.(x · (y · z)) = ((x · y) · z)),(∀x.(x · e) = x), (∀x.(e · x) = x),

(∀x.(x · x−1) = e), (∀x.(x−1 · x) = e)

E’ facile vedere che G e un gruppo se e solo e un modello di ∆ e che ognienunciato e un teorema della teoria dei gruppi se e solo se una conseguenzalogica di ∆.

Attraverso l’uso dell’uguaglianza e possibile vincolare sia inferiormente chesuperiormente il numero di elementi del dominio: la formula

αn = (∃x1. . . . .∃xn.(∧

i6=j(xi 6= xj)))

richiede che nel dominio ci siano almeno n elementi, mentre la formula

βn = (∀x1. . . . .∀xn+1.(∨

i6=j(xi = xj)))

richiede che nel dominio ci siano al massimo n elementi. Infine l’insieme diformule αn∞n=1 richiede che il dominio sia infinito.

38

Capitolo 4

Le funzioni ricorsive

4.1 Introduzione

In questo capitolo e nel capitolo successivo si parlera di calcolabilita, cioe diformalismi mediante i quali si puo stabilire se e come una funzione e calcolabile.

Il concetto intuitivo di funzione calcolabile e quello di una funzione f per cuiesiste un procedimento finito (algoritmo, programma, ecc.) mediante il quale epossibile calcolare f(x) a partire da x con un numero finito di passi, per ognipossibile valore di x.

Esistono molti formalismi per definire in modo rigoroso il concetto di calco-labilita. In questo capitolo ci concentreremo sulle funzioni ricorsive, che sonoun formalismo puramente matematico che consente di definire delle funzioni inmodo costruttivo. Nel prossimo capitolo vedremo le macchine di Turing che,pur essendo un formalismo teorico, specifica un modello di calcolo meccanicoideale che e simili ai moderni calcolatori.

4.2 Le funzioni ricorsive primitive

La classe delle funzioni ricorsive primitive e basata su tre funzioni elementari(zero, successione e proiezione) e su due metodi di costruzione di nuove funzioni(composizione e ricorsione).

Useremo la comoda notazione ~x per la m–upla x1, . . . , xmLe funzioni elementari sono

funzione zero La funzione z : N→ N, definita da z(x) = 0, per ogni x ∈ N

funzione successore La funzione S : N → N, definita da S(x) = x + 1, perogni x ∈ N

funzioni proiezione Dati m ∈ N e 1 ≤ i ≤ m, la funzione π(m)i : Nm → N,

definita da π(m)i (~x) = xi, per ogni x1, . . . , xm ∈ N

39

Il primo metodo di costruzione di nuove funzioni e la composizione.Data una funzione g : Nk → N e k funzioni f1, . . . , fk : Nm → N, la

composizione di g con f1, . . . , fk e la funzione h : Nm → N definita come

h(~x) = g(f1(~x), . . . , fm(~x)) (4.1)

Ad esempio la funzione costante 1 1 : N → N e definita come composizionedella funzione z con la funzione S

1(x) = S(z(x))

percio in questo caso m = 1 e k = 1. In modo analogo si possono ottenere lefunzioni costanti, anche a piu argomenti.

In modo simile si puo ottenere la funzione S2 : N → N, S2(x) = x + 2 edefinita come composizione della funzione S con se stessa

S2(x) = S(S(x))

In modo analogo si possono ottenere le funzioni, anche a piu argomenti, chehanno come risultato la somma di un argomento con una costante.

In generale si puo vedere che le uniche funzioni che si possono ottenere percomposizione dalle funzioni di base sono

f(~x) = k

f(~x) = xi + k

ove k e una costante arbitraria.Il secondo metodo di costruzione di nuove funzioni e la ricorsione.Data una funzione g : Nm → N e una funzione f : Nm+2 → N, la funzione

h : Nm+1 → N e definita per ricorsione a partire da g e f se vale

h(~x, 0) = g(~x)h(~x, y + 1) = f(~x, y, h(~x, y))

(4.2)

Sia a : N2 → N l’addizione tra numeri interi a(x, y) = x+y. Essa e definibileper ricorsione a partire da funzioni a loro volta definite come composizione difunzioni elementari. Infatti vale

a(x, 0) = g(x)

a(x, y + 1) = f(x, y, a(x, y))

ove g(x) e la funzione π(1)1 (x) e f(x, y, t) = S(π

(3)3 (x, y, t)). Infatti vale la

legge ricorsiva

a(x, 0) = x

a(x, y + 1) = a(x, y) + 1

La classe delle funzioni ricorsive primitive, indicata con PR, e la piu piccolaclasse di funzioni intere che contiene le funzioni elementari ed e chiusa percomposizione e ricorsione. Detto in altri termini, valgono le seguenti condizioni

40

1. z, S, π(m)i ∈ PR

2. se g : Nm → N e f1, . . . , fm : Nk → N appartengono a PR, la composizionedi g e f1, . . . , fm appartiene a PR

3. se g : Nm → N e f : Nm+2 → N appartengono a PR, la funzione definitaper ricorsione a partire da g e f appartiene a PR

4. per ogni classe C di funzioni che rispetti le condizioni 1, 2 e 3, PR ⊂ C

Si e gia visto che + (la funzione addizione) appartiene a PR. Ora facciamovedere che molte altre funzioni aritmetiche appartengono a PR.

Sia m : N2 → N la funzione prodotto m(x, y) = x · y tra interi. Essaappartiene a PR in quanto si puo definire per ricorsione

m(x, 0) = 0

m(x, y + 1) = x+m(x, y)

cioe usando come g(x) = z(x) e come f(x, y, t) = a(x, t) = a(π(3)1 (x, y, t), π

(3)3 (x, y, t)).

A sua volta e : N2 → N la funzione di elevamento a potenza e(x, y) = xy trainteri appartiene a PR in virtu della definizione ricorsiva

e(x, 0) = 1

e(x, y + 1) = x · e(x, y)

cioe usando come g(x) = S(z(x)) e come f(x, y, t) = m(x, t) = m(π(3)1 (x, y, t), π

(3)3 (x, y, t)).

D’ora in avanti non verranno piu indicate le funzioni g e f della definizionericorsiva.

La funzione fattoriale F (y) = y! e in PR. Infatti vale la seguente definizionericorsiva

F (0) = 1

F (y + 1) = S(y) · F (y)

che pero non corrisponde esattamente allo schema 4.2 in quanto F dovrebbeavere almeno due argomenti, cosı che g ne abbia almeno uno. In realta taleschema e perfettamente legittimo e verra usato in seguito in virtu del fatto chee possibile definire una funzione fattoriale a due variabili F2(x, y) = y! definitacome

F2(x, 0) = 1

F2(x, y + 1) = S(y) · F2(x, y)

da cui si evince che F2 e in PR e poiche F (y) = F2(y, y) = F2(π(1)1 (y), π

(1)1 (y)),

anche F e in PR.

41

La funzione predecessore P , vista come inversa della funzione successore S edefinita anche su 0, a cui viene attribuito il valore 0, e nella classe PR in quantovale la seguente definizione ricorsiva

P (0) = 0

P (y + 1) = y

Anche in questo caso g ha zero argomenti, ma si puo applicare lo stessotrucco visto per la funzione fattoriale.

La funzione differenza troncata D(x, y) = max(x − y, 0) e nella classe PRperche

D(x, 0) = x

D(x, y + 1) = P (D(x, y))

In seguito questa operazione verra indicata con x−y.Passiamo ora a definire dei predicati, cioe delle funzioni a valori in 0, 1,

che sono tutti nella classe PR. Un predicato e vero per x se p(x) = 1, falso sep(x).

I seguenti predicati appartengono alla classe PR.Il predicato segno sg(x), che e 1 se e solo se x > 0, e definito come

sg(0) = 0

sg(y + 1) = 1

Il predicato x 6= y si ottiene come sg((x−y) + (y−x)).Gli operatori booleani ∧, ∨, ¬, ⇒ e ⇔ si ottengono rispettivamente come

x ∧ y = x · y, x ∨ y = sg(x+ y), ¬x = 1−x.Da cio si ottengono i predicati x = y come ¬(x 6= y), x > y come sg(x−y),

x < y come sg(y−x), x ≥ y come ¬(x < y) e x ≤ y come ¬(x > y).In generale qualunque predicato esprimibile con gli operatori booleani ∧, vee

e ¬ e gli operatori di confronto >,<,≥,≤,=, 6= applicati a variabili e costantiintere e nella classe PR.

Se f, g : Nm → N sono funzioni di PR e p, q : Nm → 0, 1 sono predicati diPR allora la funzione h : Nm → N definita per casi

h(x1, . . . , xm) =

f(~x) se p(~x) = 1g(~x) se p(~x) = 0

e in PR in quanto vale

h(~x) = f(~x) · p(~x) + g(~x) · ¬p(~x)

Data una funzione f : Nm+1 → N, definiamo le due funzioni

Σf (~x, y) =

y∑

t=0

f(~x, t)

Πf (~x, y) =

y∏

t=0

f(~x, t)

42

Esse sono nella classe PR in quanto

Σf (~x, 0) = f(~x, 0)

Σf (~x, y + 1) = f(~x, S(y)) + Σf (~x, y)

e

Πf (~x, 0) = f(~x, 0)

Πf (~x, y + 1) = f(~x, S(y)) ·Πf (~x, y)

Da adesso si indicheranno con i loro usuali simboli matematici∑yt=0 f(~x, t)

e∏yt=0 f(~x, t).Definiamo ora i quantificatori esistenziale e universali limitati (∃y)≤z e (∀y)≤z,

essi corrispondono ai seguenti predicati

(∃y)≤zp(~x, y) ≡ (∃y.(y ≤ z) ∧ p(~x, y))

(∀y)≤zp(~x, y) ≡ (∀x.(y ≤ z)⇒ p(~x, y))

Se p e un predicato nella classe PR, allora (∃y)≤zp(~x, y) e (∀y)≤zp(~x, y) sonopredicati della classe PR in quanto

(∃y)≤zp(~x, y) = sg

(z∑

y=0

p(~x, y)

)

(∀y)≤zp(~x, y) =z∏

y=0

p(~x, y).

Con i quantificatori limitati e possibile costruire molte altre funzioni.Innanzitutto il predicato x|y che e 1 se e solo se x divide y e in PR perche

x|y = (∃q)≤y(q · x = y).Il predicato pr(x) che e 1 se e solo se x e primo puo essere definito come

negazione del predicato cm(x), che e 1 se e solo se x e un numero composto, chea sua volta e definito come cm(x) = (∃t)≤x((t > 1) ∧ (t < x) ∧ (t|x)). Quindisia pr che cm sono in PR.

Dato un predicato p : Nm+1 → 0, 1 della classe PR, sia µp(~x; z) la funzionecosı definita

µp(~x; z) =

y se y ≤ z e il piu piccolo valore per cui p(~x, y) = 1z + 1 se per ogni y ≤ z p(~x, y) = 0.

Questa funzione si chiama minimalizzazione limitata ed e in PR inquanto

µp(~x; z) =z∑

t=0

t∏

y=0

¬(p(~x, y))

Da questo punto la funzione µ si indichera con il simbolo matematico piuusuale

miny ≤ z : p(~x, y)

43

Le funzioni x ÷ y e x mod y che sono, rispettivamente, il quoziente e ilresto della divisione di x per y, si ottengono facilmente attraverso l’uso dellaminimalizzazione limitata in quanto x ÷ y = P (minq ≤ x : q · y > x) ex mod y = x−(y · (x ÷ y)). Si noti che x ÷ 0 = x, ma cio non crea problemiperche la divisione per zero non ha senso dal punto di vista matematico e quindisi usera x÷ y solo per y > 0.

Infine la successione pi∞i=0 di tutti i numeri primi e, vista come funzio-ne dell’argomento i, una funzione di PR. Infatti vale la seguente definizionericorsiva

p0 = 2

pi+1 = miny ≤ pi! + 1 : (y > pi) ∧ pr(y)

Infatti dal teorema di Euclide dell’infinita dei numeri primi si sa che se p eun numero primo, allora sicuramente esiste un numero primo compreso tra p ep! + 1.

4.3 Le funzioni ricorsive parziali

Le funzioni ricorsive primitive sono solo un’infinita numerabile, mentre tutte lefunzioni f : Nk → N formano un insieme non numerabile, quindi devono esisteredelle funzioni che non sono ricorsive primitive.

Tra queste funzioni pero ci si puo aspettare che esistano delle funzioni chesono intuitivamente calcolabili. Vale infatti questo risultato

Proposizione 10 Le funzioni ricorsive primitive possono essere calcolate inlinguaggio Pascal (usando un calcolatore irreale che ammette numeri interi digrandezza arbitraria) con funzioni che utilizzano solo istruzioni dei seguentiquattro tipi:

• v:=0

• v:=v+1

• v:=u

• for v:=0 to u-1 do begin ... end

in cui u e v sono arbitrarie variabili intere.

Dim. Le prime tre istruzioni sono chiaramente necessarie a calcolare le tre fun-zioni elementari. La composizione di due funzioni Pascal e calcolabile senzanessuna istruzione aggiuntiva, a parte la chiamata delle funzioni stesse. Perquanto riguarda uno schema di ricorsione del tipo

h(~x, 0) = g(~x)

h(~x, y + 1) = f(~x, y, h(~x, y))

e sufficiente usare il codice

44

function h(x1,...,xm,y:integer):integer;

var z,t:integer;

begin

z:=g(x1,...,xm);

for t:=0 to y-1 do

z:=f(x1,...,xm,t,z);

h:=z;

end;

E’ un po piu complicato dimostrare il viceversa (ovvero che ogni funzioneintera calcolabile solo con il costrutto FOR e ricorsiva primitiva), ma questorisultato non ci interessa.

Da una parte l’assenza del costrutto IF e solo apparente, dato che un ciclodel tipo for v:=0 to u-1 do begin ... end, in cui u e zero o uno, e esat-tamente equivalente al costrutto if u then .... Dall’altra l’assenza del cicloWHILE e piu problematica, nel senso che potrebbero esistere delle funzioni in-tere calcolabili, ovviamente solo con programmi Pascal che utilizzano anche cicliWHILE, e che non sono ricorsive primitive.

Si noti che la presenza di un ciclo WHILE all’interno di un programma nonne garantisce la terminazione per tutti i possibili valori di input e cio corrispondeal fatto che il programma calcola una funzione parziale, ovvero il cui dominio eun sottoinsieme proprio di Nk.

Ackermann per primo trovo una funzione che e intuitivamente calcolabilema che non e nella classe PR.

La funzione A : N2 → N in questione e definita dalle seguenti equazioniricorsive

A(0, y) = y + 1

A(x+ 1, 0) = A(x, 1)

A(x+ 1, y + 1) = A(x,A(x+ 1, y))

E’ chiaro che A e calcolabile, almeno su carta, con un numero finito di passag-gi, per ogni x e y. Ad esempio A(1, 2) = A(0, A(1, 1)), A(1, 1) = A(0, A(1, 0)),A(1, 0) = A(0, 1) = 2, A(1, 1) = A(0, 2) = 3, infine A(1, 2) = A(0, 3) = 4.

La funzione di Ackermann e calcolabile in Pascal mediante una funzio-ne ricorsiva o senza ricorsione, mediante l’uso di uno stack e di un costruttoWHILE.

Il seguente risultato conferma i dubbi sollevati precedentemente

Teorema 13 La funzione A non e ricorsiva primitiva

La dimostrazione, che non verra qui riportata perche molto lunga e abba-stanza tecnica (si veda ad esempio [1]), si basa sul fatto che esiste un limitesuperiore alla crescita di una funzione ricorsiva primitiva al crescere di n e cheA cresce oltre questo limite.

45

E’ quindi necessario trovare un’estensione della classe delle funzioni ricor-sive primitive in modo che la funzione di Ackermann (con tutte le sue infinitevarianti) possa trovarvi posto.

L’idea e quella di definire un terzo modo di creare nuove funzioni. Dato unpredicato p : Nm+1 → 0, 1, sia µp(~x) la funzione che restituisce il piu piccolovalore di y per cui p(~x, y) = 1. Se invece accade che per ogni y p(~x, y) = 0,allora µp(~x) non e definito.

Questa operazione si chiama minimalizzazione non limitata e general-mente non e in PR anche sotto l’ovvia ipotesi che p lo sia.

Usando al posto di µ l’usuale simbolo matematico, si dira che dato un predi-cato p : Nm+1 → 0, 1, la funzione h : Nm → N e definita per minimalizzazione(non limitata) di p se vale

h(~x) = miny : p(~x, y) = 1 (4.3)

e indicheremo conh(~x) = ⊥

se per (~x) il minimo non esiste.Si noti che l’utilizzo dell’operatore di minimalizzazione puo avvenire sotto

tre accezioni.

1. La minimalizzazione e applicata solo a predicati ricorsivi primitivi p taliche il minimo esiste sempre. In tal caso la funzione h e sempre definita sututto Nm.

2. La minimalizzazione e applicata a un qualsiasi predicato ricorsivo primi-tivo, anche se non ci sono garanzie sull’esistenza del minimo. In tal casoh e definita su un sottoinsieme di Nm, che potrebbe essere proprio.

3. La minimalizzazione e applicata solo a predicati ottenuti a loro volta daoperazioni di minimalizzazione. In tal caso non si e nemmeno certi ilpredicato sia sempre definito. In particolare h(~x) = ⊥ se esiste un valoredi y per cui p(~x, y) = ⊥ e per ogni z < y accade che p(~x, z) = 0.

Il comportamento nel secondo e nel terzo caso si spiega facilmente perche,dati ~x, il minimo valore di y viene calcolato per tentativi a partire da 0 ecalcolando uno ad uno tutti i possibili valori di p(~x, y) per y = 0, 1, . . . fino adarrivare ad un valore di y per cui p(~x, y) = 1.

E’ chiaro che se il minimo non esiste, il procedimento non termina e quindicio spiega perche h(~x) non e definita (anziche poter assumere un valore prefissatocome avviene in quella limitata). E’ altresı chiaro perche h(~x) non e definitanemmeno se durante la ricerca del minimo ci si imbatte in un valore di y per cuip(~x, y) non e definito, anche nei casi di esistenza del minimo (che ovviamentesara un valore maggiore di y).

La classe delle funzioni ricorsive (generali), indicata con R, e la piu piccolaclasse di funzioni intere che contiene le funzioni elementari ed e chiusa percomposizione, ricorsione e minimalizzazione, intesa nella terza accezione. Dettoin altri termini, valgono le seguenti condizioni

46

1. z, S, π(m)i ∈ R

2. se g : D0 → N, con D0 ⊂ Nk, e fi : Di → N, con Di ⊂ Nm per i =1, . . . , k, appartengono a R, la funzione h : Dk+1 → N, con Dk+1 ⊂ Nm,composizione di g e f1, . . . , fk appartiene a R

3. se g : D0 → N, con D0 ⊂ Nm, e f : D1 → N, con D1 ⊂ Nm+2, apparten-gono a R, la funzione h : D2 → N con D2 ⊂ Nm+1 definita per ricorsionea partire da g e f appartiene a R

4. se p : D0 → N con D0 ⊂ Nm+1 appartiene a R, la funzione h : D1 → Ncon D1 ⊂ Nm definita per minimalizzazione a partire da p appartiene a R

5. per ogni classe C di funzioni che rispetti le condizioni 1, 2, 3 e 4, R ⊂ C

Si noti che i domini di h nei punti 2 e 3 dipendono dai domini delle funzionicon cui e stata definita per composizione o ricorsione. In particolare per lacomposizione si ha

Dk+1 = ~x ∈ Nm : ~x ∈ Di per i = 1, . . . , k e, posto

yi = fi(~x) si ha (y1, . . . , yk) ∈ D0

Mentre per la ricorsione si ha

D2 = (~x, y) ∈ Nm+1 : ~x ∈ D0 e, posto z0 = g(~x)

e per ogni i = 1, . . . , y zi = f(~x, i, zi−1), si ha (~x, i, zi−1) ∈ D1

Infine per la minimalizzazione, in base a quanto gia detto, si

D1 = ~x ∈ Nm : (∃y ∈ N : ∀z ≤ y : (~x, z) ∈ D0,

p(~x, z) = 0 ad eccezione del caso z = y in cui p(~x, z) = 1)

Infine si dira che una funzione f ∈ R di m argomenti e ricorsiva totale se edefinita su tutto Nm, altrimenti si dira che e ricorsiva parziale.

Un risultato notevole e

Proposizione 11 Le funzioni ricorsive possono essere calcolate in Pascal ag-giungendo ai quattro tipi di istruzioni della proposizione 10 il quinto tipowhile u do begin ... end

Dim. L’operazione di minimalizzazione e calcolabile in Pascal mediante il se-guente codice

function h(x1,...,xm:integer):integer;

var y,z:integer;

begin

y:=0; z:=not p(x1,...,xm,y);

while z do

begin

47

y:=y+1;

z:=not p(x1,...,xm,y);

end;

h:=y

end;

mentre tutto il resto si calcola nel modo gia visto nella proposizione 10.

Anche in questo caso, e vero il viceversa, ossia ogni funzione calcolabile inPascal e ricorsiva.

Infine vedremo nel prossimo capitolo che la funzione di Ackermann e ricor-siva.

48

Capitolo 5

Le macchine di Turing

5.1 Introduzione

Una macchina di Turing1 M e una macchina di calcolo ideale formata dalleseguenti componenti

• un nastro unidimensionale suddiviso in un numero infinito di celle e il-limitato verso destra (esiste quindi una cella alla estrema sinistra, oltrela quale non si puo andare); in ogni cella e memorizzato un solo simbolo,appartenente ad un alfabeto finito A, in cui esiste un simbolo speciale,detto spazio o blank che indica che la cella e vuota; in ogni momentosolo un numero finito di celle del nastro sono non vuote;

• una testina di lettura–scrittura che e posizionata su una delle celle delnastro, ne puo leggere il simbolo contenuto in essa e puo successivamentemodificarlo sostituendo in modo irriversibile il simbolo gia presente con ilnuovo simbolo; la testina puo anche essere spostata, di una cella per volta,in una delle due direzioni;

• una memoria interna, contenente un solo simbolo preso da un alfabetofinito Q e rappresentante lo stato interno della macchina

• un programma, memorizzato in un tipo di memoria a sola lettura; il tipodi istruzioni sara descritto in seguito.

Per la descrizione di una MdT si usano quindi due alfabeti diversi: A, dettoalfabeto del nastro, e Q, detto alfabeto dello stato. S e Q sono usalmentedisgiunti.

Il programma di una MdT e un insieme finito di quintuple del tipo (q, s, q ′, s′, d),in cui q, q′ ∈ Q, s, s′ ∈ A e d ∈ <,>, tali che non esistono due quintuple congli stessi valori per q e s.

1in seguito si usera l’abbreviazione MdT

49

I I I I $ I I I I I $

q

...

Figura 5.1: Un esempio di macchina di Turing

L’esecuzione del programma inizia con la testina della MdT posizionata suuna cella ben determinata del nastro, che conterra i dati in input, che sonodi solito gli argomenti della funzione che si vuole calcolare. Inoltre lo statointerno sara un determinato simbolo q1 ∈ Q. Ad ogni passo, si cerca quell’unicaquintupla i cui primi due simboli q e s sono uguali, rispettivamente, allo statocorrente della MdT e al simbolo scritto sulla cella puntata dalla testina. Se nonesiste una quintupla siffatta, l’esecuzione del programma termina e la macchinasi ferma. Altrimenti la macchina svolge le seguenti tre operazioni

• scrive sulla cella puntata dalla testina il simbolo s′, cio puo corrispondere alfatto che la cella viene svuotata, se s′ e lo spazio, o a mantenere inalteratala cella, se s′ = s;

• il nuovo stato interno diventa q′, che puo restare inalterato se q′ = q;

• la testina viene spostata di una cella verso sinistra se d e < o verso destrase d e >

e poi il ciclo continua con un nuovo passo.Una MdT M calcola una funzione f : B → A∗, ove B ⊂ A∗, se per ogni

x ∈ BM, partendo dal nastro in cui c’e scritta solo la parola x (le restanti celledel nastro sono vuote), con la testina in una posizione prestabilita (ad esempiosulla prima cella di x), e con lo stato interno pari a q1, si ferma dopo un numerofinito di passi e sul nastro vi e scritta solo la parola f(x). Se invece la MdTparte quando sul nastro e scritta una parola z ∈ A∗ \B, allora potrebbe anchenon fermarsi mai. In tal caso si dice che la macchina diverge.

Definizione 29 Una funzione f : B → A∗ e Turing–calcolabile se esiste unaesiste una MdT in grado di calcolarla.

E’ chiaro che se una funzione e calcolabile, allora esistono infinite MdT chela calcolano (basta aggiungere delle quintuple inutili).

Una macchina di Turing e equivalente ad un usuale computer con una quan-tita illimitata di memoria. Quindi e teoricamente piu potente di un computerreale, cioe e in grado di calcolare funzioni che un calcolatore reale non puo cal-colare (almeno per grandi valori di ingresso). E’ possibile simulare una MdT

50

con un semplice programma in un normale computer, anche se la simulazionepotrebbe non essere in grado di funzionare correttamente se la MdT richiedepiu memoria di quanta ne abbia il computer.

5.2 Esempi

Per creare delle funzioni numeriche f : Nn → N, come si e gia fatto per le fun-zioni ricorsive, useremo come alfabeto del nastro l’insieme I, $, , ove denotalo spazio. Ogni numero intero n verra rappresentato con la parola compostada n simboli I e un simbolo $; quest’ultimo simbolo serve a indicare la finedella rappresentazione del numero e serve a distinguere il numero 0 dallo spaziovuoto. Siamo in grado di rappresentare una n–upla di numeri, concatenandouna dopo l’altra le rappresentazione dei vari numeri.

Gli stati della macchina saranno indicati con numeri naturali, in cui 1 elo stato iniziale, si usera invece H come stato finale della MdT. Dato che neiprogrammi le quintuple non iniziano mai con H, se in un passo lo stato internodella MdT diventa H, la macchina si ferma.

Iniziamo con un esempio molto semplice: la funzione successore S : N→ N,S(n) = n+ 1. Una MdT che calcola S parte con il numero n rappresentato sulnastro e deve fermarsi con il numero n + 1 scritto sul nastro: per ottenere cioserve solo scrivere un ulteriore I al posto del $ finale e infine scrivere il nuovo$ sulla cella successiva. A tal scopo sono sufficienti tre stati interni 1, 2, H etre quintuple (1, I, 1, I, >), (1, $, 2, I, >), (2, , H, I,>).

La prima quintupla fa avanzare la MdT verso destra fintantoche ci sono deiI, la seconda quintupla fa sostituire il $ con un altro I e avanzare di una cellaverso destra, la terza fa scrivere il $ e fa terminare la MdT. Si noti che la MdTrestituisce il risultato anche per n = 0, infatti sul nastro ci sarebbe solo il $, cheverrebbe sostituito dalla parola I$.

Nel secondo esempio si vede una MdT che tratta una funzione di due argo-menti: la funzione somma a : N × N → N, a(m,n) = m + n. Questa MdTsfrutta in modo abile la rappresentazione dei numeri interi: ad esempio persommare 3 e 4, la MdT deve formare partendo dalla parola III$IIII$ la parolaIIIIIII$. La MdT in questione avra 4 stati interni e 5 quintuple (1, I, 1, I, >),(1, $, 2, I, >), (2, I, 2, I, >), (2, $, 3, , <) e (3, I,H, $, >).

Un terzo esempio e una macchina per calcolare la funzione d : N→ N, d(n) = 2n.Per calcolare 2n si puo utilizzare la MdT per calcolare la somma, a patto di pre-parare il nastro con due argomenti uguali pari a n. Per fare cio abbiamo bisognodi un programma che ricopia n, in modo da formare la parola n$n$. Poi man-deremo in esecuzione il programma della macchina che somma. In realta lamacchina e una sola e quindi si utilizzera la composizione tra la macchina checopia e la macchina che somma. Per semplificare il programma supponiamo chenel nastro n sia preceduto da una cella vuota.

51

La MdT che crea due copie di n ha 9 stati interni e 17 quintuple (1, I, 2, C,>),(1, $, 8, $, >), (2, I, 2, I, >), (2, $, 3, $, >), (3, , 4, I, >), (3, I, 3, I, >), (3, $, 4, I, >), (4, , 5, $, <), (5, I, 5, I, <) (5, $, 5, $, <), (5, C, 6, I, >), (6, I, 2, C,>), (6, $, 7, $, >), (7, I, 7, I, <), (7, , H, ,>) e (8, , H, $, <).

Si noti che per ricordare quale barretta di n sta copiando, la MdT la sosti-tuisce momentaneamente con il simbolo C. Inoltre alla fine la MdT ha la testinaposizionata sulla prima cella della prima copia di n.

Per comporre le due macchine, bisogna riunire le quintuple della prima edella seconda macchina, rinominando tutti gli stati della seconda macchina (inmodo che siano diversi da quelli usati nella prima macchina) e sostituendo nellequintuple della prima macchina lo stato H con lo stato iniziale della seconda.

In pratica avremo nella quintuple provenienti dalla prima macchina 9 al po-sto di H e nella quintuple seconda macchina gli stati 9, 10, 11 al posto di 1, 2, 3.

Come ultimo esempio diamo una descrizione sommaria di una MdT che cal-cola il prodotto tra due numeri m e n. L’idea e quella che partendo dallaconfigurazione m$n$, la MdT crea la configurazione m$n$p$, in cui il numerop all’inizio e zero. Poi effettua il seguente ciclo

(i) tenta di cancellare un simbolo I da m (cioe m diventa m− 1), fermandosise non ci sono piu I

(ii) copia, con una versione leggermente modificata della macchina per copiare,n dopo p, percio la configurazione del nastro diventa m$n$p$n$

(iii) si posiziona la testina sul primo degli ultimi due numeri e li si somma conla macchina per sommare

(iv) si riposiziona la testina sul primo simbolo non vuoto di m e si riparte conil primo passo

Alla fine cancella n$ e sul nastro restera solo p pari a m · n.Si lascia al lettore come esercizio quello di scrivere le quintuple della mac-

china moltiplicatrice.

5.3 La macchina di Turing universale

Il programma eseguito da una MdT e parte integrante delle componenti del-la macchina, il cosiddetto hardware. Quindi una MdT puo solo svolgere uncompito fissato, cioe calcolare un’unica funzione. Questo e un ulteriore puntodi differenza con un calcolatore reale, nel quale il programma e normalmentefornito dall’esterno e quindi e possibile far eseguire allo stesso calcolatore piuprogrammi.

E’ pero concettualmente possibile creare una MdT general–purpose che e ingrado di simulare una qualsiasi MdT M.

52

Teorema 14 Esiste una MdT universale, indicata con MTU che ricevendo lacoppia (m, x), in cui m e la descrizione di una MdT M e x e una rappresenta-zione opportuna di una parola x dell’alfabeto del nastro di M, calcola in tempofinito la rappresentazione della parola f(x), in cui f e la funzione calcolata daM. Nel caso in cui M diverge su x, allora anche MTU divergera su (m, x).

Dim. L’idea di definire una MTU e gia presente nel lavoro iniziale di Turing.Noi non scenderemo nei dettagli, perche seppur concettualmente semplice, taleMdT ha un numero molto alto di stati interni e di quintuple.

Ogni stato q e ogni simbolo s del nastro di M saranno rappresentati connumeri interi indicati, rispettivamente, con ]q e ]s. Questi numeri saranno inol-tre rappresentati in notazione unaria a lunghezza fissa N , cioe con abbastanzaspazi aggiuntivi in modo tale che la rappresentazione di ogni stato e di simbo-lo abbia esattamente la stessa lunghezza N . Ad esempio se M ha tre stati equattro simboli, gli stati saranno rappresentati con le parole $, I $ e II $.Rappresenteremo lo stato finale e il simbolo vuoto con il numero 0.

Una quintupla Qi = (qi, si, q′i, s′i, di) sara rappresentata con la parola ]Qi =

(]qi]si]q′i]s′idi) e il programma diM sara rappresentato con la parolam ottenuta

come concatenazione delle parole rappresentanti le quintuple.Infine il contenuto del nastro t viene ovviamente rappresentato come parola

contenente tutte le parole i codici dei simboli delle celle. All’inizio il nastroconterra la rappresentazione x della parola x.

La MTU ricevera sul nastro m e x e costituira la seguente situazione inizialesul nastro:

• il programma m

• un simbolo Q seguito dalla rappresentazione dello stato interno q (cheall’inizio e lo stato iniziale q1)

• un simbolo T seguito dalla parola x, che rappresentera il contenuto delnastro t

Il simbolo T indica la posizione della testina ed e sempre posto immediatamenteprima della cella puntata dalla testina.

Si fara uso di una macchina comparatrice U che, dati x e y scritti a lunghezzafissa N , e in grado di dire se x = y, e di una macchina copiatrice C che e ingrado di copiare x in una posizione stabilita del nastro. La definizione di U elasciata come esercizio al lettore.

Per simulare un passo di M, MTU svolgera le seguenti operazioni

(i) Innanzitutto cerchera una quintupla in m il cui primo simbolo e uguale aq e il cui secondo simbolo e uguale a s (il simbolo di t che inizia con T ),utilizzando due volte le quintuple di U (opportunamente modificate).

(ii) Se non esiste tale quintupla, MTU si ferma dopo aver cancellato m e q,in modo da lasciare solo la rappresentazione del nastro (sostituendo ilsimbolo T con il $).

53

(iii) Se invece tale quintupla esiste, allora viene modificato lo stato interno conq′ e il contenuto della cella corrente con s′, usando due volte le quintupledi C, anch’esse opportunamente adattate.

(iv) Infine il simbolo T viene spostato alla cella immediatamente sulla sinistra(o sulla destra), a seconda di d, ripristinando il simbolo $ nella posizionecorrente di T . Se la testina dovesse essere spostata sulla cella oltre l’ultimarappresentata in t, allora viene aggiunta in fondo a t una nuova cellacontenente il simbolo vuoto.

E’ facile capire che MTU si ferma sull’input (m, x) se e solo se M si fermasull’input x e, in tal caso, MTU ha scritto sul nastro proprio la rappresentazionedi f(x), in quanto alla fine di ogni gruppo di operazioni (i)–(iv) MTU ha nelnastro una configurazione (q, t) esattamente corrispondente a quella diM dopol’esecuzione del passo corrispondente.

In particolare, questo risultato dimostra che MTU e in grado di calcolaretutte le funzioni Turing–calcolabili.

Si noti infine che la rappresentazione a lunghezza fissa e utile perche quandosi cambia lo stato interno o il contenuto di una cella c’e abbastanza spazio liberoper potervi inserire, rispettivamente, il codice di qualsiasi stato e di qualsiasisimbolo. Se invece si fosse utilizzata la rappresentazione unaria standard, sisarebbe dovuto aumentare o diminuire lo spazio occupato dalla rappresentazionedello stato interno o dal simbolo della cella, a seconda che il nuovo simbolo avesseuna lunghezza maggiore o minore di quella del simbolo corrente.

5.4 Il teorema della fermata e problemi indeci-dibili

Anche questo nuovo risultato e gia presente nel lavoro originale di Turing.

Teorema 15 (della fermata) Non puo esistere una MdT H che, ricevendocome input la coppia (m, x), in cui m e la descrizione di una MdT M e x ela rappresentazione di una parola x dell’alfabeto del nastro di M, decide, adesempio scrivendo sul nastro il simbolo S o il simbolo N , se M si fermera o nopartendo dall’input x.

Dim. Supponiamo per assurdo che H esista. Costruiamo allora la MdT D cosıdefinita. D riceve come input una parola m definita sull’alfabeto del nastro diH, manda in esecuzione H sull’input (m,m). Se H da risposta positiva, D entrain un loop infinito (ad esempio spostandosi indefinitivamente verso destra). SeH da risposta negativa, D si ferma.

Si noti che la risposta di H sull’input (m,m) corrisponde al fatto se unaMdT la cui descrizione e m si ferma ricevendo come input la descrizione di sestessa.

54

Sia d la descrizione del programma di D. Cosa succede se a D si da comeinput proprio la parola d ? Si fermera ?

Supponiamo cheD si ferma sull’input d. Cio accade seH da risposta negativasull’input (d, d), ma cio significa che la MdT con rappresentazione d, cioe D,non si ferma sull’input d, in contraddizione con l’ipotesi.

Allora supponiamo che D non si ferma sull’input d. Cio accade seH da rispo-sta positiva sull’input (d, d), ma cio significa che la MdT con rappresentazioned, cioe D, si ferma sull’input d, di nuovo in contraddizione con l’ipotesi.

Quindi possiamo dire che l’ipotesi iniziale e falsa e quindi una MdT siffattanon puo esistere.

Questo teorema fornisce una risposta negativa all’Entscheidungsproblem (pro-blema della decisione) enunciato da Hilbert. L’ipotesi di Hilbert e che ogni classedi problemi, il cui enunciato e ben posto dal punto di vista matematico, potesseessere risolto risolto da una procedura meccanica che, con un numero finito dipassi, fornisse una soluzione di un qualsiasi dato problema della classe.

Il teorema della fermata costituisce un esempio di classe indecidibile diproblemi, cioe una classe per cui non esiste una MdT in grado di trovare lasoluzione di un problema appartenente alla classe. I problemi si intendono ditipo decisionale, cioe problemi il cui enunciato e una domanda e la cui soluzionee un valore di verita. La classe indecidibile in questione e appunto formatadai problemi il cui enunciato e “stabilire se la MdTM si fermera o no partendodall’input x”.

La definizione di classe di problemi indecidibili sembra essere legata all’esi-stenza o meno di una MdT che risolva il problema, senza pero tenere conto chein teoria potrebbe esistere un procedimento meccanico diverso da una MdT chesia invece in grado di risolvere. In realta, come vedremo nella sezione successiva,in base alla tesi di Church–Turing cio e ritenuto estremamente improbabile.

Citiamo adesso alcuni problemi indecidibili. Ulteriori esempi di problemiindecidibili saranno presentati nei prossimi capitoli.

Il primo esempio che riportiamo e quello basato sul cosiddetto decimo pro-blema di Hilbert. Nel 1900 Hilbert presento al Congresso Internazionale deiMatematici un elenco di problemi aperti della matematica che dovevano essererisolti.

Il decimo problema di quella lista richiedeva di trovare un procedimentomediante il quale si poteva stabilire se una data equazione diofantea, cioe unequazione del tipo

P (x1, . . . , xn; a1, . . . , am) = 0 (5.1)

in cui P e un polinomio a coefficienti interi nelle variabili x1, . . . , xn e aventecome parametri i numeri interi a1, . . . , am, ammette soluzioni intere, dati ivalori dei parametri a1, . . . , am.

Ad esempio l’equazione diofantea

2x = a

55

ammette soluzioni se e solo se il parametro a e un numero pari, l’equazionediofantea

x2 = a

ammette soluzioni se e solo se il parametro a e un quadrato, infine l’equazionediofantea

(x+ 2)(y + 2) = a

ammette soluzioni se e solo se il parametro a non e primo.Una risposta negativa al decimo problema di Hilbert fu fornita da Matiya-

sevich nel 1970, utilizzando tutta una serie di risultati ottenuti da M. Davis, H.Putnam e altri, dimostrando che e possibile esprimere le funzioni calcolabili dal-le macchine di Turing attraverso una famiglia di equazioni diofantee, per cui eovviamente indecidibile sapere se quella famiglia di equazioni ammette soluzioniin quanto si puo mostrare che cio risolverebbe il problema della fermata.

Come effetto collaterale di questo risultato si e trovato un’equazione diofan-tea ad un parametro a che ammette soluzione solo e quando a e un numeroprimo.

Il secondo esempio e il problema di corrispondenza di Post [1].Sia I = (u1, v1), . . . , (un, vn) un insieme finito di coppie di parole di un

alfabeto finito A. Si puo immaginare che ogni coppia di parole rappresenti latessera di un gioco, simile al domino, in cui ui e la parola che compare nellaparte superiore della tessera e vi quella della parte inferiore della tessera. Ilgioco e quello di affiancare un numero finito di copie di alcune tessere2 tentandodi comporre la stessa parola sia congiungendo le parole della parti superiori, siaquelle delle parti inferiori.

Date le tessere I, il gioco ammette soluzione se e possibile formare la stessaparola.

Ad esempio se I = (b, ab), (ba, a), (a, ab) ammette la soluzione (a, ab), (ba, a).Se invece I = (b, bb), (a, bab) ammette la soluzione (b, bb), (a, bab), (b, bb).Infine se I = (b, bb), (a, aa) non ammette soluzione.

Si puo dimostrare che e possibile creare un insieme di tessere I che ammettesoluzione se e solo se una data MdT si ferma su un determinato input x e quindistabilire se I ammette soluzione e indecidibile.

5.5 La tesi di Church–Turing

In questa sezione vedremo quali sono le relazioni tra la classe di funzioni Turing–calcolabili e la classe delle funzioni ricorsive.

Innanzitutto vale il seguente teorema

Teorema 16 Se f e una funzione ricorsiva, allora f e Turing–calcolabile.

Dim. Il teorema si dimostra per induzione strutturale.

2quindi a differenza di un gioco reale ogni tessera puo essere utilizzata piu volte

56

E’ facile vedere che le tre funzioni iniziali sono Turing–calcolabili: la funzionezero z(x) e calcolabile da una MdT che cancella x e scrive un $, che rappresentalo zero; la MdT che calcola la funzione successore e gia stata illustrata come

esempio; per calcolare la funzione proiezione π(m)i e sufficiente che la MdT can-

celli tutti i propri argomenti, tranne xi.

Se la funzione g : Nk → N e calcolabile dalla MdT M0 e le funzioni f1, . . . , fktutte definite come fi : Nm → N sono calcolabili dalle MdT Mi, i = 1, . . . , k,allora la composizione di g con f1, . . . , fk h : Nm → N e Turing–calcolabile.

Infatti e possibile costruire una MdT M che calcola h a partire da ~x

(i) per ogni i = 1, . . . , k M ricopia l’input ~x, fa partire le quintuple di Mi econserva il risultato prodotto yi = fi(~x)

(ii) M cancella l’input iniziale ~x

(iii) M fa partire le quintuple di M0 sull’input y1, . . . , yk

Se la funzione g : Nm → N e calcolabile dalla MdT M1 e la funzione f :Nm+2 → N e calcolabile dalla M2 allora la funzione h : Nm+1 → N definita perricorsione da g e f e Turing–calcolabile.

Infatti e possibile costruire una MdT M che calcola h a partire da ~x, y

(i) M scrive sul nastro dopo l’input iniziale ~x, y un ulteriore numero y ′ cheall’inizio vale 0

(ii) M ricopia a destra ~x e fa partire le quintuple di M1 conservando ilrisultato z

(iii) se y = y′ allora M cancella tutto il nastro tranne z e si ferma, altrimenti

(iv) M ricopia a destra ~x, y′, z, fa partire le quintuple di M2 e conserva ilrisultato come nuovo valore di z

(v) poi M incrementa y′ di uno e torna al terzo passo

Infine sia p : Nm+1 → 0, 1 un predicato calcolabile dalla MdT M1, allorala funzione h : Nm → N definita per minimalizzazione non limitata di p eTuring–calcolabile

Infatti h e calcolabile dalla MdT M cosı definita

(i) M scrive sul nastro dopo l’input iniziale ~x un ulteriore numero y cheall’inizio vale 0

(ii) M ricopia a destra ~x, y

(iii) M posiziona la testina sulla copia di ~x, y e fa partire le quintuple di M1

(iv) se le quintuple di M1 arrivano allo stato finale e producono sul nastro ilcorrispondente del valore 1, alloraM cancella tutto il contenuto del nastrotranne y

57

(v) se le quintuple di M1 arrivano allo stato finale e producono sul nastro ilcorrispondente del valore 0,M incrementa di uno y e torna al terzo passo

Anche l’inverso e vero: ogni funzione Turing–calcolabile e ricorsiva.La prima difficolta da superare e come codificare una MdT in forma nu-

merica, in quanto le funzioni ricorsive sono per loro natura numeriche. A talscopo prendiamo l’alfabeto del nastro associamo ad ogni simbolo s un numerointero univoco ]s, come si e gia fatto per la MTU. Lo stesso procedimento vieneapplicato agli stati per definire ]q, dato lo stato q.

Il nastro pur essendo infinito, in ogni momento del calcolo, contiene solouna parte finita non vuota. Quindi e possibile rappresentare il contenuto delnastro come una parola finita di A. Per codificare una sequenza arbitrariaσ = σ0σ1σ2 . . . σl di elementi di A, si determinano i codici ki = ]σi e si usa laseguente funzione ricorsiva primitiva

[k0, k1, k2, . . . kl] =l∏

i=0

pkii

ove pi e la successione ordinata dei numeri primi 2, 3, 5, 7, 11, . . .. Il numero[k0, k1, k2, . . . kl] e detto numero di Godel della sequenza σ.

Ad esempio per codificare la sequenza (2, 1, 3) si usa il numero [2, 1, 3] =223153 = 1500. Se kl 6= 0, allora la funzione [. . . ] e iniettiva, in virtu del teoremadell’unicita di scomposizione in numeri primi, ma se kl = 0, dato che p0

l = 1,allora [k0, k1, k2 . . . kl] = [k0, k1, k2, . . . kl−1]; ad esempio anche [2, 1, 3, 0] = 1500.

Data la codifica z = [k0, k1, k2, . . . , kl], per ottenere l’i–esimo elemento (cioeki) si puo usare la seguente funzione ricorsiva primitiva

z[i] = mink ≤ z : pki |z ∧ pk+1i 6 |z

Ad esempio se z = 1500 allora z[2] = 3, in quanto 53|1500, ma 54 6 |1500.Il programma della MdT sara composto da n quintuple Q1, Q2, . . . , Qn. Ogni

quintupla Qi = (qi, si, q′i, s′i, di) sara codificata con cinque numeri: il codice di

q, il codice di s, il codice di s′, il codice di q′ e il codice di d (ad esempio 0 per< e 1 per >). Ogni quintupla sara quindi codificata con il numero

]Qi = []qi, ]q′i, ]q

′i, ]s

′i, ]di]

Infine il programma sara codificato con il numero di Godel

p = [n, ]Q1, ]Q2, . . . , ]Qn]

La configurazione di una MdT e data dallo stato interno q, dalla posizionedella testina sul nastro i e dal contenuto del nastro: lo stato e codificato ]q,il contenuto con una codifica t della sequenza dei codici dei simboli contenutinelle celle.

Infine la configurazione e codificata con il numero c = []q, i, t].

58

Lemma 7 La funzione N(p, c) che dati p, la codifica del programma di M, ec la codifica di una configurazione di M, calcola la codifica della configurazionesuccessiva, ovvero dopo l’esecuzione di un passo, e ricorsiva primitiva

Dim. Indicato con

q = c[0]

i = c[1]

t = c[2]

L(z, a, b) = mini ≤ z[0] : (i >= 1) ∧ (z[i][0] = a) ∧ (z[i][1] = b)j = L(p, q, t[i])

q′ = z[j][2]

s′ = z[j][3]

d = z[j][4]

U(z, a, b) = (z ÷ pz[a]a ) · pba

M(a, b) = (a− 1) · (¬b) + (a+ 1) · b

Allora

N(p, c) =

[q′,M(i, d), U(t, i, s′)] se j ≤ p[0]

[0, i, t] altrimenti

che, come composizione di funzioni ricorsive primitive, lo e a sua volta.

Lemma 8 La funzione N (t)(p, c) che calcola, dati p e c, la configurazione diM dopo t passi, e ricorsiva primitiva.

Dim. Infatti si ha che

N (0)(p, c) = c

N (t+1)(p, c) = N(p,N (t)(p, c))

Lemma 9 Il predicato T (p, c, t) che e vero se e solo se M con programmap, partendo dalla configurazione iniziale c si ferma dopo t passi, e ricorsivoprimitivo.

Dim. Innanzitutto definiamo una funzione ricorsiva primitiva che ci dice quan-do una configurazione rappresenta la situazione in cui M si e fermata; bastacontrollare che lo stato interno sia q0

E(c) = (c[0] = 0)

59

PercioT (p, c, t) = E(N (t)(p, c))

Si noti che per come e definito N e in virtu del fatto che non ci sono quintupleche si riferiscono a q0, allora seM si ferma ad un istante t, ogni successiva appli-cazione della funzione N non cambia la configurazione e quindi se T (p, c, t) = 1per un certo t, allora T (p, c, t′) = 1 per ogni t′ ≥ t.

Lemma 10 L’istante di fermata di M a partire dalla configurazione c e unafunzione ricorsiva generale

Dim. Ovviamente vale

H(p, c) = mint : T (p, c, t) = 1

Siamo quindi in grado di dimostrare il seguente teorema

Teorema 17 Ogni funzione Turing–calcolabile f : B → A, con B ⊂ A∗ ericorsiva generale, nel senso che esiste una funzione ricorsiva generale f : N→N tale che f(x) = h−1(f(h(x))), ove h : A∗ → N e la funzione che codificauna parola a1a2 . . . an di A∗ in un numero naturale attraverso il suo numero diGodel []a1, ]a2, . . . , ]an].

Dim. Sia f : B → A, con B ⊂ A∗ calcolabile con una MdTM e sia p la codificadel programma di M. Allora la funzione f cercata e

f(z) = U(p, I(z), H(p, I(z)))

in cui l’argomento z e il numero di di Godel dell’argomento di x, I(z) e la codificadella configurazione iniziale della macchina, ottenuta come I(z) = [1, 0, z], einfine la funzione U e definita

U(p, c, t) = O(N (t)(p, c)),

ove O estrae il contenuto del nastro dalla configurazione finale O(c) = c[2]

Come semplice corollario abbiamo il seguente

Teorema 18 (della forma normale di Kleene) Ogni funzione ricorsiva f :D → N, ove D ⊂ Nm, si puo scrivere nella forma

f(x1, . . . , xm) = G(x1, . . . , xm,miny : p(x1, . . . , xm, y) = 1) (5.2)

in cui p e un predicato ricorsivo (primitivo) e U e una funzione ricorsiva(primitiva).

60

Dim. Se f e ricorsiva, allora per il teorema 16 e Turing–calcolabile. Quindiapplicando il teorema 17 si ottiene facilmente l’asserto.

Quindi, in base ai due teoremi 16 e 17, una funzione e ricorsiva se e soloe Turing–calcolabile. In realta, pur senza una aver visto una dimostrazioneformale, gia sappiamo che una funzione e ricorsiva se e solo se e calcolabilein Pascal usando variabili intere che possono contenere numeri arbitrariamentegrandi (cio in pratica e possibile, ad esempio usando degli array di interi, anchese in linea teorica non si puo superare il limite imposto dalla memoria fisicadel calcolatore).

Come corollario del teorema 17 abbiamo che la funzione di Ackermann ericorsiva perche e calcolabile dalla seguente MdT. La MdT riceve sul nastro x ey e poi svolge il seguente programma :

(i) fa precedere x dal simbolo [;

(ii) se x e zero scrive y + 1 al posto di (x, y) e sposta la testina sul numeroprecedente, se non ve ne sono piu (cioe si trova il simbolo [) la MdTtermina;

(iii) se invece y e zero scrive la coppia (x − 1, 1) al posto di (x, y) e sposta latestina sul primo numero della coppia;

(iv) altrimenti scrive la terna (x− 1, x, y − 1) al posto di (x, y) e posiziona latestina sul secondo elemento della terna;

(v) torna al secondo punto.

Esistono altri formalismi per la definizione di funzione calcolabile, i qualisono tutti equivalenti alle MdT (o alle funzioni ricorsive). I piu importantiformalismi presenti nella letteratura sono:

• Le funzioni λ–calcolabili: si tratta di un formalismo ideato da Churche basato sulla definizione e sul calcolo di funzioni e funzionali puri (adesempio gli stessi numeri interi sono rappresentati con appositi funzionali).

• Le macchine a registri: si tratta del formalismo piu vicino ai concetti dellaprogrammazione di un calcolatore ed e basato su macchine in grado dieseguire programmi scritti con un linguaggio di programmazione estrema-mente semplificato (ad esempio con solo tre istruzioni [1]) e operanti suregistri, cioe variabili intere arbitrariaramente grandi.

• Le funzioni ε–ricorsive: si tratta di un formalismo basato sulla definizionedi funzioni mediante equazioni ricorsive e su regole di inferenza per poterdedurre i valori delle funzioni a partire dai rispettivi argomenti.

• Gli algoritmi di Markov: si tratta di un formalismo basato su particolarigrammatiche e metodi deterministici per poter derivare parole [3].

61

L’esistenza di tutti questi formalismi esattamente equivalenti ci porta adaffermare la celeberrima tesi di Church–Turing “Una funzione e calcolabile se esolo e Turing–calcolabile”.

Questa tesi non puo essere dimostrata perche non e formalizzabile in modomatematico il concetto di funzione calcolabile. Il concetto intuitivo e che unafunzione f e calcolabile se esiste un procedimento finito e ragionevole che per-mette ad uno strumento di calcolo “meccanico” (cioe in grado solo di eseguirein modo autonomo gli ordini del procedimento, senza percio richiedere abilitache vanno al di la della mera esecuzione) di arrivare a determinare il valore dif(x) in un numero finito di passi partendo da x.

Il problema fondamentale risiede nella ragionevolezza del procedimento edelle capacita richieste dallo strumento di calcolo. E’ infatti possibile idearedei modelli di calcolo irrealistici e puramente teorici, ad esempio le MdT conoracolo, che sono in grado di calcolare funzioni non ricorsivi. Pero tutti i mo-delli ragionevoli fino ad adesso studiati sono al massimo equivalenti alle MdT.Pertanto la tesi di Church–Turing e solo confutabile, cioe potrebbe essere inlinea teorica negata dalla scoperta di un formalismo di calcolo ragionevole chesia superiore alle MdT.

La comunita scientifica, tranne casi eccezionali, e concorde nel ritenere verala tesi di Church–Turing. I motivi principali sono i seguenti.

• In quasi settanta anni di studi non sono mai stati trovati controesempi,ma sempre e solo nuovi risultati in perfetto accordo con la tesi di Church–Turing.

• Tutte le possibili estensioni ragionevoli di formalismi esistenti (ad esem-pio MdT bidmensionali, MdT con piu nastri e piu testine, MdT nondeterministiche, ecc.) sono sempre equivalenti alle MdT.

• Le MdT sono state modellate secondo l’analisi fatta da Turing sui pro-cedimenti umani di calcolo: la testina equivale all’occhio e alla penna,la memoria interna equivale al cervello (che contiene anche le quintuple),il nastro equivale alla carta, ai libri e a tutte le sorgenti di informazioniesterne. Questa analisi puo anche essere estesa ad un calcolatore moderno:la testina equivale alla tastiera, al monitor e alla testina del disco fisso,la memoria interna equivale alla RAM, le quintuple sono memorizzate inuna ROM, il nastro equivale al disco fisso, allo schermo e tutte a tutte lepossibili periferiche. Per cui sembra implausibile che si possa concepire unsistema di calcolo reale non equivalente ad una MdT.

62

Capitolo 6

Classificazione degli insiemi

6.1 Insiemi ricorsivi

Definizione 30 Un insieme A ⊂ N si dice ricorsivo se la sua funzione carat-teristica

fA(x) =

1 se x ∈ A0 se x 6∈ A

e una funzione ricorsiva.

Vista l’equivalenza tra funzioni Turing–calcolabili e funzioni ricorsive, pos-siamo dire che A e ricorsivo se esiste una MdT che ricevendo come input xrisponde in tempo finito alla domanda se x appartiene all’insieme oppure no.

Tra esempi di insiemi ricorsivi ricordiamo l’insieme vuoto, tutto N, ogni in-sieme finito, l’insieme dei numeri pari, l’insieme dei numeri dispari, l’insieme deinumeri quadrati, dei numeri primi, dei numeri perfetti.

Un insieme ricorsivo molto utile e l’insieme M dei codici dei programmi di tuttele macchine di Turing. Infatti non tutti i numeri interi x corrispondono a codicivalidi per il programma di una MdT: il numero x deve soddisfare alle seguenticondizioni

• essere diverso da zero

• posto m = x[0], deve accadere che x[i] 6= 0, per ogni i = 1, . . . ,m, inquanto x[i] deve essere il codice dell’i–esima quintupla

• infine x[i][0] 6= 0, sempre per ogni i = 1, . . . ,m, in quanto in ogni quintuplail primo simbolo non puo essere lo stato finale (che ha codice 0).

E’ chiaro che queste condizioni sono esprimibili con un predicato ricorsivo(primitivo) e quindi M e un insieme ricorsivo. Si indichera con Mi la MdTche ha come codice l’i–esimo elemento di M; i e detto indice della MdT Mi.

63

Si indichera inoltre con Φi(x) il risultato, interpretato come numero, prodottodalla MdT Mi a partire dall’input numerico x.

In base ai teoremi 17 e 16, si ha che

Proposizione 12 Una funzione f di una sola variabile e ricorsiva se e solo sef(x) = Φi(x) per ogni x ∈ N, per un certo i ∈ N detto indice di f .

QuindiM puo anche essere visto come l’insieme di tutti i codici delle funzioniricorsive a una sola variabile.

E’ facile far vedere che

Proposizione 13 L’unione e l’intersezione di due insiemi ricorsivi A e B e ilcomplementare di un insieme ricorsivo A sono ancora insiemi ricorsivi

Ad esempio se fA e la funzione caratteristica di A e fB e la funzione carat-teristica di B, allora la funzione caratteristica di A ∩ B e fA · fB , la funzionecaratteristica di A ∪B e sg(fA + fB) e la funzione caratteristica di A e 1− fA.

Il concetto di insieme ricorsivo si puo estendere in modo immediato anchea sottoinsiemi di Nk, per k > 1. In tal caso avremo che se A e B sono insiemiricorsivi anche A×B e un insieme ricorsivo.

Inoltre vale il seguente risultato

Proposizione 14 A e un insieme ricorsivo se e solo e possibile definire unafunzione ricorsiva gA totale che e in grado di elencare ad uno ad uno tutti glielementi senza ripetizione e in ordine crescente.

Dim. Se A e ricorsivo, allora la funzione ricorsiva gA e

gA(n) = mink :

k∑

i=0

fA(i) = n+ 1.

Infatti gA(0) = k se e solo se fA(0) = fA(1) = · · · = fA(k − 1) = 0 e fA(k) = 1.Percio gA(0) = minA. Inoltre gA(1) = k se e solo se k e il secondo elemento diA in ordine di grandezza. E cosı via.

Si noti infine che A = gA(0), gA(1), gA(2), . . . .Se invece esiste una funzione gA con le proprieta sopra indicate, allora A e

ricorsivo in quanto la sua funzione caratteristica si puo scrivere come

fA(x) = (miny : gA(y) ≥ x = x)

6.2 Insiemi ricorsivamente enumerabili

Togliendo dal teorema 14 l’ipotesi che gA sia monotona non decrescente, il teo-rema non e in generale piu valido. Con tale ipotesi si puo solo definire unprocedimento, ad esempio una funzione ricorsiva parziale, che, dato n ∈ N,

64

converge e da una risposta positiva se n ∈ A, ma non converge se n 6∈ A: adesempio

hA(n) = mink : gA(k) = nQuesto procedimento si differenzia da una funzione caratteristica proprio perchementre quest’ultima e una funzione totale e quindi e in grado di dare sia rispostepositive che negative, la prima e in grado di dare solo risposte positive.

Per cui definiremo

Definizione 31 Un insieme A ⊂ N e ricorsivamente enumerabile (in se-guito r.e.) se esiste una funzione ricorsiva gA che lo enumera ricorsivamente,cioe una funzione ricorsiva gA gA : N → A suriettiva, cioe tale che per ognia ∈ A esiste n ∈ N per cui gA(n) = a, ovvero per cui Im(gA) = A.

Si noti che gA potrebbe non essere iniettiva e quindi produrre piu volte lostesso elemento di A. Questo fatto comunque non crea problemi in quanto sipuo in linea teorica pensare a scartare gli elementi gia prodotti.

In base alla proposizione 14 vale ovviamente

Proposizione 15 Se A e ricorsivo allora e r.e.

Vale inoltre il seguente risultato

Proposizione 16 Un sottoinsieme A ⊂ N e r.e. se e solo e il dominio di unafunzione hA ricorsiva parziale.

Dim. Se A e r.e., sia gA la funzione che lo enumera. Definendo

hA(x) = miny : gA(y) = xsi vede facilmente hA e definito su x se e solo se x ∈ E.

Se invece A e il dominio di una funzione ricorsiva hA, allora e anche il dominiodi una MdT M (inteso come l’insieme di tutti i numeri interi x per cui M siferma partendo con il nastro contenente il numero x).

Per cui possiamo scrivere che

x ∈ A se e solo se per qualche t ∈ N T (p, k(x), t) = 1

ove p e il codice del programma di M e k(x) e il codice della configurazioneiniziale perM in cui il nastro contiene la rappresentazione unaria di x. Per cui,scelto un elemento arbitrario x ∈ A (ad esempio il minimo elemento), A saraenumerato dalla funzione

g(y) =

y[0] se T (p, k(y[0]), y[1]) = 1x altrimenti

Infatti se x ∈ A, allora T (p, k(x), t) = 1 per un certo valore di t e quindi pery = [x, t] si ha che g(y) = x. Se invece x 6∈ A, allora per ogni valore di y percui y[0] = x, si ha che T (p, k(y[0]), y[1]) = 0 e quindi g(y) = x 6= x, mentre sey[0] 6= x, allora in ogni caso g(y) 6= x.

Come conseguenza di questo risultato abbiamo che

65

Proposizione 17 Se due insiemi A e B sono r.e., allora anche la loro inter-sezione e la loro unione sono insiemi r.e.

Dim. Far vedere che C = A ∩B e r.e. e banale, in quanto se A e il dominio dihA e B e il dominio di hB , allora C e il dominio di hA + hB . Invece per quantoriguarda l’unione D = A∪B, siano gA e gB le funzioni ricorsive che enumeranoA e B, rispettivamente. Allora posto

gD(y) =

gA(y ÷ 2) se y e parigB(y ÷ 2) se y e dispari

si puo far vedere che gD e ricorsiva e enumera D. Infatti chiaramente Im(GD) ⊂A ∪ B. Inoltre preso x ∈ A ∪ B, se x ∈ A, allora gA(y) = x per qualche y ∈ Ne quindi gD(2y) = x, mentre se x ∈ B, allora gB(y) = x per qualche y ∈ N equindi gD(2y + 1) = x.

Per quanto riguarda il complementare, a differenza di quanto avviene per gliinsiemi, abbiamo che

Teorema 19 (di Post) A e ricorsivo se e solo se A e il suo complementare Asono r.e.

Dim. Se A e ricorsivo, allora A e ricorsivo e entrambi saranno anche r.e.Se invece A e A sono r.e., allora siano g e g′ le funzioni che enumerano

rispettivamente A e A. Posto

y(x) = miny : (g(y) = x) ∨ (g′(y) = x),

la funzione caratteristica di A si puo scrivere come

f(x) =

1 se g(y(x)) = x0 se g′(y(x)) = x

Si noti che la funzione y(x) e ricorsiva totale, in quanto x ∈ A, in tal casoesiste y tale che g(y) = x, oppure x ∈ A, in tal caso esiste y tale che g′(y) = x.

Infine un’ulteriore caratterizzazione degli insiemi r.e. e la seguente

Proposizione 18 Un insieme A e r.e. se e solo se esiste un predicato ricorsivoQ a due variabili tale che

A = x ∈ N : ∃y.Q(x, y)

Dim. Infatti se A e r.e. allora A e enumerato da una funzione ricorsiva gA equindi A si puo scrivere come

A = x ∈ N : ∃y.g(y) = x

Per cui definendoQ(x, y)⇔ g(y) = x

66

si ottiene l’asserto.Se invece A = x ∈ N : ∃y.Q(x, y), allora A e il dominio della funzione

ricorsiva parziale hA(x) = miny : Q(x, y)

Si puo interpretare y come la “dimostrazione” che x ∈ A.Sia ora m una funzione ricorsiva che enumera M e definiamo Wi, per ogni

i ∈ N, come l’insieme di tutti i numeri interi x per cui la MdT di indice i siferma partendo dall’input x. In maniera del tutto analoga Wi e il dominio dellafunzione ricorsiva Φi.

E’ quindi ovvio che

Proposizione 19 Un insieme A e r.e. se e solo se A = Wi, per qualche i ∈ N

Ora siamo in grado di enunciare che il concetto di insieme r.e. e piu generaledel concetto di insieme ricorsivo in quanto

Proposizione 20 L’insieme

K = n ∈ N : n ∈Wn

e un insieme r.e. ma non ricorsivo

Dim. L’insieme K e chiaramente r.e. in quanto e il dominio della funzionericorsiva hK(x) = Φx(x).

Invece il complementare K di K non puo essere r.e. Infatti se per assurdo Kfosse r.e., sarebbe uguale a Wk, per un certo k.

PoicheK = n ∈ N : n 6∈Wn

si avrebbe che k ∈ K se e soltanto se k 6∈ K.

Un esempio piu utile di insieme non r.e. e il seguente

Proposizione 21 L’insieme TOT degli indici delle funzioni ricorsive totalinon e r.e.

Dim. Supponiamo per assurdo che TOT sia r.e. Allora esiste una funzionericorsiva g che enumera TOT .

Definiamo la seguente funzione ricorsiva totale

d(x) = Φg(x)(x) + 1

Essendo ricorsiva totale, l’indice di d e un elemento di TOT e quindi esisteun numero i ∈ N tale che d = Φg(i). Ma allora si avrebbe

d(i) = Φg(i)(i) + 1 = d(i) + 1

che e palesamente assurdo.

67

6.3 Due esempi importanti di insiemi r.e.

Il primo esempio e tratto dalla teoria dei linguaggi formali. Fissato un alfabetofinito A, sia ] : A → N \ 0 una codifica degli elementi di A (ovvero unafunzione iniettiva), ad esempio preso un ordinamento degli elementi di A, ] :A→ 1, 2, . . . , n, ove n e il numero di elementi di A.

Ad ogni parola w = a0a1 . . . aL di A∗ si puo associare il numero intero

]w = []a0, ]a1, . . . , ]aL]

detto codice o numero di Godel di w.L’insieme dei codici di tutte le parole di A∗ e un insieme ricorsivo.E’ facile vedere le seguenti funzioni e predicati sono ricorsivi (primitivi)

• La funzione L(x) che, dato x = ]w, calcola la lunghezza di una parolaw ∈ A∗. Infatti

L(x) = mini < x : x[i] = 0.

• la funzione C(x, y) che dati x = ]u e y = ]v, concatena u e v restituendoil codice della parola uv. Infatti

C(x, y) = x ·L(y)−1∏

i=0

py[i]i+L(x)

• Il predicato S(x, y) che, dati x = ]u e y = ]v, e vero se e solo se v occorrein u. Infatti

S(x, y) = (∃z)≤x(∃t)≤x(C(z, C(y, t)) = x).

• Presa una produzione Pi = wi → w′i, il predicato DDPi(x, y), che datix = ]u e y = ]v, e vero se e solo se v discende direttamente da u usandola produzione Pi. Infatti

DPi(x, y) = (∃z)≤x(∃t)≤x((C(z, C(k, t)) = x) ∧ (C(z, C(k′, t)) = y)),

ove k = ]wi e k′ = ]w′i.

• Presa una grammaticaG con un insieme finito di produzioni P = P1, . . . , Pm,il predicatoDP (x, y), che dati x = ]u e y = ]v, e vero se e solo se v discendedirettamente da u usando una delle produzioni di P . Infatti

DP (x, y) = DP1(x, y) ∨ · · · ∨DPm(x, y)

Si noti che la funzione L puo essere in realta applicata ai numeri di Godeldi sequenze finite arbitrarie di interi purche nessun numero della sequenza siazero.

Dimostriamo ora che

68

Proposizione 22 Data una grammatica G, avente P come insieme di produ-zioni e S come simbolo iniziale, l’insieme dei codici delle parole del linguaggiogenerato da G

C(G) = ]w : S →∗P we un insieme r.e.

Dim. L’insieme C(G) si puo scrivere come

C(G) = x : ∃y.Der(x, y)in cui il predicato Der e definito da

Der(x, y)⇔ (y[0] = ]S)∧(y[L(y)−1] = x)∧(∀i)<L(y)((i = 0)∨DP (y[i−1], y[i]))

in cui y e il numero di Godel di una sequenza finita di m+1 numeri, ognuno deiquali e sua volta il codice di una parola wi (i = 0, . . . ,m). Queste parole sonotali che

• w0 = S

• wm = u, ove u e la parola di codice x

• wi discende direttamente da wi−1 tramite le produzioni P

Poiche tale sequenza esiste se e solo se u ∈ L(G) (per definizione di L(G))e poiche Der e un predicato ricorsivo (primitivo), si ha l’asserto in virtu dellaproposizione 18.

Si noti che molti linguaggi formali sono in realta ricorsivi: ad esempio tutti ilinguaggi descritti nel capitolo introduttivo, i linguaggi della logica proposizio-nale e quello della logica dei predicati, tutti i linguaggi di programmazione (adesempio il Pascal).

Esistono pero linguaggi r.e. ma non ricorsivi. Infatti in [1] e descritto comecreare una grammatica che genera come linguaggio il dominio di una data MdT;poiche esiste una MdT che ha come dominio un insieme K r.e. ma non ricorsivo,K e il linguaggio con tale proprieta.

Il secondo esempio e molto importante e ci servira nel prossimo capitolo.Innanzitutto se L e un linguaggio della logica dei predicati, cioe L = LP(Σ)

per un certo Σ finito o ricorsivo, ad ogni formula φ di L e possibile associare inmodo univoco un numero ]φ, detto codice o numero di Godel della formula,dato che φ e una parola del linguaggio LP(Σ).

Inoltre l’insieme ]φ : φ ∈ L e un insieme ricorsivo.Infine l’insieme A dei codici degli assiomi della logica dei predicati e un

insieme ricorsivo.

Proposizione 23 Sia L un linugaggio della logica dei predicati e sia T un insie-me ricorsivo di formule di L. Allora l’insieme dei codici dei teoremi dimostrabilida T

Thm(T ) = ]φ : T ` φe un insieme r.e.

69

Dim. L’insieme Thm(T ) si puo scrivere come

Thm(T ) = x : ∃y.Prf(x, y)

in cui il predicato Prf e definito da

Prf(x, y) ⇔ (y[L(y)− 1] = x) ∧ (∀i)<L(y)(fA(y[i]) ∨ fT (y[i]) ∨(∃j)<i(∃k)<i(y[i] = mp(y[j], y[k])))

in cui fA e fT sono le funzioni caratteristiche degli insiemi, rispettivamente, deicodici degli assiomi e delle formule di T e mp e la funzione che, dati i codicidi due formule φ e ψ, restituisce come risultato il codice della formula χ che siottiene per modus ponens da φ e ψ o 0 se con φ e ψ non e possibile effettuareil modus ponens.

Mentre e chiaro che fA e fT sono ricorsive in quanto i due insiemi corri-spondenti sono ricorsivi, la ricorsivita della funzione mp deriva dal fatto che mpdeve controllare se ψ = (φ⇒ χ) per una certa formula χ; in caso positivo deverestituire il codice di χ, altrimenti 0.

Poiche φ e un teorema di T se e solo se esiste una dimostrazione φ0, φ1, . . . , φm,in cui φm = φ e ogni elemento φi e un assioma, un’ipotesi appartenente a T o siottiene per modus ponens da altri due elementi precedenti della dimostrazione,e poiche Prf e un predicato ricorsivo si ottiene l’asserto.

70

Capitolo 7

I teoremi di Godel e Church

7.1 Introduzione

Introduciamo ora il concetto di teoria, che e il concetto chiave di questo capitolo.

Definizione 32 Una teoria K (del primo ordine) in un linguaggio L e unarbitrario insieme di formule di L, i cui elementi sono detti assiomi propri diK. Ogni formula φ derivabile da K si dice teorema di K. Si indichera conThm(K) l’insieme dei numeri di Godel dei teoremi di K.

Diremo inoltre che una teoria K e ricorsiva se K e un insieme ricorsivo eche K e decidibile se Thm(K) e un insieme ricorsivo.

Ovviamente se una teoria e ricorsiva, allora l’insieme dei teoremi e r.e., inbase alla proposizione 23; cercheremo pero di vedere se esistono delle teorie Kindecidibili, cioe tali che Thm(K) sia r.e., ma non ricorsivo.

Una tale teoria si dice indecidibile perche non puo esistere un algoritmo chee in grado di stabilire se una data formula sia o meno un teorema di K. Si potracomunque trovare la dimostrazione di ogni teorema e enumerarli tutti, ma perogni procedimento possibile esisteranno dei non teoremi, cioe delle formule chenon derivano da K, per cui il procedimento non sara in grado di stabilire chenon sono teoremi (ad esempio trovando un controesempio).

Infine si noti che la logica proposizionale e decidibile nel senso che l’insiemedei codici delle proposizioni soddisfacibili e ricorsivo e quindi lo e anche l’insiemedei codici delle tautologie.

Infatti una proposizione q puo avere solo un numero finito n di variabili edi conseguenza sono un numero finito (2n) i possibili assegnamenti di verita chepossono soddisfare q: un procedimento che verifica se q e soddisfacibile non devefar altro che controllarli tutti e vedere se ce n’e almeno uno che soddisfa q.

71

7.2 L’aritmetica formale

In questa sezione definiamo un linguaggio AF della logica dei predicati atto aformalizzare i numeri naturali con le operazioni di addizione e moltiplicazione.Si trattera di un linguaggio dotato di

• una costante, indicata con 0

• una funzione di arita uno, chiamata successore e indicata con S, e duefunzioni di arita due, chiamate somma e prodotto indicate con gli operatori+ e ·

• il predicato di uguaglianza =

• un’infinita numerabile di variabili, indicate con vari simboli, anche indi-ciati come x1, x2, . . .

Useremo poi l’abbreviazione t 6= t′ per la formula ¬(t = t′).Indicheremo con AF la seguente teoria basata sul linguaggio AF

AF1 (∀x.S(x) 6= 0)

AF2 (∀x.∀y.(S(x) = S(y))⇒ (x = y))

AF3 (∀x.x+ 0 = x)

AF4 (∀x.∀y.x+ S(y) = S(x+ y))

AF5 (∀x.x · 0 = 0)

AF6 (∀x.∀y.x · S(y) = x+ x · y)

AF7 (α[x/0] ∧ (∀x.α⇒ α[x/S(x)]))⇒ (∀x.α) per ogni formula α avente comevariabile libera x

Come si puo notare, gli assiomi propri AF1 e AF2 richiedono che S siauna funzione iniettiva e che 0 non e il successore di nessun elemento; AF3e AF4 formalizzano l’addizione, AF5 e AF6 formalizzano la moltiplicazione einfine le formule dello schema AF7 rappresentano la cosiddetta dimostrazioneper induzione di una generica formula α. Gli assiomi AF1, AF2 e AF3 sonoderivati dai celeberrimi assiomi di Peano.

La teoria AF e chiamata teoria dell’aritmetica formale perche com-prende un insieme di proprieta elementari dell’aritmetica elementare (appuntoi numeri naturali con l’addizione e la moltiplicazione).

Innanzitutto vale il seguente risultato, di ovvia dimostrazione

Proposizione 24 (N,+, ·) e un modello di AF

72

In AF e possibile riferirsi a numeri maggiori di zero usando i cosiddettinumerali, cioe termini chiusi del tipo

0 = 0

n+ 1 = S(n)

Ad esempio 1 = S(0), 2 = S(S(0)), e cosı via.A titolo di esempio facciamo innanzitutto vedere come si dimostra in AF

che 1 + 1 = 2, ovvero che S(0) + S(0) = S(S(0)).Dall’assioma AF4 sostituendo x con S(0) e y con 0 si ottiene

S(0) + S(0) = S(S(0) + 0),

dall’assioma AF3 sostituendo x con S(0) si ottiene

S(0) + 0 = S(0)

da cui si ottiene l’asserto applicando le proprieta dell’uguaglianza.Facciamo poi vedere come si dimostra che (∀x.0 + x = x). Poiche vogliamo

usare l’assioma AF7 della dimostrazione per induzione, dobbiamo inizialmentedimostrare che 0 + 0 = 0, tramite l’assioma AF3, sostituendo 0 al posto di x.Facciamo ora vedere che

(∀x.(0 + x = x)⇒ (0 + S(x) = S(x))) (7.1)

Dall’assioma AF4, sostituendo al posto 0 al posto di x e x al posto di y si ottiene

0 + S(x) = S(0 + x)

Se si pone come ipotesi che 0 +x = x, allora si ottiene 0 +S(x) = S(x) e quindiper deduzione la (7.1). Percio dall’assioma AF7 con α ≡ 0 + x = x e usandodue volte il modus ponens si ottiene l’asserto.

E’ possibile pensare che + e · siano funzioni sui numerali (numeri interi):se m e n sono numeri, l’espressione m + n denota quell’unico numero s taleche AF ` m + n = s, mentre m · n denota quell’unico numero p tale cheAF ` m ·n = p. Ovviamente accade proprio che s = m+n e p = m ·n. Questoconcetto sara chiarito meglio nella sezione 7.4.AF ha molte proprieta di N. Infatti valgono le seguenti

Proposizione 25 La somma + e il prodotto · sono associativi e commutativi.La somma e distribuitva rispetto al prodotto. 1 e l’elemento neutro del prodotto.Vale la legge di annullamento del prodotto.

In generale presi un termine chiuso t di AF , che e un’espressione i cui ope-randi sono proprio numerali, si puo vedere che esiste uno e un solo numero ntale che AF ` t = n.

73

7.3 Introduzione al primo teorema di Godel

Queste note danno una breve idea della dimostrazione del famosissimo (primo)teorema di incompletezza di Godel. Questo teorema e stato dimostrato da Godelin suo famoso articolo pubblicato nel 1931 e da allora sono stati scritti “fiumidi inchiostro” su questo risultato.

Non si entrera in merito alle questioni filosofiche e alle varie implicazioni dicarattere non prettamente matematico che sono state discusse in modo ancheesasperato (si puo citare ad esempio che qualcuno scrisse che con il teorema diGodel la matematica non ha piu senso). Per un’introduzione ai vari problemiconnessi con il teorema di Godel si rimanda all’amplissima letteratura esistentein merito.

Essenzialmente il primo teorema di incompletezza ci dice che nell’aritmetica(e in tutti i sistemi formali sufficientemente potenti) esistono degli enunciatiindecidibili G, cioe in cui non si puo dimostrare ne G ne ¬G.

La dimostrazione di Godel si basa sul paradosso del mentitore. Una frase deltipo “questa affermazione e falsa” (oppure “io sto mentendo”, ecc.) costituisceun esempio di proposizione a cui non si puo attribuire alcun valore di verita.Infatti se la frase fosse vera, allora non potrebbe essere vero quello che afferma,cioe sarebbe falsa. D’altro canto se la frase fosse falsa, allora non sarebbe verocio che afferma e quindi dovrebbe essere vera.

Per ricreare una situazione simile all’interno di AF bisogna definire un enun-ciato G che afferma la propria indimostrabilita (che e l’equivalente sintattico del-la falsita). Esistono molti dettagli tecnici per arrivare alla definizione di questoenunciato.

Innanzitutto deve essere definito un processo di “aritmetizzazione della sin-tassi”: le formule e le dimostrazioni devono essere rappresentate tramite numeriin modo da consentire la definizione di formule che “parlano” di altre formule odi dimostrazioni.

Un secondo passo e quello di rappresentare all’interno di AF le funzioni cheservono a verificare se una sequenza di formule e una dimostrazione e quindi aeffettuare manipolazioni simboliche di formule. In pratica per ottenere questorisultato si devono rappresentare molte funzioni ricorsive.

Tramite i primi due passi si e in grado di definire formule che parlano delladimostrabilita di altre formule. E’ quindi necessario un terzo passo in cui unaformula possa citare se stessa: la cosa non e del tutto ovvia. Infatti per creareuna formula G di AF che cita se stessa, ad esempio affermando di avere unacerta proprieta, e necessario conoscere il codice di G e inserirlo all’interno diG. Chiaramente queste due operazioni andrebbero fatte contemporaneamente,perche prima della sostituzione non si sa quant’e il codice di G, mentre dopo lasostituzione G non e piu la stessa e quindi il suo codice e diverso da quello dipartenza.

Un esempio che puo chiarire questo problema e il seguente. Si trovi unnumero intero n per cui l’affermazione “questa frase ha n sillabe” (sostituendoa n il suo valore scritto in lettere) e corretta. Il numero n in questione e soluzione

74

dell’equazionen = 8 + s(n)

in cui s(n) e il numero di sillabe del numero n espresso in italiano. La solu-zione piu piccola e 10, perche l’affermazione ”questa frase ha dieci sillabe” harealmente 10 sillabe, mentre per ogni n < 10 sarebbe falsa.

Cambiando l’affermazione in “questa affermazione in lingua italiana e com-posta da n lettere” si capisce che non e del tutto ovvio trovare il valore di ncorretto o dimostrare almeno che tale numero esiste.

Si noti infine che i tre passi sono svolti all’interno di AF senza che sianecessario aggiungere nuovi assiomi o ampliare il linguaggio. Inoltre il primopasso e gia stato affrontato nel capitolo precedente a proposito della proposizione23 e in quanto tale sara ritenuto come acquisito.

7.4 Rappresentabilita

Sia K una qualsiasi teoria del primo ordine ricorsiva, il cui linguaggio sia un’e-stensione di AF e i cui assiomi comprendano quelli di AF . In particolare negliesempi si usera solo AF , ma poiche i risultati valgono anche per teorie piu ricchedi AF , tutti gli esempi si possono rileggere in una teoria K.

Inoltre se Q e una formula che ha come variabili libere x1, . . . , xn e t1, . . . , tnsono termini, allora si indichera con Q(t1, . . . , tn) la formula che si ottieneda Q sostituendo, per ogni i = 1, . . . , n, la variabile xi con il termine ti,cioe Q[x1/t1, . . . , xn/tn]. Inoltre la formula originaria Q verra denotata conQ(x1, . . . , xn), mettendo in evidenza le sue variabili libere.

Definizione 33 Un predicato p : D → 0, 1, ove D ⊂ Nm, e rappresentabilein K se esiste una formula Qp di K avente m variabili libere x1, . . . , xm taleche per ogni r1, . . . , rm ∈ N

p(r1, . . . , rm) = 1 ⇒ K ` Qp(r1, . . . , rm)

p(r1, . . . , rm) = 0 ⇒ K ` ¬Qp(r1, . . . , rm)

Ad esempio il predicato r1 ≤ r2 e rappresentabile in AF in quanto bastaprendere Q(x1, x2) ≡ (∃x3.x1 + x3 = x2); il predicato r1|r2 e rappresentabi-le con la formula Q(x1, x2) ≡ (∃x3.x1 · x3 = x2. Infine il predicato Pr(r) erappresentabile con la formula Q(x) ≡ (¬(∃x2, x3.(x2 + 2) · (x3 + 2) = x)),in quanto se un numero non e primo si scrive come prodotto di due numerimaggiori strettamente di 1 e cioe scrivibili come x2 + 2.

Data una funzione f : Nm → N, ad essa si puo associare in modo naturaleun predicato pf a m + 1 argomenti tale che f(~x) = y se e solo se pf (~x, y). pfha inoltre la proprieta che per ogni m–upla di numeri interi ~x

(∃y!.pf (~x, y))

Da questa semplice considerazione possiamo definire

75

Definizione 34 Una funzione f : D → N, ove D ⊂ Nm, e rappresentabilein K se esiste una formula Qf di K avente m+ 1 variabili libere x1, . . . , xm, ytale che per ogni r1, . . . , rm, s ∈ N

f(r1, . . . , rm) = s⇒ K ` Qf (r1, . . . , rm, s)

eK ` (∃!y.Qf (r1, . . . , rm, y))

Ad esempio la funzione r(x) = d√xe e rappresentabile in AF mediante la for-mula Q(x, y) ≡ (y · y ≤ x) ∧ (S(y) · S(y) > x) ove il predicato > e ovviamenteanch’esso rappresentabile in AF .

Teorema 20 Tutte le funzioni ricorsive f : Nm → N, sono rappresentabiliin AFDim. Daremo alcuni cenni della dimostrazione. Per avere maggiori dettagli illettore puo consultare [3].

Innanzitutto e banale dimostrare che le funzioni di base sono rappresenta-bili in AF . Infatti la funzione z(x) = 0 e rappresentabile con Q(x, y) ≡ (x =x) ∧ (y = 0), in cui la sottoformula x = x serve solo perche Q deve avere xcome variabile libera. La funzione successore e rappresentabile con la formula

y = S(x). Infine la funzione proiezione π(m)i e rappresentabile dalla formula

(x1 = x1) ∧ (x2 = x2) ∧ · · · ∧ (y = xi) · · · ∧ (xm = xm).

Se g : Nk → N e rappresentabile con la formula G(x1, . . . , xk, Y ) e f1, . . . , fk :Nm → N sono rappresentabili, rispettivamente, con le formule Fi(~x, y) allora lafunzione h ottenuta per composizione di g con f1, . . . , fk e rappresentabile conla formula

H(~x, y) ≡ (∃z1, . . . zk.F1(~x, z1) ∧ Fk(~x, zk) ∧G(z1, . . . , zk, y))

Se p : Nm+1 → 0, 1 e un predicato rappresentabile con la formula P (~x, y), al-lora la funzione h : Nm → N definita per minimalizzazione di p e rappresentabilecon la formula

M(~x, y) ≡ (P (~x, y) ∧ (∀z.(z < y)⇒ ¬P (~x, z)))

Per quanto riguarda le funzioni definite per ricorsione si deve usare la cosiddettafunzione β di Godel che e in grado di rappresentare sequenze arbitrariamentelunghe di numeri interi con due numeri interi, in modo simile alla funzione[x0, x1, . . . , xm] ma senza la necessita di utilizzare l’elevamento a potenza (chee definito anch’esso come funzione ricorsiva).

Siamo cosı riusciti a soddisfare anche il secondo passo per la definizionedell’enunciato indecidibile.

76

7.5 Il primo teorema di Godel

Innanzitutto, data una formula B, indicheremo con pBq il numerale ]B.Il punto cruciale per soddisfare il terzo punto e il seguente risultato.

Teorema 21 (del punto fisso) Sia K una teoria in cui tutte le funzioni ri-corsive siano rappresentabili. Per ogni formula E(x) esiste un enunciato C taleche

K ` (C ⇔ E(pCq))

Dim. Sia d la funzione diagonale che, dato il codice di una formula B(x), resti-tuisce il codice della formula B(pBq). Essendo d una funzione ricorsiva, esisteper il teorema 20 una formula D(x, y) che rappresenta d in K.

Sia L(x) la formula (∀y.D(x, y)⇒ E(y)) e sia m = ]L. Infine sia C = L(m).Con alcuni semplici passaggi, che qui non vengono riportati, e possibile vedereche in K si puo dimostrare C ⇔ E(pCq)

Definizione 35 Una teoria K e consistente se non e possibile che

K ` φ K ` ¬φ

per la stessa formula φ. Una teoria K e ω–consistente se per ogni formula Bavente come variabile libera x, se per ogni n ∈ N accade che K ` ¬B(n), alloranon puo accadere che K ` (∃x.B)

Proposizione 26 Se K e ω–consistente, allora K e consistente.

Dim. Sia E(x) una formula con una variabile libera x e sia H = (E ∧ (¬E)).Per ogni n ∈ N l’enunciato

¬H(n) ≡ (¬E(n)) ∨ E(n)

e l’instanza di una tautologia della logica proposizionale e quindi e sicuramentedimostrabile in K. Per la ω–consistenza si avra che in K non e dimostrabilel’enunciato (∃x.H). Percio K deve essere consistente, altrimenti tutti gli enun-ciati sarebbero dimostrabili in K.

Le ipotesi sulle teorie K per cui il teorema di Godel e vero sono le seguenti

1. K deve essere ricorsiva

2. in K si deve dimostrare che 0 6= 1

3. in K si devono rappresentare tutte le funzioni ricorsive.

77

Prendiamo adesso il predicato Prf(x, y). Essendo ricorsivo esiste una for-mula P con due variabili libere x e y tale che per ogni r, s,∈ N accade che

Prf(r, s) = 1 ⇒ K ` P (r, s)

Prf(r, s) = 0 ⇒ K ` ¬P (r, s)

Sia E la formula (∀y.(¬P (x, y))). Per il teorema del punto fisso esiste unenunciato G tale che

K ` G⇔ (∀y.¬P (pGq, y))

Questo enunciato G afferma in pratica che “G non e dimostrabile”.

Teorema 22 (Primo teorema di incompletezza di Godel) Se K soddisfale ipotesi 1,2 e 3, allora

(i) Se K e consistente, G non e dimostrabile in K

(ii) Se K e ω–consistente, ¬G non e dimostrabile in K

Dim. Innanzitutto sia g = ]G. Dimostriamo la (i). Se per assurdo G fossedimostrabile in K, allora

Prf(g, d) = 1

ove d e il codice della dimostrazione di G. Percio in K sarebbe dimostrabileP (g, d). Combinando K ` G e K ` G⇔ (∀y.¬P (g, y)) si ottiene che

K ` (∀y.(¬P (g, y)))

e sostituendo al posto di y proprio il termine d avremo

K ` ¬P (pGq, d)

Percio K sarebbe inconsistente in quanto sarebbe dimostrabile anche la nega-zione di P (g, d).

Dimostriamo infine la (ii). Se per assurdo ¬G fosse dimostrabile in K avremoche

K ` ¬(∀y.¬P (g, y))

cioeK ` (∃y.P (g, y))

Poiche K e ω–consistente, K e anche consistente e quindi in K non e dimostra-bile G. Quindi si avra che Prf(g, n) = 0 per ogni n ∈ N e quindi

K ` ¬P (g, n)

e per la ω–consistenza in K non si dovrebbe poter dimostrare (∃y.P (g, y)), con-trariamente a quanto mostrato prima.

78

Per quanto riguarda AF , che ovviamente soddisfa le ipotesi del teorema diGodel, si noti che la formula G e vera in N e quindi AF non e in grado dimodellare adeguatamente il mondo dei numeri naturali.

Inoltre se ad AF si aggiungesse G come ulteriore assioma proprio si otter-rebbe una nuova teoria AF1 a cui si potrebbe riapplicare ancora il teorema diincompletezza di Godel, trovando un nuovo enunciato G′ indecidibile, ma veroin N. Ovviamente questo processo si puo svolgere un numero illimitato di volte,creando una successione infinita di teorie AF i ognuna delle quali ammette Ncome modello, ma per cui esiste un enunciato vero in N ed indecidibile.

Il teorema di Godel si puo dimostrare, utilizzando una modifica dovuta aRosser, senza l’ipotesi di ω–consistenza, ma solo con l’ipotesi di consistenza.

7.6 Il secondo teorema di Godel

La consistenza di AF e stata dimostrata tra gli altri, da Gentzen e da Schutteutilizzando concetti esterni ad AF stesso, come ad esempio i numeri ordinalidenumerabili. E’ pero possibile dimostrare la consistenza di AF all’interno diAF , cioe utilizzando solo concetti elementari, come gli usuali numeri naturali ?

Il secondo teorema di Godel dara una risposta negativa a questa domanda.Per le implicazioni di questo risultato si vedano le conclusioni alla fine di questocapitolo.

Sia K una teoria con un insieme ricorsivo di assiomi e sia ConK l’enunciatodi K che afferma che K e consistente

ConK = ¬(∃x, y, z, t.P (x, y) ∧ P (z, t) ∧N(x, z)

in cui N e la formula che rappresenta la funzione n che, dato il codice x di unaformula φ, assume come valore n(x) il codice della formula ¬φ.

In pratica ConK afferma che non esiste non e possibile dimostrare in K unaformula e il suo contrario.

Teorema 23 (Secondo teorema di incompletezza di Godel) Se K e con-sistente, allora non e possibile dimostrare ConK in K

Dim. Forniamo qui una dimostrazione non del tutto rigorosa di questo teorema.Si prenda l’enunciato

W ≡ ConK ⇒ G

in cui G e l’enunciato di Godel: W afferma che se K e consistente, allora Gnon e dimostrabile. Essendo W proprio la implicazione (i) del primo teoremadi Godel, si ha che K ` W in quanto e possibile riscrivere la dimostrazione diquesta implicazione all’interno di K stesso.

Se per assurdo fosse K ` ConK , si avrebbe per modus ponens K ` G, con-trariamente alla stessa implicazione del primo teorema di Godel.

E’ possibile dimostrare in modo completamente formalizzato il secondo teo-rema di Godel facendo vedere che K ` W oppure utilizzando le condizioni

79

sulla dimostrabilita di Hilbert–Bernays, per maggiori chiarimenti si veda a talproposito [3].

7.7 I teoremi di Tarski e Church

Riportiamo in questo capitolo altri due risultati importanti strettamente legatia questo argomento.

L’assioma AF7 di AF e uno schema (ricorsivo) che comprende infiniti assio-mi. E’ possibile pero creare una teoria piu debole dei numeri naturali, chiamatasistema Q di Robinson, in cui AF7 e sostituito dall’assioma

AF7′ (∀x.(x 6= 0)⇒ (∃y.x = S(y)))

In questa teoria non si possono fare dimostrazioni per induzione e quindialcune proprieta fondamentali dell’aritmetica non possono essere dimostrate,come ad esempio la commutativita della somma. Pero e possibile rappresentarein Q tutte le funzioni ricorsive. Dato che Q e formato da un numero finito diassiomi propri vale l’ovvio risultato

Proposizione 27 Dato un enunciato φ, Q ` φ se e solo se

` (6∧

i=1

AFi ∧AF ′7)⇒ φ

Questa proposizione ci dice che il solo calcolo dei predicati e sufficiente atrovare i teoremi di Q, a differenza di quanto avviene con AF , in cui essendoinfinito l’insieme degli assiomi non e possibile ottenere un risultato equivalente.

Proposizione 28 Se K e una teoria sul linguaggio AF consistente e in cuie rappresentabile la funzione diagonale d (introdotta nel teorema 21) allora laproprieta n ∈ Thm(K) non e rappresentabile in K

Dim. Supponiamo per assurdo che n ∈ Thm(K) sia rappresentabile dalla for-mula T (x), cioe

n ∈ Thm(K) ⇒ K ` T (n)

n 6∈ Thm(K) ⇒ K ` ¬T (n)

Per il teorema 21 esiste un enunciato C tale che

K ` C ⇔ ¬T (pCq) (7.2)

Sia q = ]C. Se si suppone che K ` C, allora q ∈ Thm(K) e quindi K ` T (q).Ma da 7.2 segue che K ` C ⇒ ¬T (pCq) e quindi K ` ¬T (q) e K non sarebbeconsistente.

Se invece K¬ ` C, q 6∈ Thm(K) e quindi K ` ¬T (q). Ma da 7.2 segue cheK ` ¬T (pCq)⇒ C e quindi K ` C contrariamente all’assunto.

80

Proposizione 29 Se K e una teoria di AF consistente in cui ogni funzionericorsiva e rappresentabile e in cui K ` 0 6= 1, allora Thm(K) non e ricorsivo

Dim. Se Thm(K) fosse ricorsivo, la relazione n ∈ Thm(K) sarebbe rappresen-tabile in K, contrariamente alla proposizione precedente.

Teorema 24 (di Church) L’insieme (dei codici) dei teoremi T del calcolo deipredicati non e ricorsivo

Dim. Dalla proposizione precedente sappiamo che l’insieme dei teoremi di Qnon e ricorsivo. Se T fosse ricorsivo esisterebbe una funzione ricorsiva fT cheassume il valore 1 se il suo argomento n e il codice di un teorema e il valore 0altrimenti. Percio Thm(Q) sarebbe a sua volta ricorsivo, in quanto per vederese n e il codice di un teorema φ di Q basterebbe vedere se fT (m) = 1, in cui m

e il codice di (∧6i=1AFi ∧AF ′7)⇒ φ.

Chiudiamo questa sezione citando l’altro risultato importante

Teorema 25 (di Tarski) L’insieme delle formule vere in N non e rappresen-tabile in AF e quindi non e ricorsivo.

7.8 Conclusioni

Innanzitutto i teoremi di Godel si applicano non solo alla teoria dell’aritmeticaformalizzata, ma a qualunque teoria “sufficientemente potente”. Ad esempioper il primo teorema di incompletezza bastano le condizioni 1,2 e 3. Molteteorie soddisfano queste condizioni, tra queste la piu importante e la teoriadegli insiemi di Zermelo–Fraenkel, su cui originariamente era stato formulato ilteorema di Godel.

La teoria degli insiemi era stata proposta come linguaggio di base di tuttala matematica ed e tuttora utilizzata come strumento per la definizione deiconcetti elementari (insiemi e loro operazioni, relazioni, funzioni, ecc.).

La scuola formalista, il cui rappresentante massimo fu Hilbert, proponevadi formalizzare tutta la matematica allora conosciuta all’interno della teoria Sdegli insiemi in modo che ogni teoria matematica fosse descritta in modo as-siomatico attraverso il semplice linguaggio degli insiemi. La teoria S dovevaessere dotata di un procedimento meccanico che, dato un enunciato φ, potevadecidere con un numero finito di passi se φ e vero o falso. La ricerca di questaprocedura, il cosiddetto Entscheidungsproblem, era di estrema importanza per-che questa procedura sarebbe stata in grado, almeno dal punto di vista teorico,di risolvere qualsiasi problema matematico. Ovviamente il lavoro del matema-tico non sarebbe finito (ad esempio avrebbe comunque dovuto definire nuoviconcetti e teorie, proporre delle congetture e magari tentare di dimostrarle), maogni disputa, ogni dubbio poteva essere fugato teoricamente attraverso questomeccanismo.

81

Infine il programma della scuola formalista richiedeva che si doveva dimostra-re la consistenza della teoria S in modo da evitare che fosse possibile ottenererisultati contraddittori; per essere sicuri della fondatezza di questo risultato,questa dimostrazione doveva essere svolta direttamente all’interno di S stessa.

I teoremi di Godel e i risultati di Turing e di Church mostrano che il program-ma di Hilbert era troppo ambizioso. Infatti il primo teorema di incompletezza eil teorema della fermata di Turing danno una risposta negativa all’Entscheidung-sproblem: esistono proposizioni indecidibili all’interno della teoria degli insiemi(e all’interno dell’aritmetica) ed esistono problemi che non possono essere ri-solti mediante procedimenti meccanici, come le macchine di Turing. Il secondoteorema di incompletezza di Godel invece mostra come non sia possibile dimo-strare la consistenza di una teoria all’interno della teoria stessa, se tale teoria esufficientemente potente, come ad esempio la teoria degli insiemi.

82

Bibliografia

[1] M. Davis, Weyuker. Computability, Complexity, and Languages. AcademicPress, Inc.1983

[2] H.B. Enderton. A Mathematical Introduction to Logic. Harcourt AcademicPress, 2001

[3] E. Mendelson. An Introduction to Mathematical Logic. Chapman and Hall,1997

[4] C. Papadimitriou. Computational Complexity. Addison–Wesley, 1994

83