X - Informatica

Transcript

X - Informatica
Logica dei Predicati:
1
Sintassi
Corso di Logica e Reti Logiche, a.a. 2015-16
Roberto Basili
(Università di Roma Tor Vergata)
Roberto Basili
4/11/2016
2
Outline
 Motivazioni
 Espressività
 Deduzione in FOL
 Calcolo dei Predicati: Outline dei Temi
 Elementi del Linguaggio
 Sintassi delle formule
 Esempi ed esercizi proposti
Roberto Basili
4/11/2016
3
Limiti dei Linguaggi
Proposizionali
 Cosa (non) posso dire?
 (1) I banchieri sono ricchi. Aldo è povero. Quindi
Aldo non è un banchiere.
 (2) I banchieri sono ricchi. Aldo è ricco. Quindi Aldo
è un banchiere.
 (3) I banchieri sono biondi. I biondi sono ricchi.
Quindi i banchieri sono ricchi.
 (4) I banchieri sono ricchi. I ricchi sono sempre felici.
Quindi i banchieri sono sempre felici.
Roberto Basili
4/11/2016
4
Limiti dei Linguaggi
Proposizionali
 Cosa (non) posso dire?
 YES! (1) I banchieri sono ricchi. Aldo è povero.
Quindi Aldo non è un banchiere.
 NO (2) I banchieri sono ricchi. Aldo è ricco. Quindi
Aldo è un banchiere.
 Vera anche se premessa è falsa YES? (3) I banchieri
sono biondi. I biondi sono ricchi. Quindi i banchieri
sono ricchi.
 Falsa ma giustificata dalle premesse YES? (4) I
banchieri sono ricchi. I ricchi sono sempre felici.
Quindi i banchieri sono sempre felici.
Roberto Basili
4/11/2016
5
Limiti dei Linguaggi
Proposizionali
 Ma ciò che veramente è problematico con le frasi
seguenti è che non si possano esprimere molte
proprietà che ci aiutano a decidere:
 (1) I banchieri sono ricchi. Aldo è povero. Quindi
Aldo non è un banchiere.
 ricchi vs. povero
 (2) I banchieri sono ricchi. Aldo è ricco. Quindi Aldo
è un banchiere.
 essere un banchiere per chiunque non sia Aldo …
 (3) I banchieri sono biondi. I biondi sono ricchi.
Quindi i banchieri sono ricchi.
 (4) I banchieri sono ricchi. I ricchi sono sempre felici.
Quindi i banchieri sono sempre felici.
 Perché 3 e 4 sono vera/falsa?
Roberto Basili
4/11/2016
6
Limiti dei Linguaggi
Proposizionali
 Cosa posso dedurre da fatti noti e meccanismi di
inferenza consistenti?
 MP:
 p1: «Tutti gli uomini sono mortali»
 p2: «Socrate è un uomo»
 t: «Socrate è mortale»
 Perché se ( p1  p2 )  t non è valida, questo
ragionamento ci appare consistente?
Roberto Basili
4/11/2016
7
Scopo
 Definire come un linguaggio formale più espressivo
della logica proposizionale vista sinora, utile a
descrivere e validare (cioè garantirne la correttezza)
di argomentazioni, cioè successioni di enunciati
linguistici di tipo descrittivo (ovvero, frasi di una lingua
naturale che descrivono stati di cose, e che sono o
veri o falsi).
Roberto Basili
4/11/2016
8
Le Argomentazioni
 Un insieme di enunciati, , sono assunti come
premesse (perché “evidenti”, o perché già condivisi
dalle parti interessate all’argomentazione, o
semplicemente per analizzarne le conseguenze); un
enunciato, A, è invece derivato come conclusione.
 L’argomentazione è valida se la conclusione (A) è
certamente vera sotto l’ipotesi che lo siano le
premesse (). In tal caso, si dice anche che la
conclusione è conseguenza logica delle premesse o
che le premesse comportano (in inglese: entail) la
conclusione e si scrive:
   A.
Roberto Basili
4/11/2016
9
Un esempio motivante
 Ci interessano i blocchi e alcune loro relazioni spaziali
 Dominio: {a, b, c, d, e}
 Le funzioni: si individuano le funzioni rilevanti che
servono anch’esse per identificare oggetti.
 Es. Hat la funzione unaria che dato un blocco identifica il
blocco che ci sta sopra;
Hat(b)=a
 Le relazioni: si individuano le relazioni interessanti.
 Es.
On= {<a, b>, <b, c>, <d, e>}
Clear= {a, d}
Table= {c, e}
Block= {a, b, c, d, e}
Roberto Basili
4/11/2016
10
Gli Elementi del linguaggio:
 Come sono fatti gli elementi di tale linguaggio?
 Gli elementi di un linguaggio predicativo debbono
almeno contenere i seguenti elementi
 Le Relazioni sussistenti tra elementi del dominio che sono
oggetto di descrizione (affermazione o negazione)
 Le Costanti del discorso
 Nomi di individui
 Funzioni operanti sugli individui del dominio
 Le denotazioni di variabili
Roberto Basili
4/11/2016
11
Elementi del linguaggio: le
Relazioni
 Alcuni esempi
 Su/2 come «posto di sopra»
 PadreDi/2 come espressione di una «direzione» che
determina una gerarchia
 SottoinsiemeDI/2 che è simile ad una gerarchia e che
vale negli insiemi, ma che non è sempre unidirezionale (è
una specie di relazione uno-a-molti tra figli e padri)
Roberto Basili
4/11/2016
12
Elementi del Linguaggio:
costanti e variabili
 I simboli di costanti e variabili sono rigidamente
separati:
 La proprietà comune è che essi costituiscono nomi per
rappresentare entità individuali
 Se in una espressione si ripete l’uso di una costante o di una
variabile si intende sempre lo stesso individuo perché il suo
nome non è cambiato …
 Le costanti sono denotazioni di singoli individui che non
variano tra formule diverse: è rigida la associazione tra
nome ed individuo
 Le variabili sono denotazioni di un individuo non rigide
 In formule diverse le variabili possono rappresentare individui
diversi
 Sono diversi gli individui interessati da una espressione che
contiene una variabile, ad es. pari(X) con X aperto a
denotare diversi numeri (anche se uno per volta ….)
Roberto Basili
4/11/2016
13
Calcolo dei Predicati: verso
la sintassi
 Il linguaggio predicativo del primo ordine è detto
anche linguaggio predicativo elementare perché
consente di predicare proprietà e relazioni
concernenti gli elementi di un “universo del discorso”,
detto comunemente dominio.
 Questo linguaggio può essere visto come
l’idealizzazione di un frammento del linguaggio
umano.
 Come nelle lingue naturali, esistono due tipi di
espressioni:
 i termini, utilizzati per fare riferimento a individui del
dominio;
 le formule, e più in particolare gli enunciati, utilizzate per
descrivere stati di cose riguardanti gli individui del
dominio.
Roberto Basili
4/11/2016
14
Calcolo Predicativo: i termini
 Il modo più semplice definire gli elementi di un
dominio è l’uso di un “identificatore”, che funzioni
proprio come un nome proprio.
 A questo scopo il linguaggio del primo ordine prevede
l’uso di un insieme (eventualmente vuoto) di
identificatori, chiamati costanti individuali o più
semplicemente costanti.
 Essi fanno individualmente riferimento ad una entità
(individuo) del dominio
Roberto Basili
4/11/2016
15
Calcolo Predicativo: i termini
(2)
 Inoltre ad un individuo si può fare riferimento anche
con un’espressione di tipo funzionale, come “il padre
di ...”, dove “padre di” è vista come una funzione
agente sugli individui del dominio.
 Il linguaggio prevede un insieme (eventualmente
vuoto, al più numerabile) di funtori (o simboli di
funzione).
 Per i funtori adotteremo le lettere f, g, h, ...,
 Ogni funtore f ha un numero prefissato n di argomenti;
questo numero è detto l’arità del funtore.
 E’ possibile ammettere anche funtori con arità zero,
che corrispondono alle espressioni costani
Roberto Basili
4/11/2016
16
Calcolo Predicativo: i termini
(3)
 La definizione formale di termine è dunque ricorsiva:
 ogni costante individuale, denotata dalle prime lettere
dell’alfabeto quali a, b, c, …, è un termine;
 ogni variabile individuale denotata dalle ultime lettere
dell’alfabeto quali x, y, z, t, u, …, è un termine;
 ogni espressione della forma
f(t1,...,tn) è un termine
se f è un funtore di arità n e tutti i tk sono termini.
Roberto Basili
4/11/2016
17
Esempi di termini
 Se assumiamo che f e g siano funtori di arità uno e h
sia un funtore di arità due, allora i seguenti sono tutti
termini ben formati:
 a
 X
 f(a)
 g(x)
 h(a,b)
 h(f(a),g(f(x))
Roberto Basili
4/11/2016
18
Calcolo Predicativo: le
Relazioni
 Il modo più immediato di descrivere uno stato di cose
consiste nel dire che fra certi individui sussiste una
data relazione.
 I simboli di relazione costituiscono un insieme (non
vuoto, al più numerabile) di predicati, per i quali
adotteremo le lettere P, Q, R, ...,
 Ogni predicato P ha un numero prefissato n di
argomenti; questo numero è detto l’arità del
predicato.
Roberto Basili
4/11/2016
19
Calcolo Predicativo: le
Relazioni (2)
 I predicati di arità due (o “a due posti”) sono utilizzati
per rappresentare relazioni binarie.
 Così, se a Antonio e Bruno si fa riferimento
rispettivamente con le costanti a e b, e la relazione
“fratello” è rappresentata dal predicato P, la frase
“Antonio è il fratello di Bruno” si rappresenta come
P(a,b).
 Utilizzando predicati di arità adeguata, è possibile
rappresentare relazioni anche fra terne, quaterne, …
o n-ple di individui.
 I predicati a un posto rappresentano le proprietà di
individui.
 Ad esempio, se il predicato G rappresenta la proprietà
“giovane”, la frase “Abel è giovane” si rappresenta
come G(a).
Roberto Basili
4/11/2016
Calcolo dei Predicati: le
Formule atomiche (ATOMI)
 Simboli costanti e variabili, termini ed espressioni
funzionali in generale e predicati ci consentono di
definire il tipo più semplice di formule, ovvero le
formule atomiche
DEF (Formule Atomiche):
  e

20
sono formule atomiche
 Ogni espressione della forma
P(t1,...,tn)
è una formula atomica se P è un predicato di arità n e
tutti i tk sono termini.
Roberto Basili
4/11/2016
21
Calcolo dei Predicati:
Formule complesse
 A partire dalle formule atomiche si possono costruire
formule più complesse utilizzando i simboli logici,
ovvero i connettivi booleani e i quantificatori.
 I connettivi e i quantificatori normalmente utilizzati
sono i seguenti:
 un connettivo unario (ovvero, con un solo argomento): la
negazione ();
 quattro connettivi binari: la congiunzione (), la
disgiunzione (), il condizionale () e il bicondizionale
();
 due quantificatori: universale () ed esistenziale ().
Roberto Basili
4/11/2016
22
Calcolo dei Predicati:
Formule Ben Formate (FBF)
 Ogni formula atomica è una formula;
 Ogni espressione della forma j, se j è una formula;
 Ogni espressione della forma
 (j  y),
 (j  y),
 (j  y)
 (j  y)
è una formula, se j e y sono formule;
 Ogni espressione della forma
 xj
e
xj
è una formula, se x è una variabile e j è una formula.
Roberto Basili
4/11/2016
23
Precedenze e parentesi
 Si possono tralasciare le eventuali parentesi esterne di
una formula;
 (((P  Q)  R)  S)

((P  Q)  R)  S;
 Il raggruppamento di sottoformule da sinistra verso
destra per uno stesso connettivo binario non richiede
le parentesi:
 ((P  Q)  R)  S

(P  Q  R)  S;
 Tra i simboli logici (connettivi e quantificatori) esiste la
seguente gerarchia di precedenza:
{, , } > {} > {} > {} > {}

Ad esempio:
 (P  Q  R)  S

P  Q  R  S,
 ((P  Q)  (Q  P))  (P  Q)  (Q  P)
 P  Q  Q  P,
 (xP(x)  Q(x)) 
Roberto Basili
xP(x)  Q(x).
4/11/2016
24
Il trattamento delle Variabili
 Una formula che non contenga variabili si dice
fondamentale (o, dall’inglese, ground).
 Se una formula contiene variabili ne può contenere
più d’una, ognuna con una o più occorrenze.
 Ad esempio, la formula
xP(x,y)  Q(x)
contiene tre occorrenze della variabile x (compresa
l’occorrenza che segue immediatamente il
quantificatore) ed una occorrenza della variabile y.
Roberto Basili
4/11/2016
25
Il trattamento delle Variabili
(2)
 Ogni quantificatore applicato ad una formula j ha un
ambito o campo di applicazione (dall’inglese scope)
che corrisponde alla sottoformula di j sulle cui variabili
agisce.
 Ad esempio, nella formula
xP(x,y)  Q(x)
l’ambito di x è la formula P(x,y);
 Nella formula
x(P(x,y)  Q(x)),
invece, l’ambito di x è la formula P(x,y)  Q(x).
Roberto Basili
4/11/2016
26
Il trattamento delle Variabili
(3)
 Un’occorrenza di una variabile x si dice vincolata se
1. è l’occorrenza che segue immediatamente il
simbolo del quantificatore oppure
2. appartiene all’ambito di un quantificatore
x o x;
 Ogni altra occorrenza di una variabile si dice invece
libera.
 Ad esempio, nella formula
xP(x,y)  Q(x)
le prime due occorrenze di x sono vincolate, la terza è
libera, e l’unica occorrenza di y è libera.
Roberto Basili
4/11/2016
27
Trattamento delle Variabili:
problematicità
 xP(x,y) e zP(z,y) sono sostanzialmente la stessa
formula, e si dicono variante alfabetica l’una dell’altra
 Esistono formule in cui le variabili sono libere che non
hanno una chiara interpretazione:
 cfr.
P(a), xP(x)
e
P(x)
 La ultima costituisce una formula aperta, cioè che
presenta occorrenze libere di variabili (la cui
interpretazione è in qualche modo incompleta),
 Le prime due sono formule chiuse, che non
contengono occorrenze libere di variabili e sono
quindi completamente interpretate.
Roberto Basili
4/11/2016
28
Trattamento delle Variabili:
gli Enunciati
 Esistono infine formule iperquantificate, ad es.
xyP(a,x)
 Il quantificatore y, infatti, è ridondante perché non ci
sono nel suo ambito occorrenze libere (e quindi
quantificabili) di y.
 Si dicono “enunciati” il sottoinsieme delle formule ben
formate che non contiene tali problematicità.
 Chiameremo enunciato ogni formula che sia chiusa (e
quindi non abbia occorrenze libere di variabili) e priva
di quantificatori ridondanti (ovvero, ogni
quantificatore applicato a una variabile x deve avere
nel suo ambito almeno un’occorrenza libera di x)
Roberto Basili
4/11/2016
29
Variabili e Costanti: la
sostituzione
 Se j è una formula, x è una variabile e t un termine
qualsiasi, con
j(t/x)
indicheremo la formula che si ottiene partendo da j e
sostituendo ogni occorrenza libera di x con il termine t.
 Ad esempio, se j è la formula
 P(x)  xQ(x),
allora j(a/x) è la formula
P(a)  xQ(x).
Roberto Basili
4/11/2016
30
Ancora sulla sostituzione
 Nel Calcolo Proposizionale visto a lezione:
Roberto Basili
4/11/2016
31
L’uguaglianza
 Nel linguaggio del primo ordine introdotto sin qui, i
simboli logici si usano sempre, qualsiasi sia il linguaggio
specifico definito, cioè quello che dipende dalla
applicazione: quest’ultimo infatti dipende **solo**
dalla scelta dei simboli costanti, dei funtori e dei
simboli predicativi.
 C’è però un predicato binario particolarmente
significativo, che può essere introdotto
indipendentemente dall’applicazione: si tratta del
predicato di uguaglianza, =.
 Qualora uno speciale predicato di arità 2 viene
introdotta che corrisponde alla uguaglianza, si parla
allora di linguaggio del primo ordine con
l’uguaglianza.
Roberto Basili
4/11/2016
FOL con uguaglianza:
ATOMI (revised)
DEF (Formule Atomiche):
 e

32
sono formule atomiche
 Ogni espressione della forma
t1 = t2
è un a formula atomica se t11 se t12 sono termini.
 Ogni espressione della forma
P(t1,...,tn)
è una formula atomica se P è un predicato di arità n e
tutti i tk sono termini.
Roberto Basili
4/11/2016
33
FOL con uguaglianza: FBF
(revised)
 Ogni formula atomica è una formula;
 Ogni espressione della forma j, se j è una formula;
 Ogni espressione della forma
 (j  y),
 (j  y),
 (j  y)
 (j  y)
è una formula, se j e y sono formule;
 Ogni espressione della forma
 xj
e
xj
è una formula, se x è una variabile e j è una formula.
Roberto Basili
4/11/2016
34
Il significato: il problema e la
prospettiva
 Cosa significa assegnare significato ad una formula?
 Problemi
 Applicazioni:
 Verificare le proprietà di affermazioni/teoremi utili ad una
disciplina
 Verificare le proprietà dei programmi
 Fornire regole di deduzione a sistemi di ragionamento
automatico
Roberto Basili
4/11/2016
35
Esercizio
Roberto Basili
4/11/2016
36
Esercizi (1)
 Determinare gli atomi delle seguenti formule
 xH(x)  (x G(x, f(y))  H(y))
 x H(a)  G(b)  L(x,g(b,x))
 Determinare le variabili delle seguenti formule
 x H(x)  G(b)  x L(x,b)
 x (H(x)  G(b)  P(x,y))  x L(x,b)
 x (H(x)  G(b)  P(x,y))  x L(x,b)
 Determinare le variabili libere nelle formule di sopra
Roberto Basili
4/11/2016
37
Esercizi (1)
 Determinare la traduzione in FOL senza uguaglianza
delle seguenti frasi
 Gianni corre sempre con ogni tempo (meteorologico)
 Gianni mangia tutti i tipi di carne
 Ogni giorno piove
 Tutti gli interi sono positivi o nulli
 Determinare la traduzione in FOL con uguaglianza
delle seguenti frasi
 Lo zero tra gli interi è unico
 Determinare l’albero sintattico delle formule scritte
Roberto Basili
4/11/2016
Esercizi (2)
 Dimostrare le seguenti uguaglianze
 x P(x)  P(x) =

38
 x P(x)  P(x) = x P(x)  P(x)
 x P(x)  Q(x) = x P(x)  Q(x)
Roberto Basili
4/11/2016
39
Riferimenti
 [2] C.L. Chang and Lee R.C.T. Symbolic Logic and
Mechanical Theorem Proving. Academic Press, 1973. trad. it.
Tecniche Nuove.
 [5] E. Mendelson. Introduction to Mathematical Logic. Van
Nostrand, 1964. Trad. it. Boringhieri.
 Carlucci Aiello Luigia, Pirri Fiora, Strutture, logica, linguaggi,
2005, 336 p., Editore Pearson (collana Accademica).
 McCarthy, J., and P. Hayes (1969). Some philosophical
problems from the standpoint of artificial intelligence. In B.
Meltzer and D. Michie, eds., Machine Intelligence 4,
Edinburgh University Press, Edinburgh, UK.
 Nilsson, N. J. (1998). Artificial intelligence: A new synthesis,
Morgan Kaufmann, San Francisco, CA.
 Anche: dispense M. Cialdea Mayer. Logica (Home page)
Roberto Basili
4/11/2016