Corso di Logica Computazionale - Dipartimento di Matematica e

annuncio pubblicitario
Corso di
Logica Computazionale
Laurea Magistrale in Informatica
Anno Accademico 2011/12
Docente: Marianna Nicolosi Asmundo
1
Logica Computazionale
La parola “logica” viene dal greco λóγoς che significa discorso
La logica è dunque la scienza del discorso, definita come lo studio
dei principi del ragionamento.
Aristotele, che può dirsi il padre della logica, la considerava una
scienza “formale”:
• non si occupa del contenuto
• si occupa della forma
2
Logica Computazionale
La logica costruisce modelli di oggetti o situazioni del mondo reale
allo scopo di ragionare su questi ultimi.
I modelli sono astrazioni della realtà in cui solo alcune
caratteristiche vengono rappresentate mentre altre, considerate
irrilevanti, vengono ignorate
Essere in grado di esprimere la conoscenza rispetto ad un dominio
richiede non soltanto la modellazione, ma anche il ragionamento.
Esempi:
• Basi di conoscenza, logiche descrittive
• Programmi, logiche temporali
3
Esempio
Woman
Man
Mother
Father
Parent
Grandmother
MotherwithManyChildren
MotherwithoutDaughter
≡
≡
≡
≡
≡
≡
≡
≡
Person ⊓ Female
¬ Woman
Woman ⊓ ∃hasChild. Person
Man ⊓ ∃hasChild. Person
Father ⊔ Mother
Mother ⊓ ∃hasChild. Parent
Mother ⊓ ≥ 3hasChild
Mother ⊓ ∀hasChild.¬ Woman
4
Logica Computazionale
Insieme alla parola “logica” abbiamo l’attributo “computazionale”.
Cosa si può calcolare?
Quali problemi sono risolvibili meccanicamente?
Esiste un procedimento effettivo per stabilire se una proposizione è
conseguenza o no di altre?
L’ambito è molto vasto. Esistono diverse logiche (modali,
descrittive,...) applicabili per ragionare in svariati contesti.
Dedicheremo la prima parte del corso alla logica classica e ai
principali strumenti di ragionamenti di cui è dotata
5
Logica classica del primo ordine
E’ fra le logiche più usate e studiate
Su di essa sono modellate svariate teorie matematiche (es. teoria
dell’uguaglianza, delle liste, degli array)
E’ la piattaforma comune di diverse logiche non-classiche (es.
logiche modali proposizionali)
E’ fornita di svariate procedure di dimostrazione dotate a loro
volta di euristiche che le rendono adatte per l’automazione
La logica classica viene usata per ragionare su asserzioni
6
Verità e dimostrazione
In particolare ci interessa studiare la verità delle asserzioni.
Ma come possiamo noi esseri umani sapere cosa è vero?
Per questo abbiamo un dispositivo chiamato dimostrazione
Sono state sviluppate molte procedure meccaniche per la
dimostrazione formale: sistemi assiomatici, deduzione naturale,
tableaux e risoluzione
Bisogna stabilire la connessione fra queste procedure di
dimostrazione e la verità (correttezza e completezza)
7
Induzione
• Definizione induttiva di insiemi e funzioni
• Dimostrazione di proprietà di insiemi definiti induttivamente
• Gli insiemi definiti per induzione ricevono una struttura utile per
la definizione di funzioni e per la dimostrazione di proprietà di
questi insiemi
• Le tecniche induttive sono alla base dei procedimenti di
definizione e dimostrazione che vedremo durante il corso.
8
Principio di induzione sui numeri naturali
Formulazione I
Per dimostrare che una proprietà P vale per tutti i numeri
n ∈ Nat è sufficiente mostrare che
a. CASO BASE: P vale per 0
b. PASSO INDUTTIVO: Se P vale per un numero n ∈ Nat allora
P vale anche per n + 1
Questa formulazione è maggiormente connessa al fatto che i
numeri naturali possono essere costruiti iniziando con il numero 0
e aggiungendo ripetutamente un’unità
9
Principio di induzione sui numeri naturali (ctnd.)
Formulazione II (induzione forte)
Per dimostrare che una proprietà P vale per tutti i numeri
n ∈ Nat è sufficiente mostrare che
a. CASO BASE: P vale per 0
b. PASSO INDUTTIVO: Se n ∈ Nat e P vale per tutti gli
m ∈ Nat tali che m < n, allora P vale anche per n
Questa formulazione ha più a che fare con l’ordinamento dei
numeri naturali.
Può essere più conveniente della prima formulazione nel caso di
dimostrazioni in cui ci viene più comodo dimostrare il passo
induttivo (b) con numeri più piccoli del predecessore del numero in
questione
10
Definizione induttiva di insiemi
Sia U un insieme detto universo, B ⊆ U un insieme detto insieme
base
Sia K un insieme di relazioni r ⊆ U n × U (dove n ≥ 1 dipende da
r) detto insieme dei costruttori
Un insieme A ⊆ U viene detto definito induttivamente (o
ricorsivamente) da B e K, quando A è il più piccolo (rispetto
all’inclusione insiemistica) di tutti i sottoinsiemi S di U per cui
valgono le seguenti due condizioni:
a. B ⊆ S
b. r(S n) ⊆ S per tutti gli r ∈ K cioé se a1, . . . , an ∈ S e
((a1, . . . , an), a) ∈ r allora a ∈ S
11
Definizione costruttiva di un insieme definito per induzione
Sia U un insieme detto universo, B ⊆ U un insieme detto insieme
base
Sia K un insieme di relazioni r ⊆ U n × U (dove n ≥ 1 dipende da
r) detto insieme dei costruttori
Una sequenza u1, . . . , um (m ≥ 1) di elementi di U con um = u
viene detta una sequenza di costruzione per u (da B e K) quando
per ogni i = 1, . . . , m, accade che o
a. ui ∈ B, oppure
b. esiste un costruttore r ⊆ U n × U , r ∈ K e i1, . . . , in < i tali
che ((ui1 , . . . , uin ), ui) ∈ r
12
Definizione costruttiva di un insieme
definito per induzione (ctnd.)
Ā viene detto definito induttivamente da B e da K quando Ā è
costituito da tutti quegli elementi u ∈ U , per cui esiste una
sequenza di costruzione da B e da K
Di particolare interesse è il caso in cui questo processo di
costruzione descrive in modo non ambiguo come ottenere un
elemento dell’insieme
13
Definizione induttiva libera
La definizione induttiva di un insieme mediante un insieme base B
ed un insieme di costruttori K viene detta libera se per ogni
elemento a ∈ A, accade che o
• a ∈ B, oppure
• c’è soltanto un costruttore r ∈ K, e solo una n-tupla di
elementi a1, . . . , an ∈ A tali che ((a1, . . . , an), a) ∈ r
14
Principio di induzione strutturale
Sia A ⊆ U definito induttivamente mediante l’insieme base B e
l’insieme dei costruttori K.
Per dimostrare che una proprietà P vale per tutti gli a ∈ A è
sufficiente notare che
a) CASO BASE: P vale per tutti gli a ∈ B
b) PASSO INDUTTIVO: Se P vale per a1, . . . , an ∈ A (ipotesi
induttiva) e ((a1, . . . , an), a) ∈ r per qualche r ∈ K, allora P
vale anche per a
15
Principio di induzione strutturale (ctnd 2.)
Una dimostrazione per induzione strutturale può essere sempre
sostituita con una dimostrazione per induzione sui naturali
Il “trucco” è cambiare la dimostrazione in modo che essa diventi
per induzione sulla profondità degli elementi
Quando l’insieme A viene definito induttivamente dall’insieme
base B e dall’insieme dei costruttori K, esiste almeno una
sequenza di costruzione per ogni a ∈ A
d (a) = min{m ∈ Nat|u1, . . . , um
è una sequenza di costruzione di a} − 1
16
Principio di induzione strutturale (ctnd 3.)
Sia P una proprietà e definiamo Q come
“P vale per tutti gli a ∈ A di profondità d (a) = n”
Le due asserzioni
“P vale per tutti gli a ∈ A ”
e
“Q vale per tutti gli n ∈ Nat
sono equivalenti
17
Principio di induzione strutturale (ctnd 4.)
Una dimostrazione per induzione strutturale di P può essere
tradotta in una dimostrazione di Q fatta per induzione sui naturali
• d (a) = 0 se e solo se a ∈ B
• d (a) > d (ai), i = 1, . . . , n quando ((a1, . . . , an), a) ∈ r per
qualche r ∈ K
NOTA: l’induzione strutturale non è più potente dell’induzione su
Nat.
18
Definizione di funzioni per induzione
Sia A ⊆ U definito induttivamente dalla base B e dall’insieme di
costruttori K.
Sia V un insieme arbitrario.
Associamo
• ad ogni elemento a ∈ B un elemento h(a) ∈ V
• ad ogni costruttore r ⊆ U n × U ∈ K, (n ≥ 1), una funzione
h(r) : V n → V
19
Definizione di funzioni per induzione (ctnd.)
Una definizione induttiva di una funzione g : A → V viene data da
a) g(a) = h(a) per ogni elemento a ∈ B
b) g(a) = h(r)(g(a1), . . . , g(an))
cioé (a, h(r)(b1, . . . , bn)) ∈ g se (a1, b1), . . . , (an, bn) ∈ g per
tutti gli r ⊆ U n × U , e a1, . . . , an ∈ A con
((a1, . . . , an), a) ∈ r
Questa definizione è consistente solo se ad ogni a ∈ A viene
assegnato esattamente un valore mediante a) oppure b) (cioé se g
è una funzione)
Se questa condizione viene soddisfatta diciamo che g è ben
definita
20
Definizione di funzioni per induzione (ctnd 1.)
Teorema di ricorsione
Se la definizione induttiva di un insieme A mediante l’insieme base
B e l’insieme dei costruttori K è libera, allora la funzione
g : A → V definita induttivamente come nella definizione
precedente è ben definita
21
Una semplificazione della teoria delle liste
Costruzione induttiva dei termini che rappresentano le liste:
• B = {singoli elementi di lista senza struttura interna}
• K = {cons}
Per ragionare sulle liste dobbiamo introdurre dei predicati:
• atom, predicato unario
• = (uguaglianza), predicato binario
22
Una semplificazione della teoria delle liste
Assiomi:
1. assiomi di riflessività, simmetria e transitività della teoria
dell’uguaglianza
2. istanziazione dello schema d’assioma di congruenza (di
funzione) per cons:
(∀x1, x2, y1, y2)((x1 = x2 ∧ y1 = y2) ⊃ (cons(x1, y1) =
cons(x2, y2)))
3. istanziazione dello schema d’assioma di congruenza (di
predicato) per atom: (∀x, y)((x = y) ⊃ (atom(x) ≡ atom(y)))
4. (∀x, y)(¬atom(cons(x, y)))
23
Dimostrazione per induzione
Il principio di induzione per la teoria considerata è definito secondo
lo schema
((∀u)(atom(u) ⊃ F [u])∧(∀u, v)(F [v] ⊃ F [cons(u, v)])) ⊃ (∀x)F [x]
Quindi, per dimostrare che F [x] è valida (nella teoria considerata)
per tutte le liste x, basta quanto segue:
• Per il caso base, provare che F [u] è valida per un atomo
arbitrario u
• Per il passo induttivo, assumendo come ipotesi induttiva
che per qualche lista arbitraria v, F [v] è valida, provare che
anche F [cons(u, v)] è valida, per qualche lista arbitraria u
24
Esempio di dimostrazione
Si aumenti la teoria con i seguenti nuovi assiomi:
1. (∀atom u)(∀v)(concat(u, v) = cons(u, v))
(concat. atomo)
2. (∀u, v, x)(concat(cons(u, v), x) = cons(u, concat(v, x)))
(concat. lista)
3. (∀atom u)(rvs(u) = u)
(inversione atomo)
4. (∀x, y)(rvs(concat(x, y)) = concat(rvs(y), rvs(x)))
(inversione lista)
5. (∀atom u)(flat(u) = u)
(atomo flat)
6. (∀u, v)(flat (cons(u, v)) ≡ (atom(u) ∧ flat(v)))
25
(lista flat)
Esempio di dimostrazione
Gli assiomi 1 e 2 definiscono la funzione concat, che concatena
due liste. Es:
concat(cons(a, b), cons(b, cons(c, d))) =
cons(a, cons(b, cons(b, cons(c, d))))
Gli assiomi 3 e 4 definiscono la funzione rvs, che costruisce la lista
inversa. Es:
rvs(cons(a, cons(b, c))) = cons(c, cons(b, a))
Gli assiomi 5 e 6 definiscono il predicato flat che è vero su una
lista se e solo se ogni elemento della lista è un atomo.
26
Esempio di dimostrazione
Dimostriamo la validità (nella teoria) della formula:
(∀x)(flat(x) ⊃ rvs(rvs(x)) = x)
Dimostriamo per induzione strutturale su x che
F [x] : flat(x) ⊃ rvs(rvs(x)) = x
27
Esempio di dimostrazione
Caso base:
Consideriamo un atomo arbitrario u e dimostriamo
F [u] : flat(u) ⊃ rvs(rvs(u)) = u
rvs(rvs(u)) = u segue da due applicazioni dell’assioma
(inversione atomo)
28
Esempio di dimostrazione
Passo induttivo: Supponiamo come ipotesi induttiva che per
una lista arbitraria v:
F [v] : flat(v) ⊃ rvs(rvs(v)) = v
vogliamo provare che, per una lista arbitraria u,
F [cons(u, v)] : flat(cons(u, v)) ⊃ rvs(rvs(cons(u, v))) =
cons(u, v)
Consideriamo due casi: atom(u) oppure ¬atom(u)
Se ¬atom(u) allora flat(cons(u, v)) ⇔ (atom(u) ∧ flat(v)) ⇔⊥.
Quindi in questo caso la tesi vale
29
Esempio di dimostrazione
Se atom(u) allora
flat(cons(u, v)) ⇔ (atom(u) ∧ flat(v)) ⇔ flat(v). Inoltre
rvs(rvs(cons(u, v))) =
(concat. atomo)
rvs(rvs(concat(u, v))) =
(inversione lista)
rvs(concat(rvs(v), rvs(u))) =
(inversione lista)
concat(rvs(rvs(u)), rvs(rvs(v))) =
(inversione atomo)
concat(u, rvs(rvs(v))) =
(ipotesi induttiva, N.B. flat(v) vale)
concat(u, v) =
(concat. atomo)
cons(u, v)
30
Logica proposizionale classica
• Studia il comportamento dei connettivi proposizionali quali ∧
(“And”) e ∨ (“Or”)
• Parte da una famiglia di enunciati atomici di cui non
analizziamo la struttura interna, che rappresentiamo con delle
lettere, di cui ci interessa conoscere solo il valore di verità
• Da queste “lettere proposizionali” vengono costruiti enunciati
più elaborati usando i connettivi proposizionali
• Determina gli enunciati composti veri a causa della loro
struttura, le tautologie, e gli enunciati che sono conseguenza
logica di altri
31
Linguaggio della logica proposizionale classica
• insieme P = {p1, p2, p3, . . .} di lettere proposizionali
• simboli di costante: ⊤ (vero) e ⊥ (falso)
• connettivi proposizionali:
– unari: ¬ (negazione)
– binari: ∧, ∨, ⊃, ≡,...
• parentesi: (,)
32
Definizione delle formule proposizionali
Una formula atomica è una lettera proposizionale, ⊤ o ⊥.
Indichiamo con ATProp l’insieme di tutte le formule atomiche
L’insieme delle formule proposizionali Prop viene definito come il
più piccolo insieme S ⊆ Σ+ che gode delle seguenti proprietà:
1. ATProp ⊆ S
2. X ∈ S ⇒ ¬X ∈ S
3. X, Y ∈ S ⇒ (X ◦ Y ) ∈ S, per ogni connettivo binario ◦
33
Principio di induzione strutturale
Metodo di dimostrazione che sfrutta la struttura induttiva delle
formule
Sia Q ⊆ Prop, se
• CASO BASE:
1. ATProp ⊆ Q
• PASSO INDUTTIVO:
2. X ∈ Q ⇒ ¬X ∈ Q
3. X, Y ∈ Q ⇒ (X ◦ Y ) ∈ Q, per ogni connettivo binario ◦
Allora Q = Prop
34
Scarica