Sei sulla pagina 1di 45

UNIVERSIT DEGLI STUDI DI MILANO Dipartimento di Scienze dell'Informazione

Dispensa ad uso del corso di Logica Matematica

Introduzione alla Logica Elementare

Osservazione.

Questi appunti sono destinati ad un uso didattico in corsi di base per Rappresentano una versione rivista (a cura

studenti delle lauree triennali di classe Informatica. e semplicata della dispensa in formato elettronico

Corso Propedeutico di Logica

di M. Franchella, S. Ghilardi, L. Sacchetti) utilizzata no all'anno accademico 2005-06. Questi appunti trattano

esclusivamente la parte relativa ai tableaux per la logica elementare


L'appendice sulla dimostrazione del teorema

e contengono gi una suciente quantit di esercizi (svolti e non svolti); sul sito web del corso sono disponibili i temi d'esame.

di completezza riservata agli studenti che intendano sostenere la relativa prova orale

facoltativa.
La presente versione di questa dispensa porta la data data del

27 maggio 2008.

Indice

1 Preliminari insiemistici 2 Linguaggi elementari


2.1 2.2 Motivazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Segnature, Termini e Formule

3 4
4 7

La Semantica di Tarski
3.1 3.2 3.3 La Nozione di Struttura La Nozione di Verit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11
12 13 15

Teorie, Modelli e Conseguenza Logica . . . . . . . . . . . . . . . . . . . . .

4 Forme Normali Negative 5 Il Calcolo dei Tableaux


5.1 5.2 5.3 Ricerca di Refutazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ricerca di Modelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ulteriori Esempi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17 18
21 27 33

6 Per non sbagliare ... 7 Appendice: dimostrazione dei teoremi di validit e completezza

37 39

Preliminari insiemistici

Riassumiamo brevemente alcune nozioni di teoria ingenua degli insiemi, che dovrebbero essere note da corsi di base di materie matematiche. La nozione di

insieme

viene data per intuitiva e inanalizzata (in un corso specico

di teoria degli insiemi si vedr eventualmente qualche sistema assiomatico che la tratta in maniera pi rigorosa). Similmente, diamo per intuitiva la nozione di fra gli insiemi elemento di

funzione f : X Y
Y
(detto

Y:

la

viene genericamente denita come una `legge' che ad ogni

(detto insieme dominio) fa corrispondere uno ed un solo elemento di

insieme codominio). Raddoppiare un numero per esempio una funzione dall'insieme

dei numeri naturali in s. Considerare la madre, una funzione dall'insieme degli esseri umani nell'insieme degli esseri umani di sesso femminile. Invece, considerare i gli non una funzione dall'insieme degli esseri umani verso l'insieme degli esseri umani per ben due motivi: non tutti gli esseri umani hanno gli e non tutti ne hanno uno solo, sicch viene violato il tratto distintivo della nozione di funzione che, ripetiamo, consiste nell'essere una corrispondenza sempre denita e denita in modo univoco. La nozione di

prodotto cartesiano di n-insiemi X1 , . . . , Xn la seguente:


X1 Xn

il prodotto

cartesiano, che scriviamo con

l'insieme delle liste rispettivamente, ad

a1 , . . . , a n

di

elementi (dette

n-ple)

di elementi appartenenti,

X1 , X2 , . . . , Xn .

Cos ad esempio, l'insieme dei vestiti interi spezzati

il prodotto cartesiano dell'insieme delle giacche e dell'insieme dei pantaloni; un altro esempio fornito dai punti del piano che si possono identicare con le coppie di punti presi uno dalla retta delle ascisse e uno dalla retta delle ordinate. Quando

X1 , . . . , X n

concidono tutti con uno stesso insieme

X,

usiamo la notazione

Xn
con

per indicare il relativo prodotto cartesiano, detto anche Per

potenza n-esima dell'insieme X .


X0
di

n = 1, X 1

stesso; per

n = 0,

utile identicare la potenza 0-esima

l'insieme

1 denito

come un qualsiasi insieme con un elemento solo (1 chiamato `insieme

terminale' e, se si preferisce, lo si pu denire esplicitamente mediante che una funzione

1 := {}).

Si noti

c : 1 X
1 Questo

riassunto strettamente nalizzato ad introdurre nozioni che verranno utilizzate nei paragra

seguenti.
3

univocamente specicata una volta noto l'elemento

c() X ; X

quindi le funzioni

1 X

possono a buon diritto essere confuse con gli elementi di Un

stesso.

sottoinsieme di un insieme X
X.

un insieme composto da alcuni (magari nessuno,

magari tutti) degli elementi di L'insieme delle Ad esempio,

parti P (X )

di un insieme

l'insieme di tutti i sottoinsiemi di

X.

P (1)

consta dei due elementi

{}.

Ci torner utile identicare questi due sottoinsiemi con i due valori di verit, rispettivamente `falso' e `vero', che abbiamo gi incontrato studiando la logica proposizionale. Una (per

relazione n-aria su un insieme X


n-aria
su

un sottoinsieme della potenza

n-esima X

di

n = 1,

dunque, una relazione unaria semplicemente un sottoinsieme di

e, per

n = 0,

una relazione

un valore di verit). Ad esempio, la relazione `essere

amico di' la relazione che contiene le coppie di esseri umani che sono amici tra di loro; `essere minore di' l'ovvia relazione fra numeri naturali che tutti conosciamo (tale relazione conterr ad esempio le coppie

2, 3 , 12, 45 , . . . ,

ma non la coppia

3, 2

).

2
2.1

Linguaggi elementari
Motivazioni

Una delle applicazioni della logica lo studio della correttezza delle inferenze (ossia degli `schemi di ragionamento'). Ad esempio, l'inferenza Se piove, prendo l'ombrello. Non prendo l'ombrello. Quindi non piove. corretta. Per provarlo, associamo all'enunciato `Piove' la lettera proposizionale nunciato `Prendo l'ombrello' la lettera proposizionale zata con

p,

all'e-

q,

sicch l'inferenza viene schematiz-

pq q p
4

Per rilevare la correttezza di tale inferenza, basta ora osservare che la formula

(p q ) q p

(1)

una tautologia. La formula (1) stata ottenuta considerando l'implicazione che ha come antecedente la congiunzione delle premesse dell'inferenza da testare e come conseguente la sua conclusione. Tuttavia vi sono inferenze intuitivamente corrette che non possono essere studiate e giusticate mediante il calcolo proposizionale. inferenza: Tutti gli uomini sono mortali. Socrate un uomo. Quindi Socrate mortale. facile vedere che questa inferenza, pur essendo intuitivamente corretta, non giusticabile mediante il calcolo proposizionale. Infatti riscrivendo l'inferenza mediante il simbolismo della logica proposizionale otteniamo Consideriamo ad esempio la seguente

p q r
Condizione necessaria e suciente anch questa inferenza sia corretta che la formula

pq r
sia una tautologia. Tuttavia facile osservare l'assegnamento

tale che

V (p) = V (q ) = 1 e

V (r) = 0 la falsica.

Dunque l'inferenza data, intuitivamente corretta, risulta formalmente

scorretta se utilizziamo come strumento di indagine il calcolo proposizionale. In eetti la correttezza delle inferenze non si basa solamente sulle relazioni vero funzionali tra le proposizioni di cui sono composte (cosa che invece succede nelle inferenze giusticabili mediante il solo calcolo proposizionale), ma pu basarsi anche sulla struttura interna di queste proposizioni e sul signicato di espressioni quali, ad esempio, ogni, tutti, ecc. In altre parole, per poter trattare inferenze come l'ultima che abbiamo visto necessario considerare pi a fondo la struttura interna delle proposizioni. Occorre quindi introdurre un linguaggio pi ricco e con maggiore capacit espressiva del calcolo proposizionale. Pi precisamente, dovremo utilizzare un nuovo formalismo e

introdurre poi delle regole che permettano di trattare formule contenenti i nuovi simboli introdotti. Vediamo brevemente e in modo molto informale da che cosa costituito un linguaggio del primo ordine. Innanzitutto ampliamo l'insieme degli operatori logici. Ai connettivi giamo due nuovi operatori

, , aggiun
si chiama si chiama

Questi due nuovi operatori sono di natura sensibilmente

dierente dai connettivi proposizionali, si dicono

quanticatori.

Il simbolo Il simbolo

quanticatore universale e il suo signicato intuitivo per ogni, quanticatore esistenziale e il suo signicato intuitivo esiste.

Avremo poi, in particolare, due classi distinte di enti linguistici: le costanti e i predicati. Le costanti rappresenteranno elementi del dominio del discorso (numeri, persone, oggetti, etc) mentre i predicati rappresenteranno le relazioni che possono intercorrere tra questi oggetti (esempi di predicati sono: essere un uomo, essere minore di, etc.). In altre parole, i predicati ci consentono di esprimere propriet e relazioni su insiemi di oggetti. Dunque se ad esempio ne

P (x) indica che x gode di una data propriet P x


vale la propriet

allora l'espressio-

xP (x)

signicher per ogni

P

o, equivalentemente, la propriet

vale per ogni

x,

mentre l'espressione

xP (x)

signicher esiste un

che gode della

propriet

P .

Come esempio riconsideriamo l'inferenza Tutti gli uomini sono mortali. Socrate un uomo. Quindi Socrate mortale. Supponiamo che -

U M

stia per il predicato essere uomo stia per il predicato essere mortale

- la costante

stia per Socrate

Possiamo quindi formalizzare la nostra inferenza con

x(U (x) M (x)) U (a) M (a)


6

Abbiamo in questo modo formalizzato l'inferenza in maniera tale che sar poi possibile, mediante opportune tecniche, analizzarla e studiarne la correttezza. Pi in generale, nel linguaggio del primo ordine avremo i seguenti simboli: i connettivi proposizionali e i due quanticatori, le

variabili individuali x0 , x1 . . ., le costanti individuali a1 , a2 , . . ., le lettere predicative P, Q . . . e le lettere funzionali f, g . . . (consideremo le costanti
individuali come simboli di funzione 0-arie). Nel nostro esempio abbiamo utilizzato una sola costante

a, una sola variabile individuale

x,

due predicati unari

M,

e nessuna lettera funzionale.

2.2

Segnature, Termini e Formule

Dunque un linguaggio del primo ordine (che chiameremo anche `linguaggio elementare') pi ricco di un linguaggio proposizionale e consente di nominare individui, di costruire designazioni di individui a partire da altre, di parlare di propriet di individui, di quanticare su di essi, ecc. Diamo ora la relativa denizione formale:

Denizione 1. Un linguaggio elementare (o segnatura) L una quadrupla


P , F , , ,

dove

- P un insieme (detto insieme dei simboli di predicato) e : P N una funzione a


valori nei numeri naturali (se (R) = n diciamo che R un ariet n); valori nei numeri naturali (se (f ) = n diciamo che f un ariet n).
simbolo di predicato di

- F un insieme (detto insieme dei simboli di funzione) e : F N una funzione a


simbolo di funzione di

I simboli di predicato di ariet 0 sono le vecchie lettere proposizionali: essi possono essere utilizzati per formalizzare frasi costituite da soli verbi impersonali (come `Piove', `Nevica'). I simboli di predicato di ariet 1 rappresentano propriet di individui: essi

possono essere utilizzati per modellizzare nomi comuni, aggettivi qualicativi, nonch verbi intransitivi (con questo intendiamo dire che `uomo' rappresenta la propriet di essere uomo, `bello' la propriet di essere bello, `dormire' la propriet di essere addormentato, ecc). I

simboli di predicato di ariet 2 rappresentano relazioni fra coppie di individui: essi possono essere utilizzati per modellizzare verbi transitivi (ad esempio, `amare' rappresenta l'insieme delle coppie di esseri umani il cui primo componente innamorato del secondo). I simboli di predicato di ariet 3 rappresentano relazioni fra terne di individui: essi possono essere utilizzati per modellizzare verbi dativi come `dare', `regalare', ecc.

I simboli di funzione di ariet zero sono detti costanti individuali e possono essere utilizzati per modellizzare i nomi propri, nonch costanti matematiche (come

0, 1, , e, . . . ).

I simboli di funzione di ariet 2 rappresentano operazioni binarie (come ad esempio le operazioni aritmetiche di somma e prodotto); naturalmente i simboli di funzione di ariet 1 rappresentano operazioni unarie (come il seno, l'esponenziale in una base ssata, il logaritmo, ecc.). Simboli di funzione di ariet 1 sono presenti anche nel linguaggio naturale, dove possono essere utilizzati per rappresentare le funzioni espresse da certe locuzioni come `il padre di ', `il professore di '. Simboli di funzione e di predicato di ariet elevata (maggiore di 3, per intenderci) sono raramente usati, ma li abbiamo inclusi nella denizione di segnatura per omogeneit di trattazione. In aggiunta ai simboli di predicato e di funzione, per costruire le formule avremo a disposizione dei simboli universali (cio comuni ad ogni linguaggio elementare), che sono, oltre ai simboli ausiliari (parentesi e vigole):

l'insieme i

V = {x0 , x1 , x2 , . . . , y0 , y1 , y2 , . . . }

detto insieme delle

variabili individuali;

connettivi proposizionali , , , che abbiamo incontrato nella parte del corso


relativa alla logica proposizionale;

- i quanticatori (per ogni) ed (esiste).


Se

contiene il predicato

di ariet 2, diciamo che

un linguaggio con identit.

Le variabili individuali rappresentano individui indeterminati, la cui designazione pu ad esempio essere ssata dal contesto (in tal senso, si pu costruire un parallelo fra le variabili dei linguaggi formali e i pronomi dei linguaggi naturali). Per riferirci ad individui, abbiamo ora a disposizione costanti e variabili: se applichiamo a queste ultime i simboli di funzione, possiamo costruire designatori pi complessi. In tal

un'analisi meno schematica e pi approfondita di queste classicazioni occorre consultare un testo sulla semantica dei linguaggi naturali.
8

2 Per

modo si costruiscono espressione matematiche come

+ log (x + y ), ma anche locuzioni del

linguaggio naturale come `padre di Carlo', `padre del padre di Carlo' (ossia `nonno paterno di Carlo'), ecc. Tutto questo riassunto nella denizione formale di termine:

Denizione 2. Data una segnatura L, l'insieme degli L-termini (o pi semplicemente termini) cos denito: - ogni c F con (c) = 0 un termine; - ogni x V un termine; - se f F , se (f ) = n (per n 1) e se t1 , . . . , tn sono termini, f (t1 , . . . , tn ) un
termine.3
Abbiamo visto che i termini aumentano le possibilit di un linguaggio elementare di riferirsi ad individui (possibilit inizialmente ristretta a costanti e variabili). In modo simile, la nozione di formula ore la possibilit di costruire relazioni e aermazioni complesse:

Denizione 3. Data una segnatura L, l'insieme delle L-formule (o pi semplicemente formule) cos denito: - se R P , se (R) = n e se t1 , . . . , tn sono termini, (R(t1 , . . . , tn )) una formula;4 - se A1 , A2 sono formule, tali sono anche (A1 A2 ), (A1 A2 ), (A1 A2 ), (A1 ); - se A una formula e x V , allora (xA) e (xA) sono formule.
La scelta di un opportuno linguaggio dipende da ci di cui vogliamo parlare e da ci che intendiamo realmente esprimere. Ad esempio, se vogliamo parlare di numeri (naturali, interi, razionali o reali) un opportuno linguaggio

L1

potrebbe contenere: a) due costanti

0, 1;

b) due simboli di operazioni binarie, cio la somma

e il prodotto ; c) due relazioni

binarie, cio l'identit

= e la relazione di minore <.

Se invece vogliamo parlare di relazioni

di parentela, una scelta ragionevole potrebbe essere il linguaggio

L2

comprendente: a) due

osservi che, nel caso dei simboli di funzione binaria, questa denizione obbliga ad adottare una notazione pressa (cio obbliga a scrivere ad esempio +(x, y ) anzich x + y ). Tuttavia, noi ci sentiremo liberi di usare notazioni insse nei casi in cui lo riterremo opportuno. 4 Formule di questo tipo, cio formule ottenute applicando un simbolo di predicato a termini, si dicono formule atomiche. Le formule atomiche non contengono quindi altre formule come parti proprie.

3 Si

simboli di funzione unarie, cio l'identit.

p =`il padre di' e m =`la madre di'; b) un predicato binario,

Come sappiamo, i termini servono a costruire designazioni di individui complesse, partendo dalle designazioni di base specicate da costanti e variabili. termini Nel caso di

L2 ,

p(p(x)),

p(m(x)) x.
Analogamente,

servono a specicare il nonno paterno e il nonno materno dell'individuo le formule costruiscono propriet e relazioni complesse. Nel caso di

L2 ,

la formula

p(x) = p(y ) m(x) = m(y )


dice che

sono fratelli/sorelle. La formula

(p(p(x)) = p(p(y ))) (p(p(x)) = p(m(y ))) (p(m(x)) = p(p(y ))) (p(m(x)) = p(m(y )))
un modo per esprimere che maschi).

sono cugini (tramite la comunanza di uno dei nonni

Convenzioni notazionali:

Valgono le solite convenzioni per eliminare le parentesi, ossia le parentesi pi esterne vengono di regola omesse. In pi stipuliamo anche che di

, , legano pi strettamente

, ,

che a loro volta legano pi strettamente di

.5

Un termine

chiuso (o 'ground') se costruito senza usare variabili.


x
in una formula

Una occorrenza di una variabile

detta

vincolata

qualora si

trovi all'interno di una sottoformula Ad esempio, nelle formula

del tipo

xB

xB ,

altrimenti detta

libera.

x(R(x, y )) P (x)
la

ha due occorrenze, la prima delle quali vincolata (perch all'interno della

sottoformula che libera.

x(R(x, y ))),

mentre la seconda libera; la

ha una sola occorrenza,

ad esempio, xP (x) zP (z ) yQ(y ) sta per (x(P (x))) ((z (P (z ))) (y (Q(y )))). Si faccia attenzione a queste convenzioni: sbagliare nell'identicare l'operatore principale (connettivo o quanticatore che sia) di una formula costituisce errore invalidante (e purtroppo molto frequente) negli esercizi scritti. 6 La nozione di sottoformula quella ovvia (volendo essere precisi, si potrebbe denirla induttivamente).
10

5 Cos,

Una variabile Un

occorre libera in

se e solo se qualche sua occorrenza in

libera.

enunciato (`sentence', in inglese) o formula chiusa una formula in cui nessuna


A(t/x)
(o, pi semplicemente

variabile occorre libera.

Con notazioni del tipo

A(t))

indicheremo il risultato

dell'operazione di sostituzione del termine variabile

t al posto di tutte le occorrenze libere della

in

A.

La Semantica di Tarski

Diamo ora la semantica per i linguaggi elementari. Il problema della semantica presto detto: simboli di funzione, simboli di predicato, termini e formule di per s non sono altro che caratteri e stringhe di caratteri e in quanto tali non hanno nessun signicato intrinseco. ben vero che nel denire termini e formule abbiamo tenuto presente che i termini devono rappresentare individui e che le formule devono rappresentare relazioni complesse o aermazioni, tuttavia queste motivazioni intuitive non sono sucienti ad attribuire loro un signicato pieno. In altri termini, il fatto che il dizionario riporti la parola `cane' come parola dotata di signicato, non signica ancora che tale signicato sia noto o compreso, non prima almeno di aver letto cosa la parola `cane' signichi o di averlo imparato per altra via da piccoli. La semantica dei linguaggi elementari stata rigorosamente ssata dal logico polacco Tarski negli anni 30; tuttavia la denizione tarskiana non fa che riprendere la millenaria tradizione losoca della denizione di verit come corrispondenza con lo stato di fatto. All'interno di un corso di logica, la denizione tarskiana di verit rappresenta un passaggio imprescindibile, perch solo su di essa che si possono fondare tutti i procedimenti algoritmici che vengono poi introdotti. Ciononostante, l'impatto con la semantica formalizzata pu risultare dicile di primo acchito per un semplice motivo: i signicati delle parole e delle locuzioni che usiamo nella vita quotidiana (e quindi anche la nozione di verit che su di essi si basa) sono ssati dalle convenzioni linguistiche e sociali, per cui non si sente il bisogno di fare un passo indietro e di riesaminarli da un punto di vista astratto. Tuttavia tale riesame per noi indispensabile per proseguire; invitiamo lo studente perci a leggere senza troppe pretese il presente paragrafo in prima battuta e a ritornare (magari pi volte) su di esso quando la sua comprensione degli argomenti si sar anata.

11

3.1

La Nozione di Struttura

La prima cosa da tenere presente che il signicato dei simboli dipende da una situazione concreta. Nel caso della logica proposizionale, una situazione concreta modellata da un assegnamento: l'assegnamento fa s ad esempio che l'enuciato `Piove' venga a denotare un signicato (il vero od il falso) a seconda appunto della situazione che l'assegnamento simula in modo schematico, cio a seconda che realmente piova o meno. Nella logica predicativa, occorrer la nozione pi complessa di

struttura

invece della nozione di assegnamento: una

struttura deve assegnare un insieme di oggetti ad ogni simbolo di predicato unario, una relazione (vista come insieme di coppie di oggetti) ad ogni simbolo di predicato binario, un oggetto ad ogni costante, ecc.

In altre parole, la nozione di struttura fotografa e schema-

tizza (mediante strumenti insiemistici) quanto noto sul signicato degli enti linguistici in una data situazione. Per introdurre formalmente una struttura, si ssa un insieme non vuoto

A, A

detto do-

minio della struttura, sul quale assumeranno i valori le variabili individuali; poi si ssa una funzione che associ ad ogni simbolo di funzione operazione a

n-ario

una funzione da

An

(cio una (cio un

posti) e ad ogni simbolo di predicato

n-ario

una relazione

n-aria

sottoinsieme di

An ).

Tutto questo scritto nella seguente denizione:

Denizione 4. Data una segnatura L, una L-struttura A una coppia A, I dove A un insieme (non vuoto),8 detto dominio, e I una funzione, detta interpretazione,
che opera come specicato qui di seguito. I associa

- ad ogni P P tale che (P ) = n, un sottoinsieme I (P ) di An . - ad ogni f F tale che (f ) = n, una funzione I (f ) : An A.


In particolare, se

c F0 , I (c)

un elemento di

e se

P P0 , I (P )

un valore di

verit (si ricordi quanto convenuto nel paragrafo 1). Se che

contiene l'identit, stipuliamo

I (=)

sia sempre l'insieme delle coppie identiche, cio

{(a, a) | a A}.

farsi un'idea precisa, pu essere utile pensare ai nomi propri di persona, come `Pietro', `Paolo', ecc.: questi ultimi non hanno un signicato universale ssato apriori (come possiamo essere erroneamente tentati di credere che succeda per altre entit linguistiche come nomi comuni e verbi), il loro signicato di volta in volta adattato dalla nostra mente alla situazione in cui ci troviamo. 8 Si faccia attenzione al fatto che usiamo la lettera calligraca A per indicare una struttura nel suo complesso e la lettera in grassetto A per indicarne il dominio (invece la lettera stampata maiuscola A, come le lettere B, C, . . . , continueranno ad essere usate come metavariabili per formule). Questi aspetti notazionali non vanno trascurati, pena cadere in confusione completa!
12

7 Per

3.2

La Nozione di Verit

Fissata un'interpretazione (cio una possibile dire quali enunciati di

L-struttura A) A)

per i simboli di un linguaggio

L,

sono veri (in

e quali no. Ci rispecchia una pratica

intuitiva: possiamo dire se `Paolo simpatico' vero o no, una volta che ci siamo intesi sul signicato delle parole, cio una volta che abbiamo ssato una ssato una

L-struttura.

Avendo

L-struttura,

sappiamo chi `Paolo', sappiamo quali sono i nostri criteri di

simpatia perch abbiamo ssato l'insieme delle persone simpatiche, per cui per stabilire il valore di verit della frase `Paolo simpatico' si tratta solo di vedere se Paolo appartiene o meno a tale insieme delle persone simpatiche. Pi in generale, avremo che una formula del tipo

P ( c1 , . . . , c n )

(dove

c1 , . . . , c n n-ple

sono costanti) sar vera nella

L-struttura A
in

sse la

n-pla (I (c1 ), . . . , I (cn )) I (P )

(che ssa gli individui denotati da

c1 , . . . , c n

A)

appartiene a in

(ossia all'insieme delle

che ssa il signicato della relazione

n-aria P

A).

Per denire il valore di verit di formule non atomiche avremo delle ovvie clausole ricorsive. Tuttavia, nel dare tale denizione, si incontrano alcuni problemi che necessitano l'introduzione di qualche accorgimento tecnico, dovuto al fatto che non tutti gli elementi di

A sono nominabili con termini chiusi di L. A |= A


(`l'enunciato

Il problema pu essere evidenziato nel modo vero nella

seguente. La relazione

L-struttura A')

verr, come si

detto, denita per induzione sul numero di connettivi e quanticatori di esempio clausole ricorsive del tipo

A;

avremo ad

A |= A1 A2

sse

(A |= A1

e A |= A2 )

che dicono che una congiunzione vera sse lo sono entrambi i congiunti. Tuttavia, nel caso dei quanticatori, tali clausole non possono essere formulate ingenuamente con

A |= xA
perch

sse

A |= A(a/x),
in quanto

per qualche

aA

A(a/x)

non una

L-formula,

un elemento del dominio di interpreta-

zione e non un simbolo del linguaggio (per cui la scrittura

A(a/x)

semplicemente non ha

senso). Se tentiamo di risolvere questo problema, ci accorgiamo subito inoltre che non c' nessuna motivo anch il linguaggio

abbia a disposizione un nome per ogni elemento

a A.
10 Si 9 Qui

10

Se avessimo a disposizione un nome

per ogni

a A,

la clausola di verit per il

e nel seguito, abbreviamo `se e solo se' con `sse'. pensi soltanto al fatto seguente: il linguaggio usualmente numerabile (cio le formule e i termini possono di solito essere messi in corrispondenza biunivoca con i numeri naturali), mentre A pu essere un insieme qualunque molto pi grande, come quello dei numeri reali.
13

quanticatore esistenziale potrebbe essere agevolmente corretta con

A |= xA

sse

A |= A( a/x),

per qualche

a A.
stesso. Se

Per questo motivo, decidiamo di ampliare preventivamente struttura,

una

L-

LA

indica il linguaggio ottenuto aggiungendo a

L una costante a per ogni a A I ( a) = a


(in futuro, se non c'

(a detta essere il nome di di

a).

Cos

LA

contiene un nome per ogni elemento del dominio

A.

Allarghiamo

a queste nuove costanti ponendo

pericolo di confusione, ometteremo spesso di distinguere fra elementi di cio scriveremo direttamente

e i loro nomi,

invece di

a ). I
di una

C' ancora un punto da chiarire. L'interpretazione

L-struttura A = A, I
ssa il signicato della di' e

ssa il signicato delle costanti (e dei simboli di funzione), ma non ssa direttamente il signicato dei termini composti. costante Ad esempio, la

L-struttura A

c =`Paolo',

ssa il signicato delle funzioni unarie

p =`padre

m =`madre
e il suo

di'; possiamo da tutto ci risalire al signicato dell'espressione `nonno materno di Paolo' ? Certamente, tale espressione 'nonno materno di Paolo' altri non che signicato sar

p(m(c))

I (p)(I (m)(I (c)))

(ossia il valore della funzione che interpreta `padre di'

calcolato sul valore della funzione che interpreta `madre di' calcolato sull'elemento denotato da 'Paolo'). Formalmente, si procede cos: per induzione,

deniamo I (t) per ogni LA -termine


Se

ground t.
I (t)
sar

Se

t una costante (vecchia o nuova) I (t) gi stato denito.


(dove

t f (t1 , . . . , tn ), I (f )

I (f )(I (t1 ), . . . , I (tn )) f

I (t1 ), . . . , I (tn )

sono dati per induzione e

l'interpretazione del simbolo

specicata dalla

L-struttura A = (A, I )). L-formula in una L-struttura:

Siamo ora in grado di dare le denizione di verit di una

Denizione 5. Data una L-struttura A e dato un LA -enunciato A, la relazione A |= A (che si legge con `A vero in A), denita induttivamente sul numero di connettivi e

14

quanticatori di A come segue:


A |= P (t1 , . . . , tn ) sse A |= A1 A2 A |= A1 A2 A |= A1 A |= A1 A2 A |= xA1 A |= xA1 sse sse sse sse sse sse (I (t1 ), . . . , I (tn )) I (P ) (A |= A1 (A |= A1 A |= A1 (A |= A1 oppure A |= A2 ) per ogni a A per qualche a A. e A |= A2 ) oppure A |= A2 )

A |= A1 ( a/x) A |= A1 ( a/x)

Se A una formula qualunque (non necessariamente un enunciato) A |= A sta per A |= x1 xn A (dove abbiamo assunto che x1 , . . . , xn siano tutte e sole le variabili che occorrono libere in A).11
3.3 Teorie, Modelli e Conseguenza Logica

La seguente importante denizione completa il quadro della semantica della logica elementare. Chiamiamo a

L-teoria T

un qualsiasi insieme di enunciati di

L (le formule appartenenti

saranno dette

assiomi

di

T ).

11 Si

noti che nel caso in cui L contenga l'identit abbiamo sempre


A |= t1 = t2 sse I (t1 ) = I (t2 )

per ogni coppia t1 , t2 di LA -termini chiusi. Inseriamo qui anche un'osservazione tecnica (al momento assolutamente marginale). Data una Lstruttura A e data una LA -formula A(x) (in cui la sola variabile x pu occorrere libera), si prova facilmente per induzione (ma si deve fare un'induzione preventiva per stabilire un'analoga propriet dei termini) che se t e u sono LA -termini chiusi tali che I (t) = I (u) allora
(+) A |= A(t/x) sse A |= A(u/x).

Ne segue che la clausola induttiva nella denizione di verit, ad esempio per il quanticatore esistenziale, si pu equivalentemente dare nella seguente forma (detta sostituzionale)
A |= xA sse A |= A(t/x) per qualche t termine chiuso di LA

(infatti, se I (t) = a, A |= A(t/x) equivale a A |= A( a/x) per la (+)).


15

Denizione 6. Se T una L-teoria, si dice che A modello di T (in simboli A |= T ) qualora A |= B valga per ogni enunciato B appartenente a T . Si dice che T soddisfacibile, qualora abbia almeno un modello. T |= A (letto con `A conseguenza logica di T ') signica che A vera in ogni modello di T . Una L-formula A un logicamente valida qualora A |= A valga per ogni A.
Tutti i teoremi che si trovano nei libri di matematica sono conseguenze logiche di un opportuno sistema assiomatico, cio di una opportuna teoria. Il problema di decidere la nozione di conseguenza logica modulo una teoria centrale in molte delle applicazioni della logica all'informatica. Anche il problema del riconoscimento della correttezza delle regole di inferenza si pu ridurre al problema della conseguenza logica modulo una teoria. Ad esempio, per stabilire che l'inferenza (vista nel paragrafo 2.1) Tutti gli uomini sono mortali. Socrate un uomo. Quindi Socrate mortale. corretta basta stabilire la relazione di conseguenza logica

{x(U (x) M (x)), U (a)} |= M (a).


Per arontare il problema di decidere la relazione metodi che siano specici per la teoria

T |= A

spesso utile ricorrere a ha un numero nito di

scelta; tuttavia, se

assiomi si pu ridurre il problema di decidere la conseguenza logica modulo di decidere se una data formula o meno logicamente valida. Infatti se si ha che

al problema

T = {B1 , . . . , Bn },

conseguenza logica di

sse la formula

B1 Bn A
logicamente valida. La nozione di verit logica (cio di formula logicamente valida) corrisponde alla nozione di tautologia usata nella logica proposizionale. C' per una cruciale dierenza: per la

logica predicativa non possibile adottare un procedimento di esame esaustivo (come l'ispezione di tutta la tavola di verit) per stabilire se una data formula o meno una verit logica (bisognerebbe esaminare tutte le possibili

L-strutture, cosa chiaramente infattibile).

Per questo motivo, a dierenza che nel caso proposizionale, la denizione semantica di verit non solo ineciente, ma proprio inutilizzabile dal punto di vista computazionale.

16

Per un risultato classico (

il teorema di Church), la nozione di verit logica indecidibile,


A,
termini

cio non possibile progettare un algoritmo che, presa in ingresso una formula sempre dicendo in uscita se

una verit logica o meno.

Il calcolo che proporremo

costituir perci solo una procedura di semidecisione: data

A in ingresso, se A una verit

logica, sar sempre possibile appurarlo in modo meccanico (pur di avere risorse di calcolo illimitate in tempo ed in spazio); se non lo , solo nei casi fortunati saremo in grado di appurarlo, nei casi sfortunati la procedura di ricerca sar destinata a non avere mai ne. Quindi il calcolo che presenteremo, una volta implementato su un calcolatore, ci potr porre nella situazione imbarazzante per cui, se dopo un tempo notevole di attesa non abbiamo ancora avuto la risposta, non potremo mai sapere se tale attesa fatalmente destinata a durare per sempre o se, dando ancora un po' di tempo alla macchina, si avrebbe invece la risposta desiderata. Nonostante questi limiti di principio, va comunque osservato che il settore del ragionamento automatico ha fatto segnare in tempi recenti notevoli successi, tali da coprire un certo numero di casi di interesse sia teorico che pratico.

Forme Normali Negative

Una formula in

forma normale negativa (fnn) se e solo se non contiene implicazioni


sono

e contiene negazioni solo di fronte a sottoformule atomiche. Due formule

A, B

logicamente equivalenti
A
in una formula

se e solo se

A B

una verit

logica. Per trasformare una formula ad

in fnn

A,

suciente eseguire (

in ordine qualunque, ma in modo esaustivo) le seguenti


CD C (C D) (C D) xC xC C D C C D C D xC xC
(2) (3) (4) (5) (6) (7)

logicamente equivalente

trasformazioni:

Le trasformazioni vanno viste come regole di riscrittura: ossia ogniqualvolta la formula corrente

contenga una sottoformula del tipo indicato a sinistra, la si rimpiazzi con la

17

corrispondente formula del tipo indicato a destra. La seguente proposizione conseguenza di un lemma generale di rimpiazzamento (su cui non ci soermiamo) e del fatto che le formule a destra e a sinistra di nelle (2)-(7) sono logicamente equivalenti fra loro:

Proposizione 1. Ogni formula logicamente equivalente ad una formula in fnn. Esempio 1.


Trasformiamo in fnn la formula

(xyR(x, y ) xR(x, x)):

(xyR(x, y ) xR(x, x)) xyR(x, y ) xR(x, x)) xyR(x, y ) xR(x, x)) xy R(x, y ) xR(x, x))

enunciato A soddisfacibile sse esiste una struttura A tale che A |= A. Il calcolo che vedremo nel prossimo paragrafo aronta il problema della soddisfacibilit di enunciati in fnn. Quindi se lo vogliamo utilizzare per testare se un dato enunciato B o meno una
Un verit logica,

occorre preventivamente trasformare B in fnn (attenzione a ricordarsi

la negazione per non sbagliare!).

Il Calcolo dei Tableaux

una segnatura L ed un L-enunciato A in fnn di cui vogliamo sapere se soddisfacibile o meno. Sia L+ ottenuto da L con l'aggiunta
Fissiamo da qui no alla ne delle presenti note di un'innit numerabile di nuove costanti (che chiameremo Usiamo le lettere greche tazioni come

parametri) c0 , c1 , c2 , . . . .
12
di

, , . . .

per indicare insiemi niti di enunciati

L+ ;
e

no-

, C

, C, D

verranno usate rispettivamente al posto di

{C }

{C, D}.
si vuole operare con formule che contengono variabili libere (cosa che non faremo per semplicit didattica), occorre tenere presente alcuni problemi relativi alla sostituzione. Li riassumiamo brevemente perch essi sono menzionati su tutti i testi di logica. Il nostro formalismo deve consentirci di dimostrare formule del tipo xA A(t/x), tuttavia non tutte le formule tale tipo sono verit logiche. Ad esempio xyP (x, y ) yP (y, y ) non vale in tutte le L-strutture (questa formula direbbe ad esempio che `se ogni uomo ha un padre, allora c' qualcuno che padre di se stesso'). Questa anomalia dovuta al fatto che la sostituzione di y ad x in yP (x, y ) non da ritenersi corretta: in casi come questi il termine sostituendo contiene una variabile che, a sostituzione avvenuta, risulta vincolata. Diciamo, in generale, che il termine t sostituibile ad x in A qualora per nessuna variabile y che occorre in t ci sia una sottoformula di A del tipo yB (oppure del tipo yB ) contenente un'occorrenza di x che libera in A. Per manipolare formule con
18

12 Se

La nostra procedura costruisce un albero i cui nodi sono etichettati mediante insiemi niti di enunciati di

L+

(la radice dell'albero viene sempre etichettata con

{A}). A,

La procedura analizza l'informazione che contraddizioni:

soddisfacibile, per ricavarne eventuali

se vengono ricavate contraddizioni, si conclude l'insoddisfacibilit di

altrimenti se ne certica la soddisfacibilit (ma in questo caso la procedura pu divergere, per cui si pu avere una certicazione per cos dire ideale, dopo inniti passi di calcolo). Si procede nel seguente modo: si seleziona un nodo-foglia dell'albero corrente che non

chiuso, ossia che non contenga sia una formula atomica che la sua negazione (se tutti i nodi-foglia sono chiusi la formula dichiarata insoddisfacibile). Se a tale nodo-foglia nessuna delle regole di espansione della Figura 1 si applica, il nodo-foglia detto terminale: la formula dichiarata soddisfacibile. Altrimenti, se una delle regole di espansione della
sia Figura 1 si applica, si aggiungono sotto tale nodo uno/due nodi-gli etichettandoli come previsto dalla regola stessa.

, B C , B, C , xB , B (c/x)

, B C , B , C

, xB , B (t/x), xB c un parametro nuovo; t un termine ground

Figura 1:

Regole di espansione.

(i)

(ii)

di L .
+
Come si pu osservare dalla gura, c' una regola di espansione per ogni connettivo o quanticatore (salvo che per la negazione e l'implicazione che sono state pretrattate con la riduzione in fnn). Facciamo ora alcuni utili commenti su ciascuna delle regole (nei prossimi paragra esamineremo svariati esempi in dettaglio).

Il signicato della regola di espansione per

questo:

se abbiamo trovato una

variabili libere, occorre specicare che nella regola di espansione per il quanticatore universale della gura 1, la sostituzione coinvolta deve essere corretta (o, meglio, che in caso di sostituzioni scorrette, si deve passare ad una variante alfabetica, cio ad una rinomina delle variabili vincolate). Si noti che, operando soltanto con termini ground, il problema non si pone: se t ground, t sempre sostituibile ad ogni x in ogni A perch t non contiene variabili.
19

struttura in cui tutte le tutte le

e la

BC

sono vere, abbiamo anche una struttura in cui

e la

e la

sono vere.

La regola di espansione per le

dice che se abbiamo trovato un a struttura in cui tutte

e la B C

sono vere, abbiamo anche

una struttura in cui tutte le

e la B

sono

vere

una struttura in cui tutte le

e la

sono vere. Questa regola di espansione

responsabile delle biforcazioni che si producono nell'albero che costruiamo.

La regola di espansione per le

dice che se abbiamo trovato una struttura in cui tutte

sia

e la

xB

sono vere, abbiamo anche una struttura in cui tutte le

e la

B (c/x)

sono vere. Perch la regola sia applicata in modo corretto, occorre che il parametro

nuovo,

cio non ancora utilizzato (attenzione: l'uso di un parametro vecchio

costituisce errore invalidante negli esercizi). Il motivo di questa restrizione sta nel fatto che l'informazione `c' un a tale

tale che

B'

pu s essere utilizzata dando un nome

x,

ma il nome non deve collidere con altri nomi gi noti, altrimenti possiamo

rischiare di fare assunzioni ingiusticate su

x.

La regola di espansione per procedura.

responsabile della possibile non terminazione della

Innanzitutto, si osservi che tale regola prevede la

ricopiatura

della

formula che viene analizzata, a dierenza delle regole precedenti. seguente: l'informazione `tutti gli

Il motivo il

x sono B ' pu essere utilizzata dicendo `t B ', `u


Quindi la regola di

B,

ecc. Qui

t, u, . . .

sono termini ground qualunque e sappiamo che i termini ground

sono inniti (semplicemente perch i parametri sono inniti). espansione per

passibile di inniti utilizzi per ciascuna formula universalmente Sono per possibili, per fortuna, delle ottimizzazioni,

quanticata cui si applica.

in particolare noi useremo sempre le seguenti due restrizioni ottimizzanti (che si dimostrano non distruggere la completezza del calcolo): (a) il termine

t che si utlizza

nel conseguente della regola di espansione per il quanticatore universale deve essere

vecchio, ossia gi presente nel ramo che porta al nodo cui si applica la regola;13 (b)
lungo tale ramo, la regola non si applica mai due volte con identiche modalit (cio allo stesso

per la stessa formula

xB ).

In linea di principio, le regole di espansione si applicano in un ordine qualunque,

una unica eccezione: se in tale ramo non compare alcun termine ground, si prende come t un parametro qualunque, ad esempio c0 .
20

13 Con

ma ritorneremo sull'argomento per delle precisazioni importanti da un punto di vista computazionale.

5.1

Ricerca di Refutazioni

Il calcolo che abbiamo esposto pu essere utilizzato negli esercizi sia per stabilire che un data formula logicamente valida, sia per trovarne un contromodello (questo doppio utilizzo del calcolo giusticato dai teoremi di validit e completezza che enunceremo pi oltre). In questo paragrafo, vediamo la prima modalit di utilizzo.

Esempio 2.

Per stabilire che l'inferenza Tutti gli uomini sono mortali. Socrate un uomo. Quindi Socrate mortale.

corretta, sappiamo che suciente stabilire che l'enunciato

(x(U (x) M (x))) U (s) M (s)


logicamente valido. Negando e trasformando in fnn, otteniamo l'enunciato

(8)

x(U (x) M (x))) U (s) M (s)


cui applichiamo la nostra procedura. Ci pu essere fatto nel modo seguente

14

x(U (x) M (x)), U (s), U (s), M (s)

x(U (x) M (x)), U (s), M (s), M (s)

x(U (x) M (x)), U (s) M (s), U (s), M (s) x(U (x) M (x)), U (s), M (s) x(U (x) M (x)) U (s) M (s)
dove abbiamo utilizzato, nell'ordine, le regole di espansione per

siccome tutti i

nodi-foglia sono chiusi, l'enunciato in radice insoddisfacibile, pertanto l'enunciato (8) logicamente valido e l'inferenza corretta.

Esempio 3.
14 Per

Vogliamo provare che l'enunciato

x(P (x) Q(x)) xP (x) xQ(x)

(9)

mantenere uniformit con la trattazione della vecchia dispensa, sviluppiamo gli alberi dal basso verso l'alto (lo studente pu naturalmente svilupparli dall'alto verso il basso, se preferisce).
21

logicamente valido. Negando, portando in fnn e applicando le regole, si ottiene il seguente albero:

15

x(P (x) Q(x)), P (a), Q(a), P (a) x(P (x) Q(x)), P (a) Q(a), P (a) x(P (x) Q(x)), P (a) x(P (x) Q(x)), xP (x)

x(P (x) Q(x)), P (a), Q(a), Q(a) x(P (x) Q(x)), P (a) Q(a), Q(a) x(P (x) Q(x)), Q(a) x(P (x) Q(x)), xQ(x)

x(P (x) Q(x)), xP (x) xQ(x)


Dunque l'enunciato (9) una verit logica.

Esempio 4.

Il seguente esempio dimostra che la ricopiatura delle formule universali nella

regola di espansione per

indispensabile: Vogliamo provare che l'enunciato

x(yP (y ) P (x))
logicamente valido. Procedendo nell'analisi otteniamo il seguente albero:

(10)

P (a), yP (y ), P (c), P (a), x(yP (y ) P (x)) P (a), P (c), yP (y ) P (a), x(yP (y ) P (x)) P (a), P (c), x(yP (y ) P (x)) yP (y ), P (c), x(yP (y ) P (x)) yP (y ) P (c), x(yP (y ) P (x)) x(yP (y ) P (x))
Nell'ordine (dal basso verso l'alto), abbiamo utilizzato: la regola di espansione per vamente a

relati-

c,16

la regola di espansione per

, la regola di espansione per con l'introduzione


(per la seconda volta!) relativamente

del parametro nuovo al termine vecchio

a,

la regola di espansione per

e inne di nuovo la regola di espansione per

Negli esempi precedenti, la procedura si conclude sempre con una refutazione

refutazione

(una

un albero i cui nodi-foglia sono tutti chiusi ).


se

La possibilit che la ricerca di una refutazione non abbia mai ne frequente:

per esempio fra le formule che etichettano un nodo-foglia corrente compare una formula

useremo le lettere a, b, c, ... (invece che c0 , c1 , . . . come inizialmente stabilito) per indicare i parametri. 16 Si osservi che viene qui usato il parametro (nuovo) c per istanziare il quanticatore universale: ci dovuto al fatto che nessun termine ground `vecchio' era disponibile (si veda l'eccezione segnalata in nota nel paragrafo precedente). Si tratta di un evento eccezionale (negli altri casi, l'uso di parametri nuovi per la regola di espansione del quanticatore universale produce solo inutili giri viziosi).
22

15 Spesso

del tipo

xyR(x, y ),

allora l'applicazione combinata delle due regole di espansione dei

quanticatori produce un regresso all'innito. Iniziando dalla regola per il quanticatore universale e istanziando con un termine chiuso

c0

qualunque, si ha

xyR(x, y ), yR(c0 , y ),
e poi applicando la regola per il quanticatore esistenziale (qui parametro nuovo) si ottiene

c1

forzatamente un

xyR(x, y ), R(c0 , c1 )
A questo punto, si pu applicare la regola per il quanticatore universale istanziando

su

c1 xyR(x, y ), R(c0 , c1 ), yR(c1 , y )


e poi di nuovo la regola per il quanticatore esistenziale usando un parametro nuovo

c2

xyR(x, y ), R(c0 , c1 ), R(c1 , c2 )


e cos via all'innito. Certamente qualche particolare tipo di inconveniente si potrebbe

eliminare con una versione meno ingenua del calcolo, ma

non esiste nessuna versione del

calcolo che assicuri sempre la terminazione,


accennava.

a causa del risultato di indecidibilit cui si

La possibilit di regressi all'innito pone un problema relativamente alla strategia di ricerca di una refutazione. Consideriamo il caso in cui compaia un nodo-foglia etichettato con

xyR(x, y ), P (a), P (a) Q(a)


Se non operiamo mai sull'ultima formula a destra, otteniamo ovviamente il regresso all'innito che abbiamo appena visto; se invece operiamo su tale formula (con la regola di espansione per

),

chiudiamo subito. Quindi non vero che possiamo applicare le regole

in un ordine qualunque, coll'idea che `tanto poi il risultato sempre lo stesso'. Si possono applicare le regole in un ordine qualunque, ma bisogna rispettare il seguente criterio

nel generare un ramo, nessuna applicazione di una regola deve essere dilazionata all'innito. Il requisito di equit sempre presente in una
di equit (`fairness'): forma o nell'altra in tutti i tipi di calcoli che si utilizzano nell'ambito della dimostrazione automatica.

23

Possiamo formulare in modo preciso il nostro requisito di equit come segue.

Una

qualunque esecuzione della nostra procedura produce una successione (nita o innita) di alberi

T0 T1 T2
etichettati con insiemi niti di enunciati di la soddisfacibilit, che

(11)

L+

(se

A la formula che si intende testare per {A},


mentre per ogni

T0

consite della sola radice etichettata con

si ha

Ti+1

ottenuto da

Ti

applicando ad un nodo-foglia non chiuso una delle nostre quattro

regole di espansione). Consideriamo ora l'albero (11)

T :=

equa qualora ogni ramo (r0 , r1 , r2 , . . . ) di T soddis la seguente condizione:


i,
se

Ti ;17

diciamo che l'esecuzione

per ogni un

ri

non chiuso e l'insieme che etichetta

ri

contiene

B1 B2 ,

allora c'

tale che l'insieme che etichetta

rj

contiene

B1 , B2 ; ri
contiene

per ogni un

i,

se

ri

non chiuso e l'insieme che etichetta

B1 B2 ,

allora c'

tale che l'insieme che etichetta

rj

contiene

B1

oppure

B2 ; xB ,
allora c' un

per ogni

i,

se

ri

non chiuso e l'insieme che etichetta

ri

contiene

tale che l'insieme che etichetta

rj

contiene

B (c/x)

per qualche

c; xB
e se il

per ogni

i,

se

ri t

non chiuso, se l'insieme che etichetta

ri

contiene

termine ground

compare nell'insieme che etichetta qualche

ri ,

allora c' un

tale

che l'insieme che etichetta

rj

contiene

B (t/x).
Il modo pi semplice

Ottenere esecuzioni eque un puro fatto di

strategia implementativa.

(non necessariamente il migliore) per farlo di mantenere le formule dell'insieme-etichetta di un nodo in una coda: si applica la relativa regola di espansione sempre alla prima

formula della coda che non sia atomica e, se si deve operare una ricopiatura, la formula ricopiata va in fondo alla coda.

18

Mediante la nozione di esecuzione equa, possiamo dare una formulazione dei teoremi classici di validit e completezza che tenga conto di qualche aspetto procedurale:

in modo preciso gli alberi come insiemi non vuoti di liste di numeri naturali chiusi per presso, si verica subito che l'unione di una catena di alberi un albero. Tutte le nozioni che usiamo (ramo, foglia, ecc.) sono passibili di analoghe denizioni precise. 18 Per la regola di espansione del quanticatore universale, occorre mantenere anche code di termini da sostituire. Si noti che la ricopiatura delle formule universalmente quanticate necessaria per ottenere il requisito di equit: i termini t da sostituire al posto della variabile quanticata possono comparire in uno stadio molto avanzato del ramo.
24

17 Denendo

Teorema 1

(Validit)

. Se l'esecuzione (11) termina in una refutazione, l'enunciato A

insoddisfacibile.

Teorema 2 (Completezza). Se l'esecuzione (11) equa e non termina in una refutazione,


allora l'enunciato A soddisfacibile.
Diamo qui di seguito una copiosa serie di esercizi (tratti da temi d'esame eettivamente assegnati a studenti di informatica). Lo studente potr svolgere il quantitativo di esercizi che egli reputa suciente ad ottenere un buon grado di dimestichezza con il calcolo.

19

Negli esercizi di questo e del prossimo paragrafo (e in molti esercizi che si trovano nelle raccolte di temi d'esame) abbiamo usato l'abbreviazione A1 , . . . , An B1 , . . . , Bm per indicare la singola formula
(A1 An ) (B1 Bm ). Se n = 0, l'abbreviazione B1 , . . . , Bm sta per B1 Bm e, se m = 0, l'abbreviazione A1 , . . . , An sta per (A1 An ).

ESERCIZI Provare che le seguenti formule sono tutte logicamente valide:

1 x(P (x) Q(x) S (x)) x(P (x) Q(x)) x(P (x) S (x)). 2 xy(R(x, y) R(y, x)) xyR(x, y). 3 yR(a, y), xy(P (x) R(x, y) S (y)) x(P (x) S (x)). 4 x(P (x) Q(x)) P (a) (xP (x) P (a)) (xQ(x) P (a)). 5 y(R(a, y) Q(y)), xyR(x, y), xy(R(x, y) Q(x) Q(y)) xQ(x). 6 x(P (x) Q(a)), x(R(x) Q(a)) x(P (x) R(x)) Q(a). 7 Q(a), x(Q(x) P (f (x)) P (x)) xP (x).
lettore, dopo aver svolto un congruo numero di esercizi, si accorger che molto spesso, nel generare l'albero refutativo, risulta inutile ricopiare sempre lungo un ramo una formula che si vede subito che non verr pi utilizzata. Ci ovviamente lecito (a patto di avere intuito correttamente che la formula in questione non servir) nell'ambito del tipo di esercizi esaminato in questo paragrafo (non cos per gli esercizi che vedremo nel prossimo paragrafo dove nessuna formula pu essere `persa per strada', perch tutte le formule ancora attive contribuiscono alla costruzione di un modello). In eetti, la versione del calcolo che abbiamo presentato un po' ridondante: sarebbe forse meglio non ricopiare mai niente e ripescare `dal basso' del ramo le formule da analizzare (`asteriscando' quelle gi analizzate e non da ricopiare); tuttavia ci sembra che il calcolo che abbiamo introdotto si presti meglio all'utilizzo didattico in un corso di primo livello.
25

19 Il

8 x(P (x) Q(x)) xP (x) xQ(x). 9 P (a) yR(a, y), xy(R(x, y) P (x) P (y) zP (z )) xP (x). 10 x(P (x) Q(f (x)) xP (x) xQ(x). 11 x(Q(a) R(x)), x(R(x) Q(a) Q(x)) x(P (x) Q(x)). 12 x(P (x) Q(a)) Q(a) P (b). 13 x(Q(x) zP (z )) y(Q(y) P (y)). 14 x(P (x) yQ(y)) yx(P (x) Q(y)); 15 Q(a) (P (f (a)) Q(g(a))) y(xP (x) 16 x(P (x) Q(x)) yS (y) yx((P (x) S (y)) (Q(x) S (y))). 17 x(P (x) Q(x) z Q(z )). 18 xP (x) yxR(x, y) yxz (P (x) R(z, y)). 19 y(P (y) P (f (y))) xP (f (x)). 20 xP (x) yQ(y) yx(Q(y) P (x)). 21 xyR(x, y), xy(R(x, y) (P (x) P (y))) xP (x) xP (x). 22 x(P (x) Q(x) zP (z )) z ((xP (x) P (z )) (xQ(x) P (z ))). 23 x(P (x) yQ(y)), z (Q(z ) P (z ) P (f (z ))) xP (x). 24 yP (y) x(Q(x) S (x)) P (a) Q(b) S (b). 25 xP (x), x(P (x) P (f (x))), x(Q(x) Q(f (x)))
x(P (x) Q(x)).

26 x(P (x) P (f (x))) x(P (x) Q(x)). 27 R(a, b, c), xyz (R(x, y, z ) R(y, y, z )), xyz (R(x, y, z ) R(x, y, y)) xR(x, x, x). 28 x(P (x) Q(x)), y(P (y) Q(y)) xP (x).
26

29 xy(R(x, y) Q(x)), xy(R(x, y) R(y, x))


xy (R(x, y ) Q(x) Q(y )).

30 x(P (x) yQ(y) yR(y)) x(P (x) yQ(y)) x(P (x) R(x)). 31 xR(x, f (a)) yR(g(y), y). 32 xyz (D(x, y, z ) P (y)), xyz (D(x, y, z ) P (x) P (y) R(x, y)) xyR(x, y). 33 xy(R(x, y) R(y, y)), xy(R(x, x) R(x, y) R(y, y)) . 34 xyz (D(x, y, z ) D(x, x, y)), yzD(a, y, z ) D(a, a, a). 35 xR(x, f (x)), xy(R(f (x), f (y)) R(f (x), y)) xR(x, x) 36 yz (R(y, z ) P (z )), xyz (R(x, z ) R(y, z )) y(R(a, y) P (y)) 37 xy(R(x, y) P (x) P (y)) y(xR(x, y) P (y)) 38 xP (x), x(Q(x) P (x) S (x)) x(P (x) S (x)) xQ(x) 39 y(Q(y) P (y) P (f (y))) x(yQ(y) P (x)).
5.2 Ricerca di Modelli

Se l'enunciato

soddisfacibile, esso ha un modello: la dimostrazione del teorema 2 dice Anche

come fare per estrarlo dal fallimento del processo di ricerca di una refutazione.

se non abbiamo dato tale dimostrazione, ne riassumiamo qui le informazioni salienti utili negli esercizi. Per costruire un modello, suciente esplorare

un solo ramo

dell'albero costruito

dalla nostra procedura equa (purch sia un ramo che non chiuda, s'intende). Tale ramo pu essere nito od innito, distinguiamo a tal proposito due casi:

(a) (b)

caso in cui il ramo nito (terminazione); caso in cui il ramo innito (non terminazione).

qualche volta possibile che, a seconda del ramo che si sceglie, si possa avere o meno terminazione.

27

Caso(a)

(terminazione) Siamo autorizzati a dichiarare lo stato di terminazione

quando

solo

20

(1) abbiamo sempre ricopiato lungo il ramo tutte le formule universali che comparivano; (2) ci troviamo di fronte nel nodo terminale solo a formule atomiche oppure a formule il cui operatore principale il quanticatore universale; (3) tutte le possibili istanziazioni

B (t/x) (con xB t

che compare nel nodo terminale) presente nel ramo.

sono gi state fatte, per ogni termine ground

Avendo dichiarato lo stato di terminazione, si costruisce il contromodello nel modo seguente. La struttura -

A = (A, I )

cos individuata:

l'insieme dei termini chiusi

presenti nel ramo.

- per ogni simbolo di funzione elementi t1 , . . . , tn appartiene ad -

di ariet

n, I (f )

la funzione che, calcolata sugli

A, d come risultato il termine f (t1 , . . . , tn ) se tale termine t1 , . . . , tn An

A (cio se c' nel ramo) e d un valore arbitrario in caso contrario. n)


contiene i ta-

I (P )

(per

P
21

simbolo di predicato di ariet

li che

P (t1 , . . . , tn )

appartiene all'insieme di enunciati che etichettano il nodo

terminale.

Caso(b)

(non terminazione) Questo caso pi dicile, in quanto occorre prevedere dal-

l'esterno l'andamento del ramo innito (questo caso non eliminabile, in quanto il calcolo non decidibile). Si noti che non ogni ramo innito buono per estrarre un modello: per essere buono deve soddisfare il requisito di equit illustrato nel paragrafo precedente. Qualora si riesca a prevedere l'andamento di un ramo innito buono, si estrae il contromodello

A = A, I t

con le solite modalit:

l'insieme dei termini chiusi

presenti nel ramo.

accertarsi che le tre condizioni seguenti valgano davvero costituisce errore frequente negli esercizi. fatto si pu esprimere in modo pi sintetico dicendo che, nella struttura A che stiamo costruendo, si avr A |= P (t1 , . . . , tn ) precisamente qualora l'enunciato atomico P (t1 , . . . , tn ) compare nell'etichetta del nodo terminale.
21 Questo

20 Non

28

I (f )

denito come segue:

I (f )(t1 , . . . , tn ) =
-

f (t1 , . . . , tn )
arbitrario,

se

f (t1 , . . . , tn ) A

altrimenti

I (P ) = { t1 , . . . , tn | P (t1 , . . . , tn )

compare nelle etichette del ramo}.

Vediamo alcuni esempi.

Esempio 5.

Vogliamo trovare un contromodello all'enunciato

x(P (x) Q(x)) (xP (x) xQ(x))

(12)

(che risulter quindi non essere logicamente valido). A tale scopo, lo neghiamo, lo portiamo in fnn e attiviamo la nostra procedura:

P (a), Q(a), x(P (x) Q(x)), P (b), Q(b) . . . P (a), Q(a), P (b) Q(b), x(P (x) Q(x)), Q(b) . . . P (a), P (a) Q(a), P (b) Q(b), x(P (x) Q(x)), Q(b) P (a), P (a) Q(a), x(P (x) Q(x)), Q(b) P (a), x(P (x) Q(x)), Q(b) P (a), x(P (x) Q(x)), xQ(x) xP (x), x(P (x) Q(x)), xQ(x) x(P (x) Q(x)) xP (x) xQ(x)
Abbiamo applicato nell'ordine le regole di espansione per e

(due volte),

(due volte)

(due volte).

I puntini indicano rami in sospeso, dovuti alle altre diramazioni della

regola per

che non necessario analizzare (poich stiamo cercando un contromodello, ci

basta aver trovato un ramo che non chiude, indipendentemente da quanto succede sugli altri rami). Nel nodo terminale, ci sono solo formule atomiche e la formula quanticata universalmente

x(P (x) Q(x)): a


e

quest'ultima stata istanziata su tutti i termini ground pertanto possiamo dichiarare lo stato di terminazione.

presenti nel ramo (che sono

b),

Otteniamo il seguente contromodello vericare che si ha proprio

A: A = {a, b}

A |= P (a), A |= Q(a).
e

facile quindi

A |= x(P (x) Q(x)), A |= xP (x) A

A |= xQ(x):

l'enunciato (12) falsicato da

e pertanto non logicamente valido.

Esempio 6.

La seguente inferenza chiramente errata:

29

Tutte le ciminiere fumano. Mia nonna fuma. Quindi mia nonna una ciminiera. Per provarlo, basta trovare un contromodello all'enunciato

x(C (x) F (x)) F (n) C (n).


Ci pu essere fatto nel modo seguente:

(13)

x(C (x) F (x)), F (n), C (n) . . . x(C (x) F (x)), F (n), C (n) F (n), C (n) x(C (x) F (x)), F (n), C (n) x(C (x) F (x)) F (n) C (n)
dove abbiamo utilizzato, nell'ordine, le regole di espansione per

raggiungendo lo non stata

stato di terminazione (si osservi che nell'ultimo passaggio la formula aggiunta perch era gi presente) .

C (n)

Esempio 7.

Vogliamo trovare un contromodello all'enunciato

(xP (x) (y (P (y ) P (f (y )))))


che quindi non risulter logicamente valido. Procedendo nel solito modo si ottiene

(14)

. . .
P (a), P (f (a)), . . . , P (f i (a)), y (P (y ) P (f (y )))

. . .

P (a), P (f (a)), P (f (f (a))), y (P (y ) P (f (y ))) . . . P (a), P (f (a)), P (f (a)) P (f (f (a))), y (P (y ) P (f (y ))) P (a), P (f (a)), y (P (y ) P (f (y ))) . . . P (a), P (a) P (f (a)), y (P (y ) P (f (y ))) P (a), y (P (y ) P (f (y ))) xP (x), y (P (y ) P (f (y ))) xP (x) y (P (y ) P (f (y )))
Qui abbiamo chiaramente un ramo che non termina, ma di cui siamo riusciti a farci un'idea precisa (si noti che l'espressione `farsi un'idea precisa' indica un'operazione non meccanizzabile). Otteniamo quindi il seguente contromodello

A: A = {a, f (a), f 2 (a), f 3 (a), . . .}

30

A |= P (a), A |= P (f (a)), . . . , A |= P (f i (a)), . . .

Il contromodello che ci ha fornito la

nostra procedura semi-automatica non certamente il pi economico possibile: potevamo ad esempio prendere una struttura con un solo elemento

a,

porre

f (a) = a

I (P ) = {a}.

Tuttavia, la procedura semiautomatica ha il merito di fornirci (in un senso che andrebbe precisato), contromodelli al massimo grado di generalit.

ESERCIZI

Provare che le seguenti formule non sono logicamente valide ed esibirne un

contromodello:

1 xP (x) xQ(x) x(P (x) Q(x)). 2 x(P (x) Q(x) S (x)) x(P (x) Q(x)) x(P (x) S (x)). 3 x(R(x, x) yR(y, x)) xyR(x, y). 4 x(P (x) Q(x)) xP (x) xQ(x). 5 x(P (x) Q(x)) P (a) x(P (x) P (a)) x(Q(x) P (a)). 6 x(P (x) Q(x)) xP (x) xQ(x). 7 xP (x), y(P (y) P (f (y))) . 8 x(P (x) Q(x) R(x)) xP (x) x(Q(x) R(x)). 9 P (f (a)), x(P (f (x)) P (x)) P (f (f (a))). 10 x(P (x) Q(x)) xP (x) xQ(x). 11 xR(x, f (x)) xR(x, x). 12 xP (x) xQ(x) xP (x) xQ(x). 13 xyR(x, y) zR(z, z ), P (a0 ). 14 x(P (x) Q(x) R(x)) xP (x) xQ(x), xP (x) xR(x); 15 xR(f (x), x) xR(a, f (x)). 16 xP (x) xQ(x) x(P (x) Q(x)).
31

17 xP (x) y(P (y) zQ(z )). 18 xzR(x, z ) xR(a, x). 19 x(P (x) y(R(x, y) P (y))) P (a0 ). 20 xR(a, x) xz R(x, z ). 21 x(P (x) y(R(x, y) P (y))) P (a0 ). 22 x(R(a, x) S (a, x)) yR(a, y). 23 xyR(x, y) xy(R(x, y) (P (x) P (y))). 24 yR(a, y), x(R(a, x) S (a, x)) . 25 xyR(x, y) xy(R(x, y) (P (x) P (y))). 26 x(P (x) Q(x) S (x)) z (xP (x) xQ(x) P (z )). 27 xR(x, x) xR(x, f (x)). 28 x(P (x) Q(x) S (x)) z xy(P (x) Q(y) P (z )). 29 xR(f (x), x) xR(x, f (x)). 30 xQ(x), xyR(x, y) x(Q(x) R(x, x)). 31 xyR(x, y) xy(R(x, y)). 32 x(P (x) Q(x) R(x)) x(P (x) Q(x)) xR(x). 33 x(P (x) P (g(x))) x(P (x) yQ(y)). 34 x(P (x) yR(x, y)) xP (x) xyR(x, y). 35 xy(R(x, y) Q(x)), xy(R(x, y) R(y, x))
xy (Q(x) Q(y ) R(y, x)).

36 x(R(x, x) Q(x)) xy(R(x, y) Q(x)). 37 xR(x, x) xR(x, f (x)).


32

38 xyR(x, y) xR(x, x). 39 xy(R(x, y) R(y, x)) xyR(x, y). 40 xy(R(x, y) R(y, x)) xyz (R(x, y) R(y, z ) R(x, z )). 41 xR(f (x), x) xyR(x, y). 42 xR(x) x(yP (y) Q(x)). 43 R(a0 , b0 ), x(R(x, a0 ) R(x, b0 )) xyR(y, x). 44 xy(R(x, y) P (x)) xR(x, f (x)). 45 R(a, b), xy(R(x, y) R(f (x), f (y))) 46 xy(R(x, y) R(y, x)) xyz (R(x, y) R(y, z ) R(x, z )) 47 xR(x, f (x)), xy(R(f (x), f (y)) R(x, y)) 48 x(P (x) Q(x)), xP (x), xQ(x) x(P (x) Q(x)) 49 x(P (f (x)) P (g(x))) x(P (f (x)) P (g(x))) 50 xR(x, x), xy(R(x, y) R(y, x)) x(R(a, x) R(x, b)) 51 x(R(f (x), x), xy(R(x, y) R(f (x), f (y))) 52 z (xD(x, x, z ) yD(z, y, y)) 53 yxR(x, y) xy(R(x, y) R(y, x)).
5.3 Ulteriori Esempi

In questo paragrafo mostriamo come utilizzare quanto abbiamo appreso in alcuni ambiti specici. Tenendo conto della esiguit del materiale di un corso propedeutico, gli esempi che potremo presentare saranno piuttosto gracili, speriamo tuttavia che essi aiutino a comprendere l'utilit dell'approccio logico a problemi di varia natura (linguistico, matematico, informatico). I limiti a cui dobbiamo sottostare sono di una duplice natura: a) di natura espressiva, dovuti al fatto che sappiamo trattare solo problemi formalizzabili nella logica del primo

33

ordine senza identit; b) di natura realizzativa, dovuti al fatto che il calcolo che abbiamo presentato (mancando ad esempio del meccanismo fondamentale dell'unicazione, presente invece nella versione con variabili libere dei tableaux) non molto eciente per problemi signicativi.

Esempio 8.

Supponiamo di voler formalizzare il seguente ragionamento: `

Paolo e Carlo

sono fratelli; Paolo ha un cugino, quindi anche Carlo ha un cugino'.

Questo ragiona-

mento non puramente logico, esso soggiace a `postulati di signicato' (nel senso del losofo Carnap) relativi all'uso delle parole `fratello, cugino'; tali postulati devono essere specicati interamente per procedere ad un'opportuna formalizzazione. abbiamo analizzato le regole logiche per l'identit, invece del linguaggio Siccome non del paragra-

L1

fo 2, scegliamo un linguaggio pi semplice contenente una sola relazione binaria (che leggiamo con `x genitore di fratello di

G(x, y )
(`x con per

y ').

In tale linguaggio possiamo denire ed anche

F (x, y ) y ') c

y ')

con

z (G(z, x) G(z, y ))

C (x, y ) a

(`x cugino di

z w(F (z, w) G(z, x) G(w, y )).

Usiamo la costante

per Andrea e la costante

Carlo. Si tratta ora semplicemente di provare che l'enunciato

F (a, c) yC (a, y ) yC (c, y )


logicamente valido (si ricordi che

sono in realt abbreviazioni per le formule che

abbiamo introdotto sopra). Ritroviamo quindi un esercizio analogo a quelli del paragrafo 5.1, che pu essere facilmente risolto con le tecniche di ricerca di una refutazione l illustrate.

Esempio 9.

In alcuni casi si possono ritrovare inferenze che possono sembrare un po' Dalle

paradossali, ma il paradosso risiede tutto nell'ambiguit del linguaggio ordinario. due premesse (che possiamo ritenere plausibilmente vere)

Alcuni pazienti amano tutti i

dottori e Nessun paziente ama un incapace, formalizzate rispettivamente con22


x(P (x) y (D(y ) A(x, y )))
e con

y x(P (x) A(x, y ) I (y ))


usato tre predicati unari P (x), D(x), I (x) (rispettivamente per `x un paziente, un dottore, un incapace') e un predicato binario A(x, y ) (per `x ama y '). Le traduzioni dal linguaggio ordinario al linguaggio formalizzato che facciamo sono piuttosto empiriche; lo studio di metodi sistematici per tali traduzioni rientra nel settore della semantica dei linguaggi naturali.
34

22 Abbiamo

segue il fatto (plausibilmente falso) che

Non esistono dottori incapaci.

Questo perch

possiamo appurare con le nostre tecniche che l'enunciato

x(P (x) y (D(y ) A(x, y ))) y x(P (x) A(x, y ) I (y )) x(D(x) I (x))
logicamente valido. La spiegazione dell'apparente paradosso sta nel fatto che

incapace

usato in senso soggettivo nella seconda premessa e in senso oggettivo nella conclusione dell'inferenza.

Esempio 10.

Anche il metodo di ricerca di contromodelli del paragrafo 5.2 pu essere

utile in esempi linguistici concreti. Se manteniamo le due premesse dell'esempio precedente, possiamo chiederci se da esse segue che equivale a chiederci se l'enunciato

Esistono dottori amati da tutti i pazienti;

questo

x(P (x) y (D(y ) A(x, y ))) y x(P (x) A(x, y ) I (y )) x(D(x) y (P (y ) A(y, x))
sia o meno logicamente valido. Di fatto non lo e la ricerca di un contromodello produce varie possibilit in proposito (a seconda del ramo non chiuso che si sceglie). Ad esempio, si ottiene facilmente che un contromodello fornito da una situazione limite in cui c' una sola persona in gioco, che un paziente, non un dottore e non un incapace.

Esempio 11.

Tutti i ragionamenti che si trovano nei testi matematici possono essere

formalizzati in un opportuno ambito logico. Questo fatto pu essere usato per costruire dimostratori automatici di teoremi. Il vero problema che si ritrova in questo settore sta non solo nell'indecidibilit dei calcoli logici, ma anche nelle svariatissime possibilit che ci sono nella ricerca delle dimostrazioni; tali possibilit provocano facilmente esplosioni combinatorie tali da non essere sopportabili nemmeno da calcolatori molto potenti. Solo con tecniche molto ranate si pu ottenere qualche risultato concreto. Vediamo per come riprodurre formalmente un ragionamento matematico semplicissimo con i pochi strumenti che abbiamo. Consideriamo un grafo

23

transitivo in cui da ogni vertice si diparta almeno Il ragionamento informalmente

un arco; vogliamo provare che tale grafo riessivo. il seguente: prendiamo un vertice

a,

tracciamo un arco

aRb

(che esiste per ipotesi); poi

osserviamo che, per simmetria, c' un arco cludiamo che

bRa

e, inne, per transitivit da

aRbRa

con-

un vertice riessivo (cio che vale

aRa).

Essendo

arbitrario, abbiamo

23 Per

grafo si intende un insieme dotato di una relazione simmetrica.


35

la conclusione. Formalmente, si tratta di provare che l'enunciato

xy (R(x, y ) R(y, x)) xy z (R(x, y ) R(y, z ) R(x, z )) xyR(x, y ) xR(x, x)


logicamente valido. I passi della dimostrazione formale fatta con le tecniche del paragrafo 5.1 corrispondono esattamente al ragionamento matematico intuitivo che abbiamo appena illustrato. `Prendere un vertice per

a'

corrisponde a utilizzare una prima regola di espansione le regole per

`tracciare un arco

aRb' corrisponde a usare

e poi per relativamente bRa corrisponR.

alla premessa

xyR(x, y ).

Osservare la presenza dell'arco in senso opposto

de ad utilizzare la regola per

relativamente alla premessa che esprime la simmetria di

Inne l'utilizzo della transitivit (istanziata su per

a, b, a)

corrisponde all'utilizzo della regola

sulla premessa che esprime la transitivit (la chiusura della ricerca della refutazione

si ottiene inne mediante le regole per i connettivi proposizionali

, ).

Esempio 12.

Il metodo del parafrafo 5.2 pu essere utilizzato per ottenere controesempi

a congetture matematiche, sempre con i soliti limiti (di indecidibilit e di complessit della ricerca), che rendono la strada dicilemente praticabile su esempi signicativi (quantomeno con gli strumenti che abbiamo). Ad esempio, un grafo non necessariamente transitivo; se inizializziamo il nostro procedimento di ricerca di un modello con la negazione dell'enunciato

xy (R(x, y ) R(y, x)) xy z (R(x, y ) R(y, z ) R(x, z ))


otteniamo (dopo aver eliminato i quanticatori esistenziali con i parametri aver applicato la regola per

a, b, c

e dopo

xy (R(x, y ) R(y, x)), R(a, b), R(b, c), R(a, c).


A questo punto, dobbiamo istanziare i quanticatori universali di sui parametri la regola per

xy (R(x, y ) R(y, x))

a, b, c

in tutti i modi possibili (che sono ben 9!) e applicare esaustivamente

Alcuni rami chiudono, tra i rami che non chiudono abbiamo ad esempio

xy (R(x, y ) R(y, x)), R(a, b), R(b, c), R(b, a), R(c, b), R(a, c).
Possiamo ora dichiarare lo stato di terminazione ed estrarre il contromodello che sar un grafo con tre vertici (cio

a, b, c) e con due archi (tra a e b e tra b e c, rispettivamente).

Gli

altri rami che non chiudono danno contromodelli leggermente dierenti, in cui alcuni dei vertici

a, b, c

possono essere riessivi.

36

Per non sbagliare ...


consigliamo di

In chiusura, segnaliamo alcuni tipi di errori purtroppo molto frequenti:

rileggere bene questo paragrafo prima di presentarsi all'esame scritto.

C' una fondamentale dierenza fra le regole che utilizziamo per portare una formula in forma normale negativa e le regole del calcolo dei tableaux: le prime sono regole di riscrittura, mentre le seconde sono

si applicano solo al connettivo pi esterno:

regole di tipo analitico.

Le regole di tipo analitico

questo vuol dire che, se in un ta-

bleau ci troviamo a dover analizzare una formula del tipo

S (a, b) xyR(x, y ), non

possibile utilizzare la regola per il quanticatore esistenziale e rimpiazzarla ad esempio con

S (a, b) xR(x, c).

Bisogner

prima

applicare la regola per la congiunzione

producendo con

P (a), xyR(x, y ), poi

istanziare il quanticatore universale ad esempio si potr applicare la regoSi noti che

b producendo S (a, b), yR(b, y ), xyR(x, y ) e solo ora

la del quanticatore esistenziale generando

S (a, b), R(b, c), xyR(x, y ).

xyR(x, y ) stata ricopiata, per cui sar possibile istanziare x di nuovo (ad esempio
con

a)

e applicare ancora la regola per il quanticatore esistenziale (che introdurr

una costante

diversa da

a, b, c).

Se avessimo istanziato illegalmente da subito il

quanticatore esistenziale, ci saremmo preclusi questo utilizzo multiplo e dierenziato. Purtroppo non infrequente trovare negli scritti anche applicazioni illegali

delle regole dei tableaux che producono espressioni senza senso, che non sono nemmeno formule. Per non sbagliare,

occorre attenersi in modo rigidissimo al principio

analitico :

solo la regola relativa al connettivo pi esterno pu essere applicata.

Il fatto che le regole per i tableaux siano di tipo analitico rende ancora pi grave la mancata individuazione del connettivo pi esterno, che - ricordiamo - soggetta alle

convenzioni sulle precedenze

spiegate in questa dispensa e nella dispensa

sulla parte proposizionale. Ad esempio, la formula

P (a) Q(b) P (a) si legge con


l'errore di lettura produce

(P (a) Q(b)) P (a) e non con P (a) (Q(b) P (a)):

una forma normale negativa dierente e di conseguenza un tableau dierente.

Si faccia attenzione al testo degli esercizi proposti e si ricordi che un tableau un meccanismo

refutativo,

per cui per applicarlo al problema di determinare la validit

logica di un a formula occorre preventivamente

negare la formula stessa.

37

La regola per il quanticatore esistenziale richiede l'introduzione di una costante

nuova:

di conseguenza, se alla prima applicazione di tale regola si usa la costante

a,

alle seconda applicazione della regola si dovr per esempio usare la costante terza la costante

b,

alla

c,

ecc.

La regola per il quanticatore universale in apparenza meno delicata: qualunque sostituzione con termini ground va bene. Tuttavia anche qui sono nascoste delle

sottigliezze: quando si fa la ricerca di una refutazione, bene

limitarsi alle sostituzioni


Invece, quando si

che appaiono pi promettenti

(pena l'insorgere di esplosioni combinatorie che sono

dicilmente controllabili col calcolatore, guriamoci a mano!).

ricerca un contromodello, necessario, come spiegato nel paragrafo 5.2,

eseguire

tutte le sostituzioni possibili.

38

Appendice: completezza

dimostrazione dei teoremi di validit e

Riportiamo qui la dimostrazione dei teoremi di validit e completezza enunciati nel paragrafo 5.1. Supponiamo di applicare la nostra procedura di ricerca di una refutazione e di produrre via via degli alberi

T0 T1 T2
etichettati con insiemi niti di enunciati di della sola radice, etichettata con un certo

(15)

L+ ; 0

supponiamo che

T0

sia l'albero consistente

(usualmente,

consister di un solo enunChiamiamo

ciato, ossia dell'enunciato che vogliamo testare per la soddisfacibilit). l'unione degli alberi etichettati

Ti :

si noti che ogni ramo di

potr essere nito o innito

e, nel caso in cui sia nito, potr essere chiuso o meno. Nel caso in cui (15) sia una refutazione, la successione stessa nita, certo

T = Ti

per un

e tutti i rami di

Ti

sono chiusi. In tal caso, il teorema di validit dice che non

possibile soddisfare simultaneamente tutte le formule di

0 :

Teorema di validit. Se l'esecuzione (15) termina in una refutazione, non esiste una
L+ -struttura A tale che vale A |= 0 .24

Dim.
N
ogni

Sia

una refutazione, la cui radice sia etichettata con

0 : A

per induzione sul numero tale che vale

dei nodi di

T,

proviamo che non esiste una

L+

struttura

A |= B

per

B 0 . N = 1 banale: A
che un albero con un solo nodo etichettato per un certo enunciato

Il caso se

una refutazione solo

contiene sia

A:

chiaramente

non possono

essere vere entrambe simultaneamente. Supponiamo che sia

N > 1

e facciamo quattro casi, a seconda di quale sia la regola

applicata per generare i nodi gli della radice di

T.

Primo caso: T

stata applicata la regola per la congiunzione; quindi, la radice di

etichettata con

, B1 B2

e ha un solo glio che etichettato con

, B1 , B2 .

Applicando l'ipotesi induttiva alla refutazione che ha come radice tale nodo glio, sappiamo che non esiste nessuna

L+ -struttura A

tale che vale

A |= , A |= B1

24 Ricordiamo

dal paragrafo 3.3 che A |= 0 signica A |= B , per ogni B 0 .


39

A |= B2 .

Segue, che non esiste nessuna come richiesto.

L+ -struttura A

tale che vale

A |=

A |= B1 B2 , Secondo caso:

stata applicata la regola per la disgiunzione; quindi, la radice di

etichettata con

, B1 B2

e ha due gli che sono etichettati con

, B1

e con

, B2 ,

rispettivamente. Applicando l'ipotesi induttiva alle due refutazioni che hanno come radici tali nodi gli, sappiamo che non esiste nessuna

L+ -struttura A A

tale che vale

A |=
e

A |= B1

e che non esiste nessuna

-struttura

tale che vale

A |=
e

A |= B2 .

Segue, che non esiste nessuna come richiesto.

L+ -struttura A

tale che vale

A |=

A |= B1 B2 , Terzo caso:
ce di

stata applicata la regola per il quanticatore universale; quindi, la radi-

etichettata con

, xB e ha un solo glio che etichettato con , xB, B (t/x), t


di

per qualche termine ground

L+ .
e

Applicando l'ipotesi induttiva alla refutazione

che ha come radice tale nodo glio, sappiamo che non esiste nessuna

L+ -struttura

tale che vale

A |= , A |= xB
+
-struttura

A |= B (t/x). A |=

Ne segue che, in particolare, non e

esiste nessuna

tale che vale

A |= xB :

questo perch, se in

una strutture vale

A |= xB ,

allora deve valere anche

A |= B (t/x).25

Quarto caso:
radice di

stata applicata la regola per il quanticatore esistenziale; quindi, la

etichettata con

, xB e ha un solo glio che etichettato con , B (c/x), , B (x).


Applicando l'ipotesi induttiva

per qualche parametro

che non compare in

alla refutazione che ha come radice tale nodo glio, sappiamo che non esiste nessuna

L+ -struttura A
di tale

tale che vale

A |=
e

A |= B (c/x).

Sia per assurdo

una

L+ A, c,

struttura tale che valgono

A |=

A |= xB ;

per qualche elemento

a
+

del dominio

-struttura, varr

A |= B ( a/x).

Possiamo modicare la

-struttura

ottenendo una

L+ -struttura A a.

che esattamente come

A,

solo che il parametro

c
in

ora interpretato su

Siccome gli enunciati

non contengono il parametro

essi saranno ancora tutte veri in

A. (+)

Quanto al valore di verit di

B (c/x),

siccome

ora

hanno la stessa interpretazione (ossia sono entrambi interpretati ne risulta dalla della nota 11 del paragrafo 3.2, che

sull'elemento

a),

A( a/x)

A(c/x)
25 Si

hanno lo stesso valore di verit. Ma l'enunciato

A( a/x)

vero in

ed anche

ricordi quanto detto nella nota 11 del paragrafo 3.3, circa l'interpretazione sostituzionale dei quanticatori.

40

in

A,

perch a sua volta la formula

A(x)

non contiene il parametro

c.

Quindi anche

l'enunciato

A(c/x)

vero in

A.

Abbiamo cos stabilito che gli enunciati

, A(c/x)

sono tutti veri in

A,

contro l'ipotesi induttiva.

Proviamo ora anche il pi impegnativo risultato di completezza:

Teorema di completezza. Se l'esecuzione (15) equa e non termina in una refutazione,


allora esiste una L+ -struttura A tale che vale A |= 0 . Dim.
Consideriamo l'albero

T :

esso pu essere nito, nel qual caso ha un ramo completo

terminato e aperto, oppure innito ed anche in questo caso possiede un ramo completo (che sar innito).Questo per il lemma di Knig, che dice che un albero innito a diramazione nita possiede sempre un ramo innito (vedi oltre per la dimostrazione). Sia ramo completo (nito o innito che sia) e siano etichettano i nodi di

tale

0 , 1 , 2 , . . . H

gli insiemi di formule che

.
uguale all'unione dei

Tenendo conto della denizione di equit, se poniamo abbiamo che

i ,

ha le seguenti propriet:

(H0) nessuna formula atomica chiusa (H1) se (H2) se (H3) se (H4) se

di

L+

tale che e o

AH

A H ;

H H H H

contiene contiene contiene contiene

A1 A2 , A1 A2 , xA,

allora contiene allora contiene

A1 A1

A2 ; A2 ; t
di

allora contiene

A(t)

per qualche termine chiuso

L+ ;26
di

xA,

allora contiene

A(t/x)

per ogni termine chiuso

L+

che

compare in qualche formula di

H.

Le propriet (H1)-(H4) seguono immediatamente dalla denizione di equit. Inne, si noti che (H0) vale perch le formule atomiche e atomiche negate non vengono mai rimosse e non ci pu essere un

che contenga sia una formula atomica che la sua negazione

(altrimenti, il ramo sarebbe chiuso). Gli insiemi

che soddisfano le condizioni

(H 0) (H 4)

sono detti insiemi di Hintikka;

il prossimo lemma dice come convertire un insieme di Hintikka rende vere le

in una

L+ -struttura

che

A H.

Ci termina la nostra dimostrazione, perch

0 H .

26 Per

come stata denita la nostra procedura, questo t sar in eetti un certo parametro c.

41

Lemma Dato un insieme di Hintikka H , esiste una L+ -struttura AH tale che per ogni
A H si ha AH |= A.

Dim. - AH se

Deniamo una

L+ -struttura AH = (AH , IH ) L+

nel modo seguente:

l'insieme dei termini chiusi di

che compaiono in si denisce

H;
come segue:

un simbolo di funzione di ariet

n,

IH (f )
se

IH (f )(t1 , . . . , tn ) =

f (t1 , . . . , tn ),
arbitrario,

f (t1 , . . . , tn ) AH

altrimenti;

se

un simbolo di predicato di ariet

n, si denisce IH (P ) come l'insieme dei (t1 , . . . , tn )

tali che

P (t1 , . . . , tn ) H .

Per induzione, banale vericare che

()
per ogni termine chiuso di

IH (t) = t L+
che compare in

(si osservi che se un termine compare in

un insieme di formule, anche i suoi sottotermini banalmente vi compaiono). Verichiamo ora per induzione su

che, se

A H,

allora

AH |= A.
abbiamo

Se

atomica, diciamo

P (t1 , . . . , tn ),

AH |= P (t1 , . . . , tn )

sse (per le

clausole di verit del paragrafo 3.2)

(IH (t1 ), . . . , IH (tn )) IH (P ) IH ) P (t1 , . . . , tn ) H .

sse (per la (*))

(t1 , . . . , tn ) IH (P )
Se

see (per la denizione di

atomica negata, diciamo vale sse

P (t1 , . . . , tn ),

sappiamo dal caso precedente che

AH |= P (t1 , . . . , tn )
paragrafo 3.2.

P (t1 , . . . , tn ) H .

Per (H0),

P (t1 , . . . , tn ) H ,

quindi

AH |= P (t1 , . . . , tn ) e inne AH |= P (t1 , . . . , tn ),

applicando le clausole di verit del

Sia

A uguale a A1 A2 .

Se

A H,

allora

A1 , A2 H

per (H1); allora

AH |= A1 A2
cose

sse, applicando le clausole di verit del paragrafo 3.2, (AH che valgono entrambe per ipotesi induttiva.

|= A1

AH |= A2 ),

Sia

A uguale a A1 A2 .
allora

Se

A H , allora A1 H

A2 H

per (H2), sia ad esempio

A1 H ;

AH |= A1

per ipotesi induttiva e quindi, applicando le clausole di

verit del paragrafo 3.2,

AH |= A1 A2 .
42

Sia

A uguale a xB ;

allora

B (t) H

per qualche termine ground

t di L+

(per (H3)),

quindi

AH |= B (t) (per ipotesi induttiva) e perci AH |= xB (x) (per l'interpretazio-

ne sostituzionale delle clausole di verit dei quanticatori della nota 11 del paragrafo 3.2).

Se

xB ,

allora

B (t) H

per ogni

t AH

per (H4), perci vale

AH |= B (t)

per

ogni

t AH

per ipotesi induttiva. Ogni

a AH

uguale ad un termine chiuso equivale a

di

; siccome

IH ( a) = a = t = IH (t)
ogni

(per la

()), AH |= B ( a)

AH |= B (t)

(si ricordi la vale

(+) della nota 11 del paragrafo 3.2), che sappiamo valere. a AH ,


possiamo concludere

Perci, siccome

AH |= B ( a)

AH |= xB .

Resta in sospeso solo la dimostrazione del lemma di Knig: tale risultato non ha nulla a che fare con i calcoli logici, trattandosi di un principio combinatorio (che si pu essere tentati, non senza qualche ragione, di considerare intuitivamente evidente). Per darne una prova formale, deniamo gli alberi come insiemi di liste di numeri naturali, avvertendo per che in letteratura sono note anche altre denizioni della nozione di albero, non necessariamente equivalenti alla nostra. Con N indichiamo l'insieme dei numeri naturali (zero escluso) e con N l'insieme delle liste nite di numeri naturali (inclusa la lista vuota che chiamiamo ). Un albero T un sottoinsieme non vuoto di N (cio un insieme di liste di numeri naturali) con le seguenti propriet: i) se T e = , allora T ; ii) se i T e j < i, allora j T . Per esempio, i due alberi della gura sottostante corrispondono rispettivamente agli insiemi di liste { , 1, 11} e { , 1, 2, 21, 22}. Il nodo 21 dell'albero (b) viene cos indicato perch il percorso per raggiungerlo dalla radice consiste nel prendere il secondo nodo della biforcazione e poi il primo nodo della biforcazione successiva. Lette in questo modo, le condizioni i) e ii) della denizione di albero risultano trasparenti: la condizione i) dice che se l'albero contiene il percorso che arriva al nodo deve contenere ogni segmento iniziale di tale percorso, mentre la condizione ii) dice ad esempio che, se la biforcazione al nodo contiene il terzo successore 3, allora deve contenere anche il primo ed il secondo dei successori, cio 1 e 2.
11 1 21 22 d d 1 d 2 d d d d

(a)

(b)

Per ogni nodo , i nodi del tipo i sono detti successori immediati (o gli) di . Un nodo senza successori immediati detto foglia. T a ramicazione nita sse ogni nodo di T ha un numero nito di
43

successori immediati. Un ramo di T una successione 0 , 1 , . . . (nita o innita) tale che ogni i+1 successore immediato di i , cio del tipo i n per qualche n N . Un ramo completo un ramo in cui 0 la radice e che o innito oppure il cui ultimo elemento una foglia. Entrambi gli alberi (a) e (b) della gura sopra sono a ramicazione nita. Nell'albero descritto in (a) esiste un'unica foglia, il nodo 11. Nell'albero in (b) le foglie sono i nodi 1 e 21, 22. Un esempio di ramo (completo) nell'albero in (b) la seguente successione: ,2,21. In (b) la radice ha due successori immediati, i nodi 1 e 2, in (a) la radice ha un solo successore immediato, il nodo 1.
Lemma

(di Knig) Un albero innito T a diramazione nita possiede un ramo innito.

Se N , | | indica la lunghezza di . Un nodo di T si dice prolungabile sse l'insieme {| | | T } non superiormente limitato, ossia sse non esiste un numero naturale maggiore di tutte le lunghezze dei tali che la lista (ottenuta giustapponendo e ) appartiene a T . Si noti che se un nodo prolungabile, tale uno dei suoi successori immediati (questo perch tali successori immediati sono niti, essendo l'albero a diramazione nita). La radice di T prolungabile: proviamo infatti per induzione su K , che se l'insieme {| | | T } limitato da K , allora T nito. Se K = 1, T ha la sola radice ed pertanto nito. Se K > 1 e la radice ha per successori immediati i nodi 1, 2, . . . , n, possiamo applicare l'ipotesi induttiva agli n alberi Ti = { | i T } per i = 1, . . . , n (sono gli alberi che stanno sopra i successori immediati della radice) e concludere che T stesso nito. Possiamo allora denire induttivamente il ramo innito 0 , . . . , i , . . . ponendo 0 uguale alla radice e scegliendo i+1 fra i nodi prolungabili successori immediati di i .
Dim.

44