Deduzione naturale
Linguaggi
15: Deduzione naturale
Claudio Sacerdoti Coen
<[email protected]>
Universitá di Bologna
28/03/2011
Claudio Sacerdoti Coen
Deduzione naturale
Outline
1
Deduzione naturale
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione
Wikipedia: “. . . ”
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: sintassi
Definiamo ora la sintassi degli alberi (di prova) per la deduzione
naturale.
Note: in un albero di prova Γ F
la radice dell’albero è la conclusione F
le foglie dell’albero sono ipotesi scaricate [F ] o meno F
un’ipotesi non scaricata (o globale) F deve appartenere a Γ
un’ipotesi scaricata [F ] è un’ipotesi locale e deve essere
“scaricata” da un qualche passo di inferenza
i nodi interni dell’albero debbono appartenere alla lista di
passi di inferenza che stiamo per elencare
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: passi di inferenza
Vi sono due tipi di passi di inferenza:
1
Regole di introduzione di un connettivo:
ci dicono tutti i modi in cui concludere direttamente una
formula con in testa un determinato connettivo
come concludo . . . ?
2
Regole di eliminazione di un connettivo:
ci dicono tutti i modi in cui utilizzare direttamente un’ipotesi
con in testa un determinato connettivo
cosa ricavo da . . . ?
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: passi di inferenza
Usiamo la seguente sintassi per le regole di inferenza:
F1 . . . Fn
F
(NOME REGOLA)
La formula F è la conclusione della regola.
Le formule F1 , . . . , Fn sono le premesse della regola.
[A]
La premessa Fi verrà indicata con ... per indicare che è
Fi
possibile assumere localmente A per concludere Fi .
Una regola senza premesse (n = 0) si dice assioma.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: alberi di deduzione
Gli alberi di deduzione vengono indicati componendo
ricorsivamente regole di inferenza. Esempio:
F1 ...Fn
H1
(regola1)
...
G1 ...Gm
Hl
H
(regola2)
(regola3)
n
Nell’esempio F1H...F
(regola1) è un sottoalbero dell’intero
1
albero di deduzione.
La struttura ricorsiva permette di definire funzioni per ricorsione
strutturale su alberi di deduzione e di effettuare prove per
induzione strutturale.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: passi di inferenza
Ogni passo di inferenza ammette sempre due letture:
1
Bottom-up (dalle premesse alla conclusione):
date le premesse F1 , . . . , Fn , posso concludere F
2
Top-down (dalla conclusione alle premesse):
per concludere F posso ridurmi a dimostrare F1 , . . . , Fn
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: correttezza e invertibilità
n
Definizione: una regola F1 ...F
è corretta per la logica
F
classica/intuizionista quando F1 , . . . , Fn F (nella rispettiva
logica).
Noi saremo interessati solamente a regole corrette.
n
Definizione: una regola F1 ...F
è invertibile nella logica
F
classica/intuizionista quando per ogni i si ha F Fi (nella
rispettiva logica).
L’invertibilità gioca un ruolo importante nella ricerca delle prove:
se la regola è invertibile, può essere sempre applicata nella
ricerca top-down della prova.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ∧
Regole di introduzione:
A B
A∧B
(∧i )
Lettura bottom-up: se A e B allora A ∧ B.
Lettura top-down: per dimostrare A ∧ B debbo dimostrare sia A
che B.
Scrittura informale:
. . . e quindi A
. . . e quindi B
[e quindi A ∧ B]
L’applicazione della regola viene spesso lasciata informalmente
implicita.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ∧
Regole di introduzione:
A B
A∧B
(∧i )
Correttezza classica: A, B A ∧ B in quanto, per ogni mondo
v , se [[A]]v = [[B]]v = 1 allora [[A ∧ B]]v = max{[[A]]v , [[B]]v } = 1.
Correttezza intuizionista: A, B A ∧ B in quando se a ∈ [[A]]v e
b ∈ [[B]]v allora ha, bi ∈ [[A ∧ B]]v = [[A]]v × [[B]]v .
Invertibilità classica: se max{[[A]]v , [[B]]v } = 1 allora
[[A]]v = [[B]]v = 1 e quindi A ∧ B A e A ∧ B B.
Invertibilità intuizionista: se c ∈ [[A]]v × [[B]]v allora c = ha, bi per
qualche a ∈ [[A]]v e b ∈ [[B]]v e quindi A ∧ B A e A ∧ B B.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ∧
Regola di eliminazione:
[A][B]
..
.
A∧B
C
C
(∧e )
Lettura bottom-up: se A ∧ B e se ipotizzando A e B concludo C, allora
C.
Lettura top-down: per dimostrare C data l’ipotesi A ∧ B è sufficiente
dimostrare C sotto le ipotesi A e B.
Scrittura informale:
...A ∧ B
[supponiamo A e anche B]
. . . e quindi C
[e quindi C]
L’applicazione della regola viene sempre lasciata implicita.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ∧
Regola di eliminazione:
[A][B]
..
.
A∧B
C
C
(∧e )
Nota: un albero di derivazione che termini applicando la regola
∧e ha due sotto-alberi immediati. Il primo dimostra A ∧ B. Il
secondo dimostra C usando, fra le altre, le ipotesi A e B NON
ANCORA SCARICATE. È l’applicazione della regola che
scarica le ipotesi dal sotto-albero.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ∧
Regola di eliminazione:
[A][B]
..
.
A∧B
C
C
(∧e )
Correttezza classica: dimostriamo A ∧ B, A ⇒ B ⇒ C C.
Basta costruire la tabella di verità.
Correttezza intuizionista: dimostriamo A ∧ B, A ⇒ B ⇒ C C.
Sia ha, bi ∈ [[A ∧ B]]v e sia f ∈ [[A ⇒ B ⇒ C]]v . Allora
f (a) ∈ [[B ⇒ C]]v e f (a)(b) = f (a, b) ∈ [[C]]v .
La regola non è invertibile. Esempio: C = > e A, B = ⊥.
La regola è intuizionisticamente (e quindi anche classicamente)
invertibile se si assume A ∧ B: ovvio.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ∧
Regole alternative di eliminazione:
A∧B
A
A∧B
B
Lettura bottom-up: se A ∧ B allora A (e B).
Lettura top-down: per dimostrare A (o B) basta
dimostrare A ∧ B.
Scrittura informale:
. . . e quindi A ∧ B
[e quindi A]
Le due regole vengono quasi sempre omesse.
Claudio Sacerdoti Coen
(∧e1 )
(∧e2 )
Deduzione naturale
Deduzione naturale: ∧
Regole alternative di eliminazione:
A∧B
A
A∧B
B
(∧e1 )
(∧e2 )
Correttezza classica e intuizionista: le due regole sono corrette.
Le due regole non sono invertibili: esempio A = > e B = bot.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ricerca delle prove
Le prove si possono cercare in vari modi:
1
Bottom-up: partendo dalle ipotesi si applicano in avanti le
regole fino a trovare la conclusione.
Pro: non si commettono mai errori
Cons: è molto difficile vedere le prove cosı̀ perchè vi sono
troppe strade che non portanto alla conclusione cercata
2
Top-down: partendo dalla conclusione si applicano indietro
le regole fino a ridursi a un sottoinsieme delle ipotesi.
Pro: più facile trovare le dimostrazioni se si sta attenti a non
sbagliarsi (= ridursi a dimostrare qualcosa di non vero)
Cons: è possibile sbagliarsi quando si applicano regole non
invertibili
3
Strategia mista: si alternano le due strategie, tipicamente
partendo con una top-down.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ricerca delle prove
Come evitare errori?
1
Dopo l’applicazione top-down di una regola di inferenza
non invertibile, accertarsi che la conclusione sia ancora
conseguenza logica delle premesse.
Esempio: per dimostrare A ∧ B ` A si parte da A e lo si
riduce a A ∧ C. Si ha A ∧ B 6 A ∧ C (anche se A ∧ B A).
2
Verificare di non essersi ridotti a dimostrare qualcosa che
si sta già dimostrando con le stesse ipotesi (ragionamento
circolare).
Esempio: per dimostrare A ci si riduce a dimostrare A ∧ B
che dimostriamo riducendoci a dimostrare sia A che B.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ricerca delle prove
Esercizi (esempi alla lavagna):
A∧B `B∧A
A ∧ (B ∧ C) ` (A ∧ B) ∧ C
(A ∧ B) ∧ (C ∧ D) ` A ∧ D ∧ A
Cercare le dimostrazioni sia usando ∧e che usando ∧e1 e ∧e2 .
L’ultimo esercizio evidenzia la difficoltà della ricerca bottom-up
delle prove.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: derivabilità
Definizione: un insieme di regole R è derivabile a partire da un
insieme di regole S quando per ogni regola in R le cui
premesse sono F1 , . . . , Fn e la cui conclusione è F si ha
F1 , . . . , Fn ` F usando solamente le regole in S.
Nota: è la stessa nozione chiamata in precedenza riducibilità.
Teorema: se R è derivabile a partire da S allora per ogni
dimostrazione ottenuta usando solo regole in R esiste una
dimostrazione con le stesse premesse e conclusione che usa
solo regole in S.
Dimostrazione: per induzione strutturale sull’albero di derivazione.
In tutti i casi, per ipotesi induttiva esistono alberi di derivazione per
ognuna delle premesse che usano solo regole in S. Per ipotesi esiste
un albero di derivazione per la regola sotto esame che usa solo
regole in S. Componendo gli alberi si ottiene la prova voluta.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: derivabilità
Teorema: l’insieme {∧e1 , ∧e2 } è derivabile a partire dall’insieme
{∧e } e viceversa.
Dimostrazione:
Prima parte: {∧e1 , ∧e2 } è derivabile a partire da {∧e }.
A ∧ B [A]
(∧e )
A
A ∧ B [B]
(∧e )
B
Seconda parte: {∧e } è derivabile a partire da {∧e1 , ∧e2 }.
A∧B
A (∧e1 )
Claudio Sacerdoti Coen
..
.
C
A∧B
B (∧e2 )
Deduzione naturale
Deduzione naturale: ∨
Regole di introduzione:
A
A∨B
B
A∨B
(∧i1 )
(∧i2 )
Lettura bottom-up: se A (B) vale, allora vale anche A ∨ B
Lettura top-down: per dimostrare A ∨ B è sufficiente dimostrare
A (B)
Scrittura informale:
. . . e quindi A
[e quindi A ∨ B]
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ∨
Regole di introduzione:
A
A∨B
B
A∨B
(∧i1 )
(∧i2 )
Correttezza intuizionista (e quindi classica): A A ∨ B in
quanto data a ∈ [[A]]v si ha h0, ai ∈ [[A ∨ B]]v
Le due regole non sono invertibili: per esempio quando A = ⊥
eB=>
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ∨
Regole di eliminazione:
A∨B
[A]
..
.
[B]
..
.
C
C
C
(∨e )
Lettura bottom-up: se vale A ∨ B e C vale sia quando vale A che
quando vale B, allora necessariamente C vale.
Lettura top-down: per dimostrare qualunque cosa sapendo A ∨ B è
sufficiente procedere per casi, dimostrando la stessa cosa
assumendo prima che A valga e poi che valga B
Scrittura informale:
. . . e quindi A ∨ B
procediamo per casi per dimostrare C
caso A: . . . e quindi C
caso B: . . . e quindi C
[e quindi C]
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ∨
Regole di eliminazione:
A∨B
[A]
..
.
[B]
..
.
C
C
C
(∨e )
Correttezza intuizionista (e quindi classica): per ipotesi c ∈ [[A ∨ B]]v e
f [x] ∈ [[C]]v per x ∈ [[A]]v e g[y] ∈ [[C]]v per y ∈ [[B]]v . Se c = h0, ai
dove a ∈ [[A]]v allora f [a/x] ∈ [[C]]v . Se c = h1, bi dove b ∈ [[B]]v allora
g[b/y ] ∈ [[C]]v .
Invertibilità: la regola non è invertibile (controesempio: C = > e
A = B = ⊥. Tuttavia, quando A ∨ B è dimostrabile, allora la regola è
banalmente invertibile intuizionisticamente (e quindi anche
classicamente). Infatti per ipotesi sia c ∈ [[C]]v e d ∈ [[A ∨ B]]v . Allora
c ∈ [[C]]v anche senza usare nessun x ∈ [[A]]v o y ∈ [[B]]v .
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ricerca delle prove
Esercizi (esempi alla lavagna):
A∧B `C∨A
A∨B `B∨A
A ∨ (B ∨ C) ` (C ∨ B) ∨ A
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ⊥
Regole di introduzione: NESSUNA.
Regole di eliminazione:
⊥
C
Lettura bottom-up: dal falso segue qualunque cosa.
Lettura top-down: per dimostrare qualunque cosa posso
ridurmi a dimostrare un assurod.
Scrittura informale:
. . . assurdo
e quindi C
Claudio Sacerdoti Coen
(⊥e )
Deduzione naturale
Deduzione naturale: ⊥
Regole di introduzione: NESSUNA.
Regole di eliminazione:
⊥
C
(⊥e )
Correttezza classica: ovvia poichè in ogni mondo v si ha
[[⊥]]v = 0 e quindi ⊥ C.
Correttezza intuizionista: dobbiamo fornire un programma in
[[C]]v assumendo l’esistenza di un x ∈ [[⊥]]v . Poichè un tale x
non esiste, siamo in presenza di codice morto.
La regola non è invertibile: per esempio quando C = > si ha
> ma 6 ⊥
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: >
Regole di introduzione:
>
(>i )
Regola di eliminazione (INUTILE):
> C
C
Lettura bottom-up: il > è vero.
Lettura top-down: per dimostrare > non debbo fare nulla.
Scrittura informale (sempre omessa)
[> vale]
Claudio Sacerdoti Coen
(>e )
Deduzione naturale
Deduzione naturale: >
Regole di introduzione:
>
(>i )
Regola di eliminazione (INUTILE):
> C
C
(>e )
Correttezza intuizionista (e quindi classica): ovvia (? ∈ [[>]]v ) e
se c ∈ [[C]]v allora c ∈ [[C]]v .
Invertibilità intuizionista (e quindi classica): ovvia in quanto per
la regola di introduzione non vi è nulla da dimostrare e per
quella di eliminazione se c ∈ [[C]]v allora c ∈ [[C]]v e inoltre
? ∈ [[>]]v .
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ⇒
Regole di introduzione:
[A]
..
.
B
A⇒B
(⇒i )
Lettura bottom-up: se ipotizzando A dimostro B allora A ⇒ B.
Lettura top-down: per dimostrare A ⇒ B basta assumere A e
dimostrare B.
Scrittura informale:
supponiamo A
. . . e quindi B
quindi A ⇒ B
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ⇒
Regole di introduzione:
[A]
..
.
B
A⇒B
Correttezza intuizionista (e quindi anche classica): è una
direzione del teorema di deduzione semantica!
Invertibilità intuizionista (e quindi anche classica): è l’altra
direzione del teorem di deduzione semantica!
Claudio Sacerdoti Coen
(⇒i )
Deduzione naturale
Deduzione naturale: ⇒
Regole di eliminazione:
A⇒B A
B
(⇒e O MODUS PONENS)
Lettura bottom-up: se A e A ⇒ B, allora necessariamente B.
Lettura top-down: per dimostrare B debbo trovare un A che
valga e tale per cui A ⇒ B
Scrittura informale:
da A e A ⇒ B si ha B
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ⇒
Regole di eliminazione:
A⇒B A
B
(⇒e O MODUS PONENS)
Correttezza intuizionista (e quindi classica): dati a ∈ [[A]]v e
f ∈ [[A ⇒ B]]v si ha f (a)[[B]]v .
La regola non è invertibile per esempio quando B = > e A = ⊥.
Rimane non invertibile anche sapendo che A ⇒ B valga.
Nota: durante la ricerca top-down della prova la regola di
modus ponens è la più difficile da applicare in quanto A non è
in genere noto e, anche in presenza di una prova per A ⇒ B, A
può non essere dimostrabile.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ricerca delle prove
Esercizi (esempi alla lavagna):
` (A ⇒ B) ⇒ (B ⇒ C) ⇒ A ⇒ C
` (A ⇒ B ⇒ C ⇒ D) ⇒ C ⇒ B ⇒ D ⇒ A
` (A ∨ B) ⇒ (A ⇒ C ∧ D) ⇒ (B ⇒ D) ⇒ D ∧ (B ∨ C)
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ¬
Ricordiamoci che ¬A ≡ A ⇒ ⊥ per ottenere le regole per il ¬
come istanze delle regole per l’⇒.
Regole di introduzione:
[A]
..
.
⊥
¬A
(¬i )
Lettura bottom-up: se ipotizzando A dimostro l’assurdo allora
¬A.
Lettura top-down: per dimostrare ¬A basta assumere A e
dimostrare l’assurdo.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ¬
Ricordiamoci che ¬A ≡ A ⇒ ⊥ per ottenere le regole per il ¬
come istanze delle regole per l’⇒.
Regole di eliminazione:
¬A A
⊥
(¬e )
Lettura bottom-up: è assurdo avere sia ¬A che A
Lettura top-down: per dimostrare l’assurdo basta dimostrare
qualcosa e il suo contrario.
Scrittura informale:
. . . e quindi ¬A
. . . e quindi A
assurdo!
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ¬
Correttezza intuizionista e classica: segue da quella delle
regole per l’⇒.
Invertibilità intuizionista e classica per l’¬i : segue da quella
della regola dell’⇒i .
Invertibilità intuizionista e classica per l’¬e : ovvia in quanto
⊥ A e ⊥ ¬A. La regola è comunque di difficile applicazione
in quanto se non si sceglie l’A giusto, si è solo duplicato il
lavoro inutilmente.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ¬
ATTENZIONE: non confondere la regola ¬i con la regola di
dimostrazione per assurdo (RAA) che dice qualcosa di diverso:
[¬A]
..
.
[A]
..
.
⊥
¬A
(¬i )
⊥
A
(RAA)
Infatti la regola ¬i istanziata con ¬A dice solo
¬A
..
.
⊥
(¬i )
¬¬A
e ¬¬A ≡ A solamente classicamente ma non
intuizionisticamente.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale: ¬
Nota: la confusione fra ¬i e RAA è molto frequente presso i
matematici e accentua in loro l’impressione che facendo logica
intuizionista (ove la RAA non vale) non si riesca a dimostrare
quasi nulla.
In verità la ¬i vale intuizionisticamente e, anzi, sulle
proposizioni negate (non informative) sappiamo che le due
logiche essenzialmente coincidono.
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di correttezza per la logica
classica/intuizionista
Teorema di correttezza per la logica classica/intuizionista: se
Γ ` F allora Γ F in logica classica/intuizionista.
Dimostrazione: per induzione strutturale sull’albero di
derivazione Γ ` F .
Caso A: poichè A è una foglia non cancellata, si ha A ∈ Γ.
Pertanto Γ A.
Caso [A]: impossibile in quanto un’ipotesi viene scaricata
solamente da una regola.
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di correttezza per la logica
classica/intuizionista
n
(r ) dove T1 , . . . , Tn sono i sottoalberi immediati
Caso T1 ...T
F
dell’albero di deduzione:
Sia Ti la derivazione Γi ` Fi . Si ha Γi = Γ ∪ ∆i dove ∆i è
l’insieme delle ipotesi cancellate in Ti dalla regola r . Per ipotesi
induttiva, Γi Fi per ogni i. Per correttezza locale della regola r
si ha ∆1 ⇒ F1 , . . . , ∆n ⇒ Fn F . Quindi, per il teorema di
deduzione semantica e per la transitività della conseguenza
semantica, si ottiene Γ F .
NOTA: poichè l’unica assunzione sulle regole r è che siano
localmente corrette, potremo in seguito aggiungere altre regole
localmente corrette preservando la correttezza globale.
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di deduzione sintattica
Teorema di deduzione sintattica: A ` B sse ` A ⇒ B.
Dimostrazione:
A
..
.
B
(⇒i )
A⇒B
Claudio Sacerdoti Coen
A⇒B A
(⇒e )
B
Deduzione naturale
Teorema di completezza intuizionista
Teorema di completezza per la logica intuizionista: se Γ F
allora Γ ` F .
Cenni: dobbiamo fare riferimento a una semantica intuizionista
fra quelle viste, ovvero la semantica di Kripke e quella di
Heyting-Brower-Kolmogorov.
Nel primo caso la dimostrazione è alquanto complessa e non è
possibile farla rientrare nel corso.
Nel secondo caso dobbiamo dimostrare che per ogni
programma per [[C]]v scritto facendo riferimento a funzioni di
libreria per la semantica delle formule in Γ esiste una prova di F
che usa le ipotesi in Γ. In altre parole, A OGNI PROGRAMMA
CORRISPONDE UNA PROVA (E VICEVERSA PER IL
TEOREMA DI CORRETTEZZA.
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di completezza intuizionista
Teorema di completezza per la logica intuizionista: se Γ F
allora Γ ` F .
Per ottenere questo risultato è necessario fissare
esplicitamente il linguaggio di programmazione usato. Esso
corrisponde a un linguaggio funzionale, higher-order, tipato
semplicemente e dotato di coppie, proiezioni per le coppie,
booleani, if-then-else e niente altro.
Omettiamo la dimostrazione che, una volta fissato il linguaggio
in maniera appropriata, è una semplice induzione strutturale sul
programma dato in input.
NOTA: la logica determina il linguaggio di programmazione e
viceversa. Entrambi sono comunque estremamente naturali e
noti a priori.
Claudio Sacerdoti Coen
Deduzione naturale
Normalizzazione di prove
I linguaggi di programmazione sono caratterizzati dalle regole
di calcolo (o computazione).
La nozione corrispondente sulle prove è quella di
semplificazione di una prova.
La semplificazione è essenzialmente resa possibile dal fatto
che i connettivi di eliminazione sono ottenuti a partire da quelli
di introduzione e viceversa.
Un’introduzione seguita immediatamente da un conclusione
porta a una prova sempre semplificabile. Esistono altre regole
di semplificazione.
Semplificazioni ripetute portano a una forma normale che è
anche canonica.
Claudio Sacerdoti Coen
Deduzione naturale
Normalizzazione di prove
Esempio:
[A]
..
.
B
A⇒B
(⇒i )
B
..
.
A
(⇒e )
si semplifica in
..
.
A
..
.
B
mantenendo le stesse ipotesi e conclusioni. Semanticamente è
l’applicazione di funzione che si riduce a istanziare gli
argomenti.
Claudio Sacerdoti Coen
Deduzione naturale
Normalizzazione di prove
Esempio:
..
..
.
.
A
B
A∧B
A
(∧i )
(∧e1 )
si semplifica in
..
.
A
mantenendo le stesse ipotesi e conclusioni. Semanticamente è
la prima proiezione applicata a una coppia che ritorna il primo
elemento della coppia.
Claudio Sacerdoti Coen
Deduzione naturale
Normalizzazione di prove
Esempio:
..
.
A
A∨B
(∨i1 )
[A]
..
.
[B]
..
.
C
C
C
(∨e )
si semplifica in
..
.
A
..
.
C
mantenendo le stesse ipotesi e conclusioni. Semanticamente è
≈ la regola di riduzione dell’if-then-else nel caso true.
Claudio Sacerdoti Coen
Deduzione naturale
Normalizzazione di prove
Il corso (obbligatorio) di “Fondamenti Logici dell’Informatica” del
primo anno della Laurea Magistrale in Informatica è
interamente dedicato allo studio di questa corrispondenza fra:
Programmi e prove in logica intuizionista
Calcolo di un programma e semplificazione di prove
Tipi e formule
Linguaggi di programmazione e logiche intuizioniste
...
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale per la logica classica
Le regole viste fino ad ora NON sono complete per la logica
classica (in quanto lo sono per la logica intuizionista).
Esempio: `
6 A ∨ ¬A (principio del terzo escluso)
Esempio: `
6 ¬¬A ⇒ A (base del ragionamento per assurdo)
Provare a dimostrare le formule qua sopra per convincersi
dell’impossibilità di costruire una derivazione.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale per la logica classica: RAA
Per essere completi rispetto alla semantica classica, basta
introdurre la regola di Riduzione ad Assurdo (RAA):
[¬A]
..
.
⊥
A
(RAA)
Note:
La regola non è ne di introduzione, ne di eliminazione di un
connettivo.
Non avendo una regola duale (introduzione/eliminazione),
un teorema classico (= dimostrato con la RAA) non si
semplifica/normalizza. Meglio evitarla se possibile.
La regola è invertibile (in quanto A ¬A ⇒ ⊥) e sempre
applicabile (MALE!)
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale per la logica classica: RAA
Un uso frequente della RAA è il seguente schema
[¬A]
..
.
A
[¬A]
⊥
(¬e )
A
(RAA)
Ovvero, per trovare una prova di A ci si riduce a cercare ancora
una prova di A, ma dopo aver assunto ¬A.
Esercizio: dimostrare ` (¬A ⇒ A) ⇒ A.
Claudio Sacerdoti Coen
Deduzione naturale
Deduzione naturale per la logica classica: EM
Il principio del terzo escluso (EM) è dimostrabile a partire dalla
RAA:
Esercizio: ` A ∨ ¬A
In generale le dimostrazioni classiche effettuate con il solo
ausilio della RAA possono essere laboriose e/o anti-intuitive.
Tuttavia il principio del terzo escluso combinato con
l’eliminazione dell’or fornisce uno schema di prova molto
potente (analisi per casi su una variabile).
..
.
A ∨ ¬A
[A]
..
.
C
C
Claudio Sacerdoti Coen
[¬A]
..
.
C
(∨e )
Deduzione naturale
Deduzione naturale per la logica classica: EM
Metodo generalizzato:
Sia F una formula da dimostrarsi. Ripetendo per ognuna delle
variabili in Var (F ) = {A1 , . . . , An } l’analisi per casi (come per il
calcolo della forma normale di Shannon) ci si riduce a
dimostrare F sotto a n ipotesi aggiuntive [F1 ], . . . , [Fn ] tali che
per ogni i si ha Fi ∈ {Ai , ¬Ai }.
Esempio: dimostrare A ∧ B, B ⇒ C ` A ∨ C usando il metodo
generalizzato su A e su B.
Nota: usando il metodo generalizzato in genere NON si trovano
le dimostrazioni più semplici/naturali.
Tuttavia il metodo può essere usato meccanicamente per
decidere se ` F (vedi teorema di completezza nei prossimi
lucidi). L’albero di deduzione ottenuto è ancora una volta
esponenziale nel numero delle variabili.
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di completezza per la logica classica
Teorema di COMPLETEZZA DEBOLE per la logica classica:
per ogni Γ, F , con Γ finito, se Γ F in logica proposizionale
classica allora Γ ` F (potendo usare anche la RAA).
Nota: il teorema si dice di completezza debole per via della
limitazione a contesti Γ finiti. Per i teoremi di deduzione
sintattia/semantica, il teorema di completezza debole si può
riformulare come: se F allora ` F .
Corollario (teorema di COMPLETEZZA FORTE per la logica
classica): per ogni Γ, F , se Γ F allora Γ ` F .
Dimostrazione del corollario: sia Γ F . Per il teorema di
compattezza esiste ∆ ⊂ Γ, ∆ finito tale che ∆ F . Per il
teorema di completezza debole si ha ∆ ` F e quindi Γ ` F .
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di completezza per la logica classica
Osservazioni:
Dal teorema di completezza debole e da quello di
compattezza deduciamo il teorema di completezza forte.
Poichè la prova di quello di compattezza non è costruttiva
(= la meta-logica è classica), NON OTTENIAMO ALCUN
ALGORITMO CHE DATO Γ E F RESTITUISCA UN
ALBERO DI PROVA Γ ` F .
Viceversa, forniremo ora una prova costruttiva del teorema
di completezza debole (= la meta-logica è intuizionista),
OTTENENDO UN ALGORITMO CHE DATO Γ FINITO E F
RESTITUISCE UN ALBERO DI PROVA Γ ` F .
La complessità dell’algoritmo sarà, ancora una volta,
esponenziale nel numero di atomi che occorrono nelle
formule.
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di completezza per la logica classica
Dimostrazione del teorema di completezza debole per la logica
classica.
Dimostriamo il teorema nella sua forma equivalente se F
allora ` F .
La prima fase della dimostrazione consiste nell’applicare il
metodo generalizzato (slide 55) per ridursi, tramite il principio di
EM (e quindi tramite la RAA), a costruire 2n alberi di prova
∆i ` F ove n = |Var (F )| = |{A1 , . . . , An }| e l’i-esimo contesto
∆i è in relazione come segue con l’i-esima riga vi della tabella
di verità per F : ∆i = A∗1 , . . . , A∗n dove per ogni j si ha A∗j = Aj
se vi (Aj ) = 1 e A∗j = ¬Aj se vi (Aj ) = 0.
Poichè per ipotesi F si ha che, per ogni i, vi F .
Dobbiamo dimostrare ∆i ` F per ogni i.
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di completezza per la logica classica
Lemma: per ogni F , per ogni i e per ogni vi e ∆i definiti come
sopra, si ha
1
se vi F allora ∆i ` F
2
se vi 6 F allora ∆i ` ¬F
Nota: la dimostrazione del lemma è costruttiva.
Dimostrazione: per induzione strutturale su F .
Caso Aj :
1
se vi Aj allora vi (Aj ) = 1 e quindi Aj ∈ ∆i e ∆i ` Aj
2
se vi 6 Aj allora vi (Aj ) = 0 e quindi ¬Aj ∈ ∆i e ∆i ` ¬Aj
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di completezza per la logica classica
Caso F1 ∧ F2 :
Per ipotesi induttiva, per ogni h ∈ {1, 2} si ha
1
se vi Fh allora ∆i ` Fh
2
se vi 6 Fh allora ∆i ` ¬Fh
Procediamo per casi su vi F1 ∧ F2 o vi 6 F1 ∧ F2 .
1
Caso vi F1 ∧ F2 o, equivalentemente
[[F1 ∧ F2 ]]v = min{[[F1 ]]v , [[F2 ]]v } = 1 e quindi
[[F1 ]]v = [[F2 ]]v = 1 e, per ipotesi induttiva, ∆i ` F1 e
∆i ` F2 :
..
..
.
.
F1
F2
F1 ∧ F2
2
(∧i )
Caso vi 6 F1 ∧ F2 o, equivalentemente [[F1 ∧ F2 ]]v = 0 e
quindi vi è un Fh con h ∈ {1, 2} t.c. [[Fh ]]v = 0.
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di completezza per la logica classica
Per ipotesi induttiva ∆i ` ¬Fh e quindi
..
.
¬Fh
[F1 ∧ F2 ]
(∧eh )
Fh
(¬e )
⊥
¬(F1 ∧ F2 )
Claudio Sacerdoti Coen
(¬i )
Deduzione naturale
Teorema di completezza per la logica classica
Caso F1 ∨ F2 :
Per ipotesi induttiva, per ogni h ∈ {1, 2} si ha
1
se vi Fh allora ∆i ` Fh
2
se vi 6 Fh allora ∆i ` ¬Fh
Procediamo per casi su vi F1 ∨ F2 o vi 6 F1 ∨ F2 .
1
Caso vi F1 ∨ F2 o, equivalentemente
[[F1 ∨ F2 ]]v = max{[[F1 ]]v , [[F2 ]]v } = 1 e quindi vi è un
h ∈ {1, 2} t.c. [[Fh ]]v = 1 e, per ipotesi induttiva, ∆i ` Fh :
..
.
Fh
(∨ih )
F1 ∨ F2
2
Caso vi 6 F1 ∨ F2 o, equivalentemente [[F1 ∨ F2 ]]v = 0 e
quindi [[F1 ]]v = [[F2 ]]v = 0.
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di completezza per la logica classica
Per ipotesi induttiva ∆i ` ¬F1 e ∆i ` ¬F2 e quindi
[F1 ∨ F2 ]
..
.
¬F1
[F1 ]
..
.
¬F2
⊥
⊥
¬(F1 ∨ F2 )
Claudio Sacerdoti Coen
[F2 ]
⊥
(¬e )
(¬i )
Deduzione naturale
Teorema di completezza per la logica classica
Caso ¬F :
Per ipotesi induttiva si ha
1
se vi F allora ∆i ` F
2
se vi 6 F allora ∆i ` ¬F
Procediamo per casi su vi ¬F o vi 6 ¬F .
1
Caso vi ¬F o, equivalentemente [[¬F ]]v = 1 e quindi
[[F ]]v = 0 e, per ipotesi induttiva, ∆i ` ¬F .
2
Caso vi 6 ¬F o, equivalentemente [[¬F ]]v = 0 e quindi
[[F ]]v = 1 e, per ipotesi induttiva, ∆i ` F :
..
.
F
[¬F ]
(¬e )
⊥
¬¬F
Claudio Sacerdoti Coen
(¬i )
Deduzione naturale
Teorema di completezza per la logica classica
Caso F1 ⇒ F2 :
Per ipotesi induttiva, per ogni h ∈ {1, 2} si ha
1
se vi Fh allora ∆i ` Fh
2
se vi 6 Fh allora ∆i ` ¬Fh
Procediamo per casi su vi F1 ⇒ F2 o vi 6 F1 ⇒ F2 .
1
2
Caso vi F1 ⇒ F2 o, equivalentemente
[[F1 ⇒ F2 ]]v = max{1 − [[F1 ]]v , [[F2 ]]v } = 1 e quindi o
[[F1 ]]v = 0 e, per ipotesi induttiva, ∆i ` ¬F1 , oppure
[[F2 ]]v = 1 e, per ipotesi induttiva, ∆i ` F2 .
Vedi slide successiva per ambedue i casi.
Caso vi 6 F1 ⇒ F2 o, equivalentemente [[F1 ⇒ F2 ]]v = 0 e
quindi [[F1 ]]v = 1 e [[F2 ]]v = 0 e, per ipotesi induttiva,
∆i ` F1 e ∆i ` ¬F2 . Vedi slide dopo la prossima.
Claudio Sacerdoti Coen
Deduzione naturale
Teorema di completezza per la logica classica
Casi ∆i ` ¬F1 e ∆i ` F2 , dobbiamo dimostrare ∆i ` F1 ⇒ F2 :
..
.
¬F1
[F1 ]
⊥
(¬e )
F2
F1 ⇒ F2
(⊥e )
Claudio Sacerdoti Coen
(⇒i )
..
.
F2
F1 ⇒ F2
(⇒i )
Deduzione naturale
Teorema di completezza per la logica classica
Caso ∆i ` F1 e ∆i ` ¬F2 , dobbiamo dimostrare
∆i ` ¬(F1 ⇒ F2 ):
..
.
¬F2
..
.
F1
[F1 ⇒ F2 ]
(⇒e )
F2
(¬e )
⊥
¬(F1 ⇒ F2 )
Qed.
Claudio Sacerdoti Coen
(¬i )
Deduzione naturale
Correttezza, completezza, compattezza.
Abbiamo già visto: completezza debole ∧ compattezza ⇒
completezza forte.
Vale anche:
Teorema: completezza forte ∧ correttezza ⇒ compattezza.
Dimostrazione: siano Γ ed F tale che Γ F . Per il teorema di
completezza forte si ha Γ ` F , ovvero esiste un albero di
derivazione la cui radice è F e le cui foglie sono un insieme
finito ∆ ⊆ Γ. Per correttezza si ha ∆ F . Qed.
Osservazione: il precedente teorema ci dice che ogni prova
costruttiva del teorema di completezza forte ci darebbe una
prova costruttiva (un algoritmo) per il teorema di compattezza.
Non esistono prove del genere perchè si dimostra la non
esistenza degli algoritmi relativi.
Claudio Sacerdoti Coen