Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Nelle pagine che seguono ho voluto raccogliere alcuni concetti che ritengo fondamentali per la
comprensione del calcolo logico; esse non hanno alcuna pretesa di esaustività rispetto al complesso
panorama di argomenti cui fanno riferimento, piuttosto mirano a impostare un comune protocollo di
comunicazione su alcuni dei temi che verranno discussi nell'area Teorema.
Rimando pertanto il lettore desideroso di approfondimento alla consultazione dei testi dai quali sono
1
stati tratti questi spunti e delle letture cui accenneremo nel corso dei nostri dibattiti in rete; soprattutto
invito gli interessati a partecipare con idee e suggerimenti.
Resto a disposizione per ogni precisazione che riuscirò a fornire sfidando il mio orologio ed il mio
dilettantismo.
Buon lavoro.
Presentazione dell'argomento
In termini generali la logica si propone lo studio del ragionamento corretto; parlando di logica
matematica faremo dunque riferimento allo studio delle condizioni che rendono corretto il
ragionamento usato dai matematici.
Più precisamente l'assiomatica formale analizza i processi deduttivi alla ricerca di metodi che,
indipendentemente dai contenuti del linguaggio adoperato, consentano di derivare conseguenze
coerenti, da alcuni concetti primitivi assunti come verità intuitive o autoevidenti di carattere generale.
Il principio di induzione
Introduciamo sin da ora il fondamentale procedimento che rende possibile la "propagazione" di una
qualsivoglia proprietà lungo la catena delle deduzioni, ovverosia la definizione per induzione.
Supponiamo di voler stabilire che una sequenza di oggetti x ,...,xn gode di una data proprietà P; sarà
0
sufficiente porre che:
Base: Il primo elemento della serie (x0) gode della proprietà P;
Passo: Se un elemento xi della serie gode di P - ipotesi d'induzione - allora ne gode anche il successivo
(xi+1)
Sullo stesso principio si basa la dimostrazione per induzione, attraverso la quale dimostro che una serie
di oggetti gode di una determinata proprietà dimostrando che il primo elemento ne gode, e che se ne
gode uno ne gode anche il successivo.
Funzioni e Predicati
Definiamo funzione una rappresentazione, ossia una assegnazione da un insieme A di argomenti detto
dominio ad un insieme B di valori detto codominio.
E' detto predicato ogni sottinsieme di n-uple in A
Funzioni e predicati sono detti concetti non logici in quanto concetti non comuni a tutti i sistemi
assiomatici
La logica predicativa
Un linguaggio formalizzato conserva essenzialmente l'articolazione dei linguaggi naturali dai quali
deriva e consiste in una analoga attività di predicazione, ossia di attribuzione di proprietà o stati ad
individui.
Se ad esempio volessi esprimere il fatto che "ci sono degli studenti intelligenti", potrei provare a
scrivere: I(s); tuttavia posto in questi termini l'enunciato potrebbe essere inteso anche in un altro modo,
ovverosia "gli studenti sono intelligenti" nel senso che l'intelligenza è connaturata in chi è studente
(cosa tutta da dimostrare). Per sciogliere ogni ambiguità e distinguere tra la formulazione di un
concetto e la formulazione di un asserto universale, i linguaggi della logica predicativa ricorrono ai
quantificatori, e precisamente:
∃ = "Esiste"
∀ = "Tutti"
Nel nostro caso avremo:
∃ s I(s) = "Esiste almeno uno studente intelligente" ∀ s I(s) =
"Tutti gli studenti sono intelligenti"
Nel corso di questa esposizione, farò uso di variabili sintattiche, che a differenza delle variabili
ordinarie - che come vedremo variano su individui - variano su espressioni del linguaggio. Vale a dire
che quando mi troverò a dover designare un qualsiasi elemento del linguaggio (non il suo contenuto) lo
indicherò con un simbolo metalinguistico che avrò opportunamente definito; ad es. ∀ c = "Per ogni
costante c".
Il linguaggio che andiamo a definire consiste in una serie di enunciati ovvero di espressioni che
asseriscono dei fatti.
Gli enunciati sono a loro volta costituiti dai seguenti simboli:
- Variabili individuali x,y,z, ...
- Per ogni n, simboli di funzione e predicato n-ari f, g, p, q, ...
- I simboli ∃, ∀, ¬, ∧, ∨, →
- Il simbolo di predicato binario d'identità =
- I simboli di funzione 0-aria per le costanti.
Definizione induttiva degli elementi del linguaggio:
Termini - espressioni che designano individui
Una variabile è un termine.
Se u1,...,un sono termini e f è n-aria allora f(u1,...,un) è un termine
(con u variabile sintattica che varia su variabili)
Formule atomiche: Espressioni nella forma P(a1,...,an) con a variabile sintattica che varia su
termini e P variabile sintattica che varia su simboli di predicato n-ario.
Formule: Una formula atomica è una formula;
Se u e v sono formule, allora anche ¬A, A∨ B, ∃x A, sono formule.
Forniamo ora una descrizione precisa della semantica dei linguaggi del primo ordine. Assegnare
un'interpretazione ad un linguaggio del primo ordine consiste nell'associare un universo ed un
significato del tipo appropriato ad ogni simbolo non logico. Scrivendo ciò in dettaglio, giungiamo alla
seguente definizione.
Sia L un linguaggio del primo ordine: Una struttura A per L consiste di:
1) Un insieme non vuoto |A| detto universo di A. Gli elementi di A sono chiamati gli individui di A.
2) Per ogni simbolo di funzione n-aria f di L, una funzione n-aria fA da |A| ad |A|. (In particolare, per
ogni costante e di L, eA è un individuo di A.)
3)Per ogni simbolo di predicato n-ario p di L diverso da =, un predicato n-ario pA in |A|.
Vogliamo definire una formula a come valida in A se tutti i significati di A sono veri in A. E' quindi
conveniente per ogni significato disporre di una formula che esprima esattamente quel significato. Dato
che il significato di A è funzione del significato dei suoi componenti , cominciamo con lo stabilire la
denotazione (il significato) delle variabili.
Se a è un termine chiuso:
o è un nome - A(a) è l'individuo di cui a è nome
o è f (a1,...,an) con f simbolo di funzione di L - A(a) è fA(A(a1),...,(an)) (Sarebbe come dire che
l'interpretazione della funzione del nome a è funzione dell'interpretazione dell'individuo A(a)).
Una formula A è chiusa se nessuna variabile è libera in A (Vale a dire che A ha esattamente un
significato). Definiremo ora un valore di verità A(A) per ogni formula chiusa A in L(A) - Definizione
per induzione sulla lunghezza di A - .
Fino ad ora abbiamo cosiderato alcuni elementi della logica predicativa che, come già visto, studia le
condizioni di correttezza formale di rapporti tra enunciati costruiti secondo lo schema della
predicazione e concatenati mediante l'uso di connettivi; agli enunciati così formati spetta un valore di
verità che è funzione del significato di ogni singolo elemento.
Esiste un livello di analisi delle proposizioni che potremmo ritenere più superficiale, in cui non è
necessario controllare il contenuto di ciascuna formula atomica per stabilire il significato di un intero
enunciato; nella logica enunciativa infatti, il valore di verità delle formule composte viene determinato
solo dall'uso dei connettivi, essendo tale valore di verità funzione del valore di verità delle formule
componenti, noto a prescindere da ogni ulteriore indagine.
Ad es. per sapere se A∧B è vero, mi basta sapere che sia A che B sono veri.
L'attribuzione del significato di una formula date più formule atomiche è regolata dalle
seguentifunzioni di verità (da valori di verità a valori di verità):
H¬A = V sse A=F
H∧(A,B) = V sse A=V e B=V
H∨(A,B) = F sse A=F e B=F (Uso inclusivo di "o" corrispondente al
latino "vel" )
H→(A,B) = F sse A=V e B=F (L'implicazione è vera anche se l'antecedente è falso poichè se
una condizione non si verifica non si può dire che non sia stata rispettata)
Una teoria del primo ordine (in cui la quantificazione concerne solo le variabili) è un sistema formale
costituito da:
1) Un linguaggio del primo ordine
2) Assiomi logici e non logici (cioè riguardanti la teoria specifica)
3) Regole di deduzione
Nel corso delle prossime dimostrazioni impiegheremo i seguenti assiomi e le seguenti regole logiche:
Assioma proposizionale: ¬A∨A
Assioma di sostituzione: Ax[a]→∃xA
Assioma di identità: x=x
Assioma di uguaglianza:
x1=y1→...→xn=yn→f(x1...xn) =f(y1...yn) o
x1=y1→...→xn=yn→f(x1...xn) →f(y1...yn)
Regola di espansione: A/B∨A
Regola di contrazione: A∨A/A
Regola associativa: A∨(B∨C)/(A∨B)
Regola del taglio: A∨B, ¬A∨C/B∨C
Regola di ∃-introduzione: Se x non è libera in B,
inferire ∃x(A→B) da A→B
Diciamo che A è una conseguenza logica di un insieme Γ di formule se A è valida in ogni struttura per
L in cui tutte le formule di Γ sono valide.
Per modello di una teoria T intendiamo una struttura per L(T) in cui tutti gli assiomi non logici di T
siano validi. Una formula è valida in T se è valida in ogni modello di T; in forma equivalente, se essa è
conseguenza logica degli assiomi non logici di T.
Nel corso di questo capitolo supporremo fissata una teoria T ed esamineremo alcuni dei teoremi
che possono essere dimostrati in T.
Nel prossimo capitolo dimostreremo che se B è conseguenza logica di A1...An se A1...An sono
teoremi, allora B è un teorema. In questo paragrafo dimostreremo un caso particolare di questo
risultato. In prima approssimazione, questo è il caso in cui B risulta essere conseguenza di A1 ,...., A n
in base soltanto alle regole che permettono di computare il valore di verità di ∼ C e C∨D dai valori di
verità di C e D.
Una formula è elementare se è una formula atomica o una esistenzializzazione. Una valutazione
di verità per T è una rappresentazione dall'insieme delle formule elementari di T all'insieme dei valori
di verità.
Sia V una valutazione di verità per T. Definiremo un valore di verità V(A) per ogni formula A di
T per induzione sulla lunghezza di A. Se A è elementare, allora V(A) è già definita. Se A è ∼ B, allora
V(A)= H ∼ (V(B)). Se A è B∨C, allora V(A)=H∨(V(B),V(C)). Da questa definizione e dalla definizione
di →, ∧ e ↔, vediamo che V(B→C) = H→(V(B), V(C)) e in modo simile per ∧ e ↔. Inoltre,
V(A1 ∨...∨ An) = V sse V(Ai) = V per almeno un i,
e
V(A1 ∨...∨ An) = V sse V(Ai) = V per ogni i,
Diciamo che B è conseguenza tautologica di A1,...An se V(B)=V per ogni valutazione di verità
V tale che V(Ai)=...=V(An)=V Una formula A è una tautologia se essa è conseguenza tautologica della
sequenza vuota di formule, cioè se V(A)=V per ogni valutazione di verità V. E' facile vedere che B è
conseguenza tautologica di A1,...,An sse A1→...→An→B è una tautologia.
Dimostreremo ora che, date A1,...,An, B, possiamo determinare in un numero finito di passi se
B è o non è conseguenza tautologica di A1,...,An. Per l'asserzione finale del capoverso precedente, sarà
sufficiente dimostrare che, data A, possiamo determinare se A è o non è una tautologia. Mostreremo
come determinare se A1 ∨...∨ An è una tautologia, usando un'induzione sulla somma delle lunghezze
delle Ai; il risultato precedente è allora ottenuto prendendo n=1.
Supponiamo dapprima che ogni Ai sia elementare o sia la negazione di una formula elementare.
Mostriamo che A1 ∨...∨ An è una tautologia sse qualche Aj è la negazione di qualche Ai. Se questa
condizione vale, allora per ogni valutazione di verità V, o V(Ai)=Vo V(Aj)=V; così V(A1 ∨...∨ An)
=V
Supponiamo che la condizione non valga. Definiamo una valutazione di verità V ponendo
V(A)= V sse ∼ A è un Ai. E' facile vedere che V(Ai)=F per ogni i; così V(A1 ∨...∨ An) =F.
Supponiamo che qualche Ai non sia né elementare né la negazione di una formula elementare.
Dato che
V(A1 ∨...∨ An) = V(A1 ∨...∨ An∨ A1 ∨...∨ Ai-1)
per ogni valutazione di verità V, A1 ∨...∨ An è una tautologia sse
A1 ∨...∨ An∨A1 ∨...∨ Ai-1
è una tautologia. Possiamo quindi supporre senz'altro che A1 non sia né elementare né la negazione di
una formula elementare. Allora A1 è o una disgiunzione o una negazione; e, nel secondo caso, A1 è o
la negazione di una negazione o la negazione di una disgiunzione.
Supponiamo che A1 sia B∨C. Dato che
V(A1 ∨...∨ An) = V(B∨C∨A2∨...∨An)
per ogni valutazione di verità V, A1 ∨...∨ An è una tautologia sse
B∨C∨A2∨...∨An
è una tautologia. Quindi è sufficiente determinare se B∨C∨A2∨...∨An è una tautologia; e questo può
essere fatto per ipotesi d'induzione.
Supponiamo che A1 sia ∼∼B. Allora per ogni valutazione di verità V, V(A1)=V(B) e quindi
V(A1 ∨...∨ An) = V(B∨A2∨...∨An). Ne segue che è sufficiente determinare se B∨A2∨...∨An è una
tautologia; e questo può essere fatto per ipotesi d'induzione.
Supponiamo che A1 sia ∼( B∨C). Allora per ogni valutazione di verità V,
V(A1)= V sse V(∼B) = V(∼C)=V
così
V(A1 ∨...∨ An) = V
sse
V(∼B∨A2∨...∨ An) = V(∼C∨A2∨...∨ An)=V.
Quindi è sufficiente determinare se
∼B∨A2∨...∨ An e ∼C∨A2∨...∨ An
sono tautologie; e questo può essere fatto per ipotesi d'induzione.
Veniamo ora al risultato fondamentale di questo paragrafo.
B. 1
Teorema della tautologia (Post) Se B è conseguenza tautologica di A1...An, e A1,...,
An, alloraB.
Supponiamo ora che qualche Ai non sia né elementare né la negazione di una formula
elementare. Per (A),
A1 ∨...∨ An sse A1 ∨...∨ An∨A1∨...∨ Ai-1
Quindi come nel metodo descritto sopra, possiamo supporre che A1 non sia né elementare né la
negazione di una formula elementare. Come sopra si hanno tre casi.
Supponiamo che A1 sia B∨ C. Allora B∨C∨A2∨...∨An è una tautologia e quindi, per ipotesi
d'induzione, un teorema. Quindi A1∨...∨An per la regola associativa.
Supponiamo che A1 sia ∼ ∼B. Allora B∨A2∨...∨An è una tautologia e quindi, per ipotesi
d'induzione, un teorema. Otteniamo allora A1∨...∨An da β) Se A∨ B, allora ∼ ∼A∨ B.
Infine, supponiamo che A1 sia ∼(B∨C). Allora
B∨A2∨...∨An e ∼C∨A2∨...∨An
sono tautologie e quindi, per ipotesi d'induzione, teoremi. Otteniamo allora A1∨...∨An da
γ) Se ∼ A∨ C e ∼ B∨ C allora ∼ (A∨ B)∨ C
Quando stabiliamo che una formula è conseguenza tautologica di altre formule o che una
formula è una tautologia, lasciamo in generale la dimostrazione al lettore. Di solito la prova indiretta è
la più veloce. Così, per dimostrare che A∧B→A è una tautologia, assumiamo che vi sia una
valutazione di verità V tale che V(A∧B→A)=F. Allora V(A∧B)= ∨ e V(A)=F. Dalla prima si ha V(A)=
V(B)= ∨ . Dato che abbiamo due valori diversi per V(A), abbiamo una contraddizione. Con un po' di
esperienza, il lettore si convincerà del fatto che ogniqualvolta è possibile stabilire che B è vera (o è
conseguenza di A1 ∨...∨ An) utilizzando soltanto il significato di ∼,∨,→,Λ,↔, allora B è una
tautologia (o conseguenza tautologica di A1 ∨...∨ An).
Osservazione. Supponiamo di aver associato ad ogni formula A una formula A* in modo tale
che (∼A)* sia ∼A* e (A∨B)* sia A*∨B*. Se B è conseguenza tautologica di A1 ∨...∨ An, allora B* è
conseguenza tautologica di A1* ∨...∨ An*. Per vedere ciò, supponiamo che V sia una valutazione di
verità: definiamo una nuova valutazione di verità V' ponendo V'(A)=V(A*) per A elementare. E' allora
facile verificare che V'(A)=V(A*) per ogni formula A. Quindi se
V'(A*1)=V(A*n)= ∨
allora
V'(A1)=...=V(An)= ∨;
così V'(B)=∨ e quindi V'(B*)= ∨
Elenchiamo qualche applicazione del teorema della tautologia usata frequentemente (oltre alla
regola del Modus ponens):
1) Se A↔B, allora A sseB.
2) Se A →B e B →C, allora A →C
3) Se A ↔B e B ↔C, allora A↔ C
4) Se A ∧B sse A e B
5) Se A ↔B sse A →B e B →A
6) Se A →B sse ∼B→∼ A
Inoltre, il teorema della tautologia può essere usato al posto delle applicazioni degli assiomi
proposizionali e delle regole di espansione, di contrazione, associativa e del taglio. Detto in altre
parole, possiamo definire i teoremi di T mediante la definizione induttiva generalizzata:
1) ogni assioma di sostituzione, assioma d'identità, assioma di uguaglianza e assiome non logico è
teorema;
2) se A1,...,An (n≥0) sono teoremi e B è conseguenza tautologica di A1,...,An, allora B è un teorema;
3) se A è un teorema e B può essere inferita da A mediante la regola di ∋-introduzione, allora B è un
teorema.
Questo ci dà un metodo di dimostrazione per induzione che chiamiamo pure induzione sui
teoremi. Questo metodo ci permette di dimostrare che ogni teorema gode della proprietà P
dimostrando:
1) ogni assioma di sostituzione, assioma d'identità, assioma di uguaglianza e assioma non logico ha la
proprietà P;
2) se A1,...,An hanno la proprietà P e B è conseguenza tautologica di A1,...,An, allora B ha la proprietà
P;
3) se A ha la proprietà P e B può essere inferita da A mediante la regola di ∋-introduzione, allora B ha
la proprietà P.
Teorema di sostituzione
a) ,...,[a1,...,an]→∃x1...∃xnA.
b) ,...,A→,...,[a1,...,an].
Dimostrazione. Dagli assiomi di sostituzione
C→∃xC [1]
e ∼C→∃x∼C. Dal secondo per il teorema della tautologia e la definizione di ∀,
∀xC→C. [2]
Da [1]
∃xi+1...∃xnA→∃xi∃xi+1...∃xnA
per i=1,...,n. Da questi per il teorema della tautologia otteniamo A→∃x1...∃xnA; e da questo per la
regola di sostituzione otteniamo (a). In modo analogo, possiamo usare (2) per
ottenere∀xi...∀xnA→A e quindi (b) per la regola di sostituzione.
Il teorema di deduzione
Se un matematico vuole dimostrare un'asserzione se P, allora Q, generalmente dimostrerà Q
assumendo P come ipotesi. Dimostreremo che c'è un metodo simile per dimostrare teoremi nelle teorie.
Indichiamo con T[A1,...,An] la teoria ottenuta da T aggiungendo A1,...,An come nuovi assiomi
non logici. Per le teorie, il metodo analogo a quello visto sopra è allora il seguente: se vogliamo
dimostrare A→in T, proviamo a dimostrare B in T[A]. Dimostreremo che, se vi riusciamo e A è chiusa,
allora A→B è proprio un teorema di T.
Teorema di deduzione: Sia A una formula chiusa di T. Per ogni formula B di T, TA→B
sse B è un teorema di T[A].
Dimostrazione. Se TA→B, allora A e A→B sono teoremi di T[A]; così B è un teorema di
T[A] per Modus ponens. Dimostriamo ora che TA→B per ogni teorema B di T[A], usando
l'induzione sui teoremi (nella forma del paragrafo 3.1).
Supponiamo che B sia un assioma di T[A]. Se B è A, allora A→B è una tautologia e quindi un
teorema di T. Altrimenti B è un assioma di T; così TB e quindi TA→B per il teorema della
tautologia.
Supponiamo che B sia conseguenza di C1,...Cn. Allora A→B è conseguenza tautologica di
A→C1,..., A→Cn. Per ipotesi d'induzione TA→ C1,...,TA→ Cn e quindi TA→ B per il teorema
della tautologia.
Supponiamo che B sia inferita mediante la regola di ∃-introduzione, cioè che B sia ∃xC→D e
sia inferita da C→D, dove x non è libera in D. Per ipotesi d'induzione TA→ C→ D, quindi per il
teorema della tautologia TC→ A → D. Dato che x non è libera in A o in D, T∃xC→ A→D per la
regola di ∃-introduzione, quindi TA→ B per il teorema della tautologia.
Corollario Siano A1,...,An formule chiuse in T. Per ogni formula B in T, TA1→ ... →
An→ B sse B è un teorema di T [ A1,...,An ].
Dimostrazione. Per induzione su n.
Il teorema di deduzione non vale se non si richiede che A sia chiusa. Infatti se aggiungiamo x=0
come assioma a N, possiamo dimostrare y=0 mediante la regola di sostituzione. Ma x=0→Y=0 non è
un teorema di N dato che non è valido sul modello N. Per aggirare questa difficoltà, dimostriamo un
teorema che ci consente di rimpiazzare A→B con una implicazione avente la premessa chiusa.
Teorema sulle costanti Sia T' la teoria ottenuta da T aggiungendo nuove costanti (ma non
nuovi assiomi non logici). Per ogni formula A di T e ogni sequenza e1,...,en di nuove costanti, TA
sse TA[ e1,...,en ].
Dimostrazione. Se TA, allora T'A; così TA[ e1,...,en ].
Scegliamo n variabili y1,...,yn non occorrenti nella dimostrazione o in A e rimpiazziamo e1,...,en nella
dimostrazione con y1,...,yn. Ciò non tocca agli assiomi non logici (che non contengono alcuna delle
nuove costanti). E' facile vedere che ogni altro assioma diviene un assioma dello stesso tipo, e che ogni
applicazione di una regola diviene una nuova applicazione della stessa regola. Ne segue che otteniamo
una dimostrazione in T di A [y1,...,yn]. Così
TA[y1,...,yn];
e quindi TA per la regola di sostituzione.
Torniamo ora al problema di dimostrare A→B in T. Siano x1,...,xn le variabili libere in A.
Formiamo T' a partire da T aggiungendo n nuove costanti e1,...,en
Per il teorema sulle costanti
TA→B sse T'A[e1,...,en]→B[e1,...,en]
Dato che A[e1,...,en] è chiusa, in base al teorema di deduzione è sufficiente dimostrare B[e1,...,en] in T'
[A[e1,...,en]]
Teorema di uguaglianza Sia b' ottenuto da b sostituendo qualche occorrenza di a1,...,an che
non segua immediatamente il simbolo di quantificatore con a'1,...,a'n rispettivamente, e sia A' ottenuta
da A con lo stesso genere di sostituzioni. Se a1= a'1...an=a'n, allora b= b' e A↔A'.
Dimostrazione. Dimostriamo prima che b= b'. Se la sola occorrenza sostituita è l'intero b,
allora per qualche i, b è ai e b' è a'i, quindi b= b' per ipotesi. Escludiamo ora questo caso particolare
e procediamo per induzione sulla lunghezza di b. Se b è una variabile, allora nessuna occorrenza può
essere rimpiazzata (dato che il caso particolare è stato escluso). Quindi b' e b e b= b' per gli assiomi
d'identità e la regola di sostituzione. Supponiamo ora che b sia fc1...ck. Allora b' è fc'1...c'k, dove
ci= c'i per i=l,...,k per ipotesi d'induzione. Per gli assiomi di uguaglianza e la regola di sostituzione,
c1= c'1→...→ck=c'k→b=b',
quindi b= b' per la regola del Modus ponens.
Dimostriamo ora che A↔A' per induzione sulla lunghezza di A. Se A è una formula atomica
pc1...ck, allora A' è pc'1...c'k, dove ci= c'i per i=1,...,k per la prima parte della dimostrazione. Per il
teorema di simmetria, ci= c'i per i=1,...,k.
Per gli assiomi di uguaglianza e la regola di sostituzione,
c1= c'1→...→ck=c'k→A→A'
e
c'1= c1→...→c'k=ck→A'→A.
Quindi A↔A' per il teorema della tautologia. I casi rimanenti sono trattati come nella dimostrazione
del teorema di equivalenza.
Corollario 1 a1= a'1→...→an=a'n→b[a1,...,an]= b[a'1,...,a'n].
Dimostrazione. Rimpiazziamo ogni variabile occorrente in un ai o un a'i con una costante nuova.
Supponiamo che ai, a'i, e b diventino ci, c'i e d. Il risultato da dimostrare diviene
c1= c'1→...→cn=c'n→d[c1,...,cn]= d[c'1,...,c'n].
In base ai risultati dell'ultimo paragrafo, è sufficiente aggiungere ci=c'i come assiomi e
dimostrare d[c1,...,cn]= d[c'1,...,c'n]. Questo si può ottenere dal teorema.
Corollario 2 a1= a'1→...→an=a'n→(A[a1,...,an]↔A[a'1,...,a'n].
Dimostrazione. Come quella del corollario 1.
Indicheremo le applicazioni sia del teorema che dei due corollari semplicemente come applicazioni del
teorema di uguaglianza.
Corollario 3 Se x non occorre in a, allora
Ax[a] ↔∃x(x=a ∧A).
Dimostrazione. Per il teorema di uguaglianza x=a→(A↔Ax[a]); quindi per il teorema della
tautologia e la regola di ∃-introduzione,
∃x(x=a ∧A)→ Ax[a]. [2]
Per il teorema di sostituzione,
(a=a ∧Ax[a])→∃x(x=a ∧A). [3]
Per gli assiomi d'identità e la regola di sostituzione,
a=a. [4]
Il corollario segue da [2],[3] e [4] per il teorema della tautologia.
Forme prenesse
Dimostreremo ora che ogni formula è equivalente a una formula di una certa forma particolare.
Una formula è aperta se non contiene quantificatori. Una formula A è in forma prenessa se ha la
forma Qx1...QxnB, dove ogni Qx1è o ∃xi o ∀xi; x1,...,xn sono distinte e B è aperta. Chiamiamo
Qx1...Qxn il prefisso e B la matrice di A. Si ammette che il prefisso sia vuoto e quindi una formula
aperta è in forma prenessa.
La nostra definizione di forma prenessa coinvolge il simbolo definitivo ∀.
Introduciamo ora alcune operazioni, dette operazioni prenesse; sono operazioni che possono essere
eseguite su una formula A contenente, eventualmente, il simbolo definitivo ∀; il risultato
dell'operazione è un'altra formula del genere. Le operazioni prenesse sono:
a) Rimpiazzare A con una variante.
b) Rimpiazzare una parte ∼QxB di A con Q'x∼B, dove Q'x è ∀x se Qx è ∃x, e Q'x è ∃x se Q x è
∀x.
c) Rimpiazzare una parte QxBνC di A con Qx(BνC), purché x non sia libera in C.
d) Rimpiazzare una parte di BνQxC di A con Qx(BνC), purché x non sia libera in B.
Dimostreremo per prima cosa che se A' è ottenuta da A mediante un'operazione prenessa, allora
A↔A'. Per (a), ciò segue dal teorema della variante. Per (b) è sufficiente, tenendo conto del teorema
di equivalenza, dimostrare che ∼QxB↔Q'x∼B. Così dobbiamo dimostrare che
∼∃xB↔∀x∼B e ∼∀xB↔∃x∼B
sono teoremi. Se eliminiamo ∀, questi divengono
∼∃xB↔∼∃x∼∼B e ∼∼∃x∼B↔∃x∼B
entrambi seguono dal teorema di equivalenza e dal teorema della tautologia.
Per il caso (c), ' sufficiente dimostrare che QxB∨C↔Qx(B∨C). Questo seguirà dal teorema
della tautologia se dimostriamo
QxB→Qx(B∨C). [1]
C→Qx(B∨C). [2]
Qx(B∨C) →QxB∨C [3]
Otteniamo [1] dalla tautologia B→B∨C per la regola di distribuzione. Se Qx è ∃x, otteniamo [2]
dall'assioma di sostituzione B∨C→∃x(B∨C) con il teorema della tautologia. Se Qx è ∀x, otteniamo
[2] dalla tautologia C→B∨C, per la regola di ∀-introduzione. Ora, dall'assioma di sostituzione
B→∃xB, otteniamo B∨C→∃xB∨C per il teorema della tautologia e quindi ∃x(B∨C) →∃xB∨C
per la regola di ∃-introduzione. Questo è [3] quando Qx è ∃x. Per il teorema di sostituzione
∀x(B∨C) →B∨C, quindi per il teorema della tautologia e la regola di ∀-introduzione,
∀x(B∨C)Λ∼C→∀xB
Da questo e dal teorema della tautologia, ∀x(B∨C)→∀xB∨C, che è [3] quando Qx è ∀x.
Per il caso (d), è sufficiente dimostrare che B∨QxC↔Qx (B∨C) se x non è libera in B. Dal
caso precedente, QxC∨B↔Qx (C∨B) e il risultato desiderato segue dal teorema di equivalenza e dal
teorema della tautologia.
Dimostriamo ora che ogni formula può essere trasformata in una formula in forma prenessa
mediante applicazioni delle operazioni prenesse. La dimostrazione è per induzione sulla lunghezza di
A. Se A è atomica, allora è già in forma prenessa. Supponiamo che A sia∼B: per ipotesi d'induzione
possiamo trasformare B in una formula B' in forma prenessa, per mezzo di operazioni prenesse. Le
stesse operazioni trasformano A in ∼B'. Ma evidentemente ∼B' può essere trasformata in una formula in
forma prenessa mediante applicazioni successive all'operazione (b).
Supponiamo ora che A sia B∨C. Per ipotesi d'induzione possiamo trasformare B e C in formule
B' e C' in forma prenessa. Per l'operazione (a) possiamo inoltre supporre che le variabili del prefisso di
B' siano distinte dalle variabili del prefisso di C' e che le variabili di entrambi i prefissi siano distinte
dalle variabili libere in B' e C'. Possiamo allora trasformare A in B'∨C' e mediante le operazioni (c) e
(d) possiamo trasformare B'∨C' in una formula in forma prenessa.
Supponiamo infine che A sia QxB. Possiamo trasformare B in una formula B' in forma prenessa e
possiamo supporre che le variabili nel prefisso di B' siano distinte da x. Allora A può essere trasformata
in QxB' che è forma prenessa.
Per una forma prenessa di A intendiamo una formula in forma prenessa in cui A può essere
trasformata per mezzo di operazioni prenesse. Abbiamo appena visto che ogni formula ha una prenessa
e che, se A' è una forma prenessa di A, allora A↔A'. E' opportuno osservare che le operazioni
prenesse sono indipendenti dalla teoria in cui stiamo operando.
Il nostro metodo per ottenere una forma prenessa di A ci richiede di eliminare i simboli definitivi
diversi da ∀. Possiamo fare a meno di eliminare → e Λ introducendo anche le seguenti operazioni
prenesse:
e) Rimpiazzare una parte QxB→C di A con Q'x(B→C), dove Q'x è come in (b) purché x non sia
libera in C.
f) Rimpiazzare una parte B→QxC di A con Qx(B→C) purché x non sia libera in B.
g) Rimpiazzare una parte QxBΛC di A con Qx(BΛC) purché x non sia libera in C.
h) Rimpiazzare una parte BΛQxC di A con Qx(BΛC) purché x non sia libera in B.
Si vede, come si è fatto sopra, che queste operazioni sono sufficienti per trasformare ogni formula
contenente → e Λ in forma prenessa. Per vedere che la formula che si è ottenuta con queste operazioni
è equivalente alla formula sulla quale si è operato, si osservi che ogni operazione, con l'eliminazione
del simbolo definitivo, diviene una successione di operazioni (b), (c) e (d). Per esempio, supponiamo di
usare (e) per trasformare ∃xB→C in ∀x(B→C). Dopo l'eliminazione di → vediamo che abbiamo
trasformato ∼∃xBνC in ∀x(∼BνC). Questo può essere fatto applicando prima (b) e quindi (c). Non
possiamo ottenere regole del genere per ↔: se eliminiamo ↔ e applichiamo (a) a causa di (h) vediamo
che non possiamo reintrodurre il ↔.
Concludiamo con un esempio dei passi di trasformazione di una formula di N in forma prenessa:
∃x(x=y)→∃x(x=0ν∼∃y(y〈0)).
∃x(x=y)→∃z(z=0ν∼∃w(w〈0)).
∃x(x=y)→∃z(z=0ν∼∀w(w〈0)).
∃x(x=y)→∃z∀w (z=0ν∼ (w〈0)).
∀x∃x∀w (x=y→z=0ν∼(w〈0)).
C) Il teorema di completezza
Supponiamo che se |= allora non |- A; allora per il lemma che segue, T[¬A] (cioè la teoria T avente "¬
A" come assioma non logico) è coerente. Per il T. di completezza nella versione che supponiamo
dimostrata, T[¬ A] avrà un modello, ma ciò è palesemente in contrasto col fatto che anche T[A] ha un
modello (essendo per ipotesi |= A)
Strutture canoniche
In questo paragrafo Γ sarà sempre un insieme coerente di enunciati in un linguaggio L che contenga
termini chiusi (ciò equivale a supporre che L contenga almeno un simbolo costante). Possiamo
associare a Γ una struttura A, detta struttura canonica, il cui dominio è costituito da classi di
equivalenza di termini chiusi di L e dimostrare che gli enunciati atomici veri in A sono esattamente gli
enunciati atomici derivabili da Γ. Ciò che ci preme ora sottolineare è l'universalità della costruzione
della struttura canonica, il fatto cioè che sia disponibile per ogni insieme coerente di formule, e il ruolo
che gioca il linguaggio in questa costruzione, fornendo gli elementi del dominio. La struttura che
costruiremo non sarà immediatamente un modello di Γ, a meno che quest'ultimo consti solo di
enunciati atomici, ma si vedrà in seguito che proprio nell'ambito delle strutture canoniche saremo in
grado di trovare un modello di Γ completando così la dimostrazione del teorema di completezza.
Indichiamo con D l'insieme dei termini chiusi di L e definiamo su di esso una relazione binaria E
ponendo
E (t0,t1) sse Γ t0=t1
Dimostriamo che E è una relazione di equivalenza. Vale E(t,t), perché dall'assioma x=x di Eq si ricava
t=t per il teorema di sostituzione. Vale E(t,s) implica E(s,t), perché dall'assioma x=y→y=x di Eq si
ricava Γ t=s→s=t. Quindi, se Γ t=s allora Γ s=t. Vale inoltre E(t,s) e E(s,q) implica E(t,q). Infatti
l'assioma dell'identità x=y→y=z→x=z si ricava Γ t=s→s=q→t=q. Quindi, se Γ t=s e Γ s=q allora
Γ s=q.
Poiché E è una relazione di equivalenza, possiamo ottenere l'insieme quoziente A=D/E, vale a
dire
A = t: t ε D
dove t= s : E(t,s), s ε D. L'insieme A costituirà il dominio della struttura canonica. Definiamo ora la
struttura canonica A stabilendo la seguente interpretazione di L: per ogni simbolo costante c, ogni
simbolo di funzione n-ario F, ogni simbolo di relazione n-ario P,
A
1. c = c
2. FA= (t ,...,tn-1)=F(t0,...,tn-1)
0
A
3. P = (t ,...,tn-1)sseΓP(t0,...,tn-1).
0
A
Occorre verificare che la definizione di F è corretta, ossia che non dipende dai rappresentanti t ,...,tn-
0
1 delle classi di equivalenza t0,...,tn-1. Dimostriamo che se scegliessimo dei rappresentanti
diversi s0,...,sn-1 per le medesime classi, ossia se valesse
ti=si, per i <n
A
questo non influirebbe sul risultato dell'operazione F , perché si avrebbe FA= (t ,...,tn-1)=
0
A
F (s ,...,sn-1).
0
Infatti, da ti=si si ricava E(ti,si) e quindi Γ ti=si. Dall'assioma xo=yo→...→xo-1=yn-
1→F(xo,...,xn-1)=F(yo,...,yn-1) di Eq otteniamo ΓF(t0,...,tn1)=F(s0,...,sn-1) usando il teorema di
sostituzione. Quindi vale E(F(t0,...,tn-1),F(s0,...,sn-1)) da cui F(t0,...,tn-1)=F(s0,...,sn-1). Per
A
le medesime ragioni occorre verificare l'indipendenza della definizione di P dai rappresentanti delle
classi. Si procede in modo analogo utilizzando l'assioma
x =yo→...→xn-1=yn-1→(P(xo,...,xn-1)↔P(yo,...,yn-1))
o
di Eq. La verifica è lasciata al lettore. Ciò completa la definizione della struttura canonica.
Dimostriamo ora il seguente lemma concernente la denotazione dei termini chiusi.
Lemma Per ogni termine chiuso t di L
Se t=c, il lemma vale per definizione di struttura canonica. Supponiamo che sia t= F(t0,...,tn-1),
abbiamo allora
A A
F(t0,...,tn-1) = FA(tA ,...,t )
0 n-1
A
= F (t ,...,tn-1)
0
= F(t0,...,tn-1)
A questo punto possiamo dimostrare facilmente che gli enunciati atomici veri in A coincidono coi
teoremi di Γ.
Teorema Se Γ è un insieme di enunciati coerente, completo e di Henkin, allora, per ogni enunciato α,
A α sse Γα
dove A è la struttura canonica relativa a Γ.
La dimostrazione è per induzione sugli enunciati. Se α è un enunciato atomico l'asserto coincide
con il teorema precedente.
Supponiamo che α sia β. Allora A β equivale a A ¬ β che a sua volta, per ipotesi
induttiva, equivale a Γ ¬β. A questo punto, Γ ¬β implica Γβ per completezza, mentre Γβ
implica Γ¬β per coerenza.
Supponiamo che α sia β→γ. Allora
Aβ→γ sse A ¬ β o Aγ
sse Γ ¬β o Γγ
per ipotesi induttiva. Per la completezza di Γ, da Γ ¬β oppure Γγ segue Γβ→γ. Infatti, se
Γ ¬β, per completezza Γβ e quindi Γβ→γ per la tautologia β→β→γ. Se invece Γγ, allora
lo stesso risultato si ottiene con la tautologia γ→β→γ. Viceversa, se Γ deriva β→γ, o Γ ¬β,
altrimenti, per MP, se Γβ dalla nostra ipotesi si ricava Γγ.
ω
Supponiamo che α sia ∀viβ. Allora, per ogni s ∈ A e ogni t ∈ D,
A∀v β [s] sse Aβ [s(i/t)]
i
sse Aβ (vi/t) [s]
sse Aβ (vi/t)
sse Γβ (vi/t).
Per il lemma precedente esiste un c tale che
Γβ (vi/c) →∀xβ
Se Γ dimostra β (t) per ogni termine chiuso t, in particolare dimostrerà anche β (c) e quindi ∀xβ.
Viceversa, se Γ dimostra ∀∃xα→α(allora per l'assioma di sostituzione Γ dimostra β (t) per ogni
termine chiuso t.
Lemma di Lindembaum
Estensione di Γ ad un insieme coerente e completo.
Una qualunque teoria Γ ammette almeno un'estensione sintatticamente completa. Infatti:
Siano A1,...,Am le formule chiuse di una teoria, alcune saranno teoremi ed altre no. Considero una
successione transfinita numerabile di teorie Γn, ed assumendo Γ0 come teoria di partenza, controllo ad
ogni passo se nella teoria precedente sia o meno teorema la formula ¬ Ai+1.
- Se Ai+1 non è teorema, allora definisco Γi+i come quella teoria che si ottiene aggiungendo a Γi come
ulteriore assioma specifico la formula Ai+1
- Se Ai+1 è teorema in Γi, allora dirò che Γi+i è esattamente Γi:
Γi+1= Γi [Ai+1] se ¬ Γi ¬ Ai+1
Γi+1= Γi se Γi ¬ Ai+1
La riunione infinitaria Γ' delle Γn è completa per costruzione, resta da dimostrare che conserva la
coerenza:
a) Si dimostra che se ciascuna delle Γi è coerente, allora anche Γ' sarà coerente. Supponiamo infatti che
non lo sia e che si abbia Γ' A∧¬A: ciò comporta che almeno una delle Γi fosse incoerente, ma ciò
contrasta con l'ipotesi.
b) Ciascuna delle Γi è coerente: Dimostrazione per induzione sulle teorie:
Base: Γ0 è coerente per definizione.
Passo: Se Γi+1= Γi non vi è nulla da dimostrare
Se Γi+1= Γi[Ai+1], ¬ Γi ¬ Ai+1, allora Γi[Ai+1] per quanto segue.
(Risultato già dimostrato nel passaggio dalla formulazione di Goedel a quella di Henkin)
Teorie di Henkin
Estensione di Γ ad un insieme coerente e di Henkin
Ci proponiamo ora di ricavare da Γ una teoria "ricca", una teoria in cui per ogni esistenzializzazione è
assioma Γ∃xα→α(x/c); allo scopo introduciamo una serie di costanti dette costanti speciali, e
aggiungiamo contestualmente detto assioma per ognuna di esse. La teoria così ottenuta non è ancora
ricca, perchè gli assiomi introdotti contengono a loro volta delle esistenzializzazioni in corrispondenza
delle quali non ho ancora provveduto ad alcun "arricchimento"; vado allora a considerare la riunione
infinitaria di tutte le Γi
Dato un linguaggio del primo ordine L, definiamo la successione
Lii∈ω di linguaggi come segue. Per ogni i, indicheremo con Ei l'insieme degli enunciati esistenziali di
Li, ossia quelli di tipo ∃xα. Poniamo Lo =L. Supponendo di averlo definito Li, introduciamo un
insieme di costanti nuove
Ci = c∃xα: ∃xα ∈Ei - Ei-1,
tranne nel caso di i=0 dove C0 = c∃xα: ∃xα ∈E0. Infine poniamo Li+1= Li∪Ci. La successione Lii∈ω
è quindi una catena e definiamo Lω=∪Lii∈ω. La scelta degli indici per le costanti assicura che se ∃xα
è diversa da ∃xβ, allora anche c∃xα sarà un simbolo diverso da c∃xβ. Inoltre, facendo variare ∃xα in Ei
- Ei-1 evitiamo che lo stesso enunciato ∃xα venga esemplificato con due costanti diverse in due passi
distinti della costruzione. Questo ci consente di pensare ogni costante nuova c∃xβ come <<la>>
costante che esemplifica ∃xα e il risultato è una biiezione tra le due costanti nuove di Lω e gli enunciati
esistenziali di Lω. Definiamo ora una successione Σii∈ω dove Σi è un insieme di enunciati di Li.
Poniamo Σ0 = 0 e
Σi+1=Σi∪∃xα→α( x/c∃xα):∃xα ∈ Ei - Ei-1
tranne nel caso di Σi dove si richiede ∃xα ∈ Eo. Allora anche i vari Σi formano una catena e quindi
poniamo Σω=∪Σii∈ω. Per ogni insieme Γ di enunciati di L, definiamo l'insieme ΓH = Γ∪Σω. Si noti
che Σω dipende da L e non da Γ.
Teorema ΓH è coerente
Dimostriamo che se ogni Γ∪Σi è coerente, allora anche Γ∪Σω è coerente. Infatti, se valesse
Γ∪Σωα∧α, allora esisterebbe un sottoinsieme finito ∆⊂Σω tale che ∆α∧α. Poiché Σω è
l'unione della catena Σii∈ω, vi sarebbe un k tale che ∆⊆Σk e allora avremmo Γ∪Σkα∧α contro
l'ipotesi.
Per dimostrare che ogni Γ∪Σi è coerente, basta osservare che Γ∪Σ0= Γ è coerente per ipotesi e
dimostrare che se Γ∪Σi è coerente anche Γ∪Σi+1 lo è. Infatti, se Γ∪Σi+1 fosse incoerente, avremmo
Γ∪Σi+1α∧α e quindi si avrebbero o0,...,on-1 in Σi+1-Σi tali che
Γ∪Σi∪ o0,...,on-1α∧α
Per il teorema di deduzione,
Γ∪Σi∪ o0,...,on-2 on-1→α∧α
e quindi, supponendo che on-1 sia ∃xα→α( x/c∃xα) e tenendo presente che l'equivalenza tra β→α∧α
e →β è una tautologia,
Γ∪Σi∪o0,...,on-2 (∃xα→α( x/c∃xα))
da cui, attraverso passaggi di logica enunciativa,
Γ∪Σi∪o0,...,on-2 ∃xα
e
Γ∪Σi∪o0,...,on-2 α( x/c∃xα).
Da quest'ultima, poiché la costante c∃xα non occorre né in Γ∪Σi né alcuna delle o0,...,on-2 né in α,
per il teorema xxx possiamo concludere
Γ∪Σi∪o0,...,on-2 α
Tenendo presente che da Γ∪Σi∪o0,...,on-2 abbiamo già ricavato ∃xα, con un'applicazione di GEN e
alcuni passaggi di logica proposizionale otteniamo
Γ∪Σi∪o0,...,on-2∃xα∧∀α
Ripetendo il processo n-1 volte potremmo derivare una contraddizione direttamente da Γ∪Σi, il che è
assurdo.
Possiamo quindi dimostrare il seguente teorema di importanza fondamentale, che conclude la
dimostrazione del teorema di completezza: