Linguaggi. Claudio Sacerdoti Coen 11/04/2011. 18: Semantica della logica del prim ordine. <sacerdot@cs.unibo.it> Universitá di Bologna



Documenti analoghi
Linguaggi. Claudio Sacerdoti Coen 13/12/ : Semantica della logica del prim ordine. Universitá di Bologna

x u v(p(x, fx) q(u, v)), e poi

Alcune nozioni di base di Logica Matematica

Algebra di Boole ed Elementi di Logica

Predicati e Quantificatori

(anno accademico )

Algebra e Logica Matematica. Calcolo delle proposizioni Logica del primo ordine

Appunti di Logica Matematica

Linguaggi del I ordine - semantica. Per dare significato ad una formula del I ordine bisogna specificare

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

LOGICA PER LA PROGRAMMAZIONE. Franco Turini

Lezione 8. La macchina universale

Semantica Assiomatica

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)

Linguaggi. Claudio Sacerdoti Coen 15/04/ : Deduzione naturale per la logica del prim ordine. Universitá di Bologna

1 Giochi a due, con informazione perfetta e somma zero

10. Insiemi non misurabili secondo Lebesgue.

Capitolo 7: Teoria generale della calcolabilitá

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.

LE FUNZIONI A DUE VARIABILI

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

G. Pareschi ALGEBRE DI BOOLE. 1. Algebre di Boole

f: AxB f(x)=y, f={<x,y> per ogni x in A esiste unica y in B f(x)=y} f={<1,2>, <2,3>, <3,3>} : {1,2,3} {1,2,3} f(1)=2, f(2)=3, f(3)=3

Calcolo Relazionale Basi di dati e sistemi informativi 1. Calcolo Relazionale. Angelo Montanari

Definizione di nuovi tipi in C

Elementi di semantica operazionale

Note su quicksort per ASD (DRAFT)

Ottimizzazione delle interrogazioni (parte I)

LEZIONE 17. B : kn k m.

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Esercitazione. Proposizioni. April 16, Esercizi presi dal libro di Rosen (useremo 0 per False e 1 per True). Problema 15, sezione 1.1.

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

Ricorsione in SQL-99. Introduzione. Idea di base

LOGICA DEI PREDICATI. Introduzione. Predicati e termini individuali. Termini individuali semplici e composti

Lezione 9: Cambio di base

Cos è un Calcolatore?

Calcolatori: Algebra Booleana e Reti Logiche

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

Corrispondenze e funzioni

1. PRIME PROPRIETÀ 2

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

ALGEBRA DELLE PROPOSIZIONI

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

Metodologie di programmazione in Fortran 90

3 GRAFICI DI FUNZIONI

Errori più comuni. nelle prove scritte

Concetto di Funzione e Procedura METODI in Java

Linguaggi Elementari

Albero semantico. Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni.

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI

Algebra e Geometria. Ingegneria Meccanica e dei Materiali Sez (2) Ingegneria dell Automazione Industriale Sez (2)

Fondamenti dei linguaggi di programmazione

Logica del primo ordine

risulta (x) = 1 se x < 0.

Dall italiano al linguaggio della logica proposizionale

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

2. Semantica proposizionale classica

ESERCIZI SVOLTI. 1) Dimostrare che l insieme. non è ricorsivo. Soluzione: Definiamo l insieme

Elementi di semantica denotazionale ed operazionale

Il principio di induzione e i numeri naturali.

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio

LINGUAGGI DI PROGRAMMAZIONE

La selezione binaria

Fa riferimento ad una famiglia di linguaggi dichiarativi, basati sul calcolo dei predicati del primo ordine

LEZIONE 31. B i : R n R. R m,n, x = (x 1,..., x n ). Allora sappiamo che è definita. j=1. a i,j x j.

Risoluzione. Eric Miotto Corretto dal prof. Silvio Valentini 15 giugno 2005

Prodotto libero di gruppi

I tre concetti si possono descrivere in modo unitario dicendo che f e iniettiva, suriettiva, biiettiva se e solo se per ogni b B l equazione

Semantica operazionale dei linguaggi di Programmazione

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.

Codifica: dal diagramma a blocchi al linguaggio C++

Lezioni di Matematica 1 - I modulo

Teoria degli insiemi

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Planning as Model Checking Presentazione della Tesina di Intelligenza Artificiale

Corso di LOGICA II: indagini semantiche su modalità e quantificazione. Uno studio di logica della necessità e della possibilità

Descrizione di un algoritmo

Algoritmi e strutture dati. Codici di Huffman

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

1 Applicazioni Lineari tra Spazi Vettoriali

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi

I.I.S. Primo Levi Badia Polesine A.S

Esercizio per casa. Filosofia della scienza Gianluigi Bellin. October 29, Si formalizzino i seguenti enunciati nel calcolo dei predicati.

4 3 4 = 4 x x x 10 0 aaa

2 Progetto e realizzazione di funzioni ricorsive

Interpretazione astratta

19. Inclusioni tra spazi L p.

Lezione 4. Modello EER

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Algebra Booleana ed Espressioni Booleane

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Transcript:

Linguaggi 18: Semantica della logica del prim ordine <sacerdot@cs.unibo.it> Universitá di Bologna 11/04/2011

Outline Semantica della logica del prim ordine 1 Semantica della logica del prim ordine

Semantica Wikipedia:...

Semantica classica della logica del prim ordine Al fine di definire la semantica classica di un linguaggio del prim ordine è necessario prima individuare la forma appropriata per le descrizioni dei mondi. La semantica classica associa: A ogni connotazione proposizionale un valore di verità {0, 1} A ogni connotazione che è un termine un elemento del dominio delle denotazioni per i termini Inoltre, come nel caso proposizionale, un mondo deve fissare esclusivamente la semantica delle formule atomiche (costanti, funzioni, predicati) che verrà estesa a ogni formula possibile assegnando una semantica invariabile ai connettivi e ai quantificatori.

Semantica classica della logica del prim ordine Definizione: un mondo o interpretazione per la logica del prim ordine è una coppia (A, I) dove A è un insieme non vuoto di denotazioni per i termini e I è una funzione di interpretazione che associa a ogni funzione f n una funzione il cui dominio è A n = A... A (n volte) e il cui codominio è A Caso particolare: per ogni costante c, I(c) A a ogni predicato P n una funzione il cui dominio è A n e il cui codominio è {0, 1} o, equivalentemente, un sottoinsieme di A n Caso particolare: per ogni predicato 0-ario P, I(P) {0, 1} come nel caso della logica proposizionale Nota: un mondo non è più rappresentabile come una sequenza di booleani e non è più possibile usare tabelle di verità.

Semantica classica della logica del prim ordine Siamo già in grado di interpretare in un mondo (A, I) termini e proposizioni in cui non occorrano variabili. (La definizione formale verrà data in seguito). Esempio: Sia A = N, I(D) l insieme dei numeri pari, I(f 1 )(n) = n + 1 I(c) = 2. Allora [[D(f (c))]] (A,I) = 0. Ma che semantica diamo a x.p e a x.p? Intuitivamente, x.p è vera quando P è sempre vera al variare di x mentre x.p è vera quando P è vera almeno una volta al variare di x. La variazione è implicita essere sul dominio A del nostro mondo.

Semantica classica della logica del prim ordine Come catturare la nozione di variazione di x sul dominio A? Vediamo prima un paio di modi non corretti: 1 [[ x.p]] (A,I) = min{[[p[α/x] α A]] (A,I) } Errata in quanto α è una denotazione e non una connotazione! Pertanto P[α/x] non è ammesso dalla sintassi. 2 [[ x.p]] (A,I) = min{[[p[t/x] t Term]] (A,I) } dove Ter è l insieme di tutte le connotazioni per termini nel nostro linguaggio. Errata in quanto il mio mondo potrebbe avere molte più denotazioni per termini di quelle rappresentabili sintatticamente tramite connotazioni. Esempio: A = R poichè l insieme delle connotazioni è sempre enumerabile.

Semantica classica della logica del prim ordine Come catturare la nozione di variazione di x sul dominio A? Definizione: dato un mondo (A, I) un ambiente ξ è una funzione il cui dominio è l insieme di tutte le variabili e il cui codominio è A. Useremo gli ambienti per interpretare le variabili nello stesso modo in cui usiamo I per interpretare le costanti. Esempio: [[f 2 (c, x)]] (A,I),ξ = I(f 2 )(I(c), ξ(x)) I quantificatori universale ed esistenziale fanno variare gli ambienti per assegnare a una variabile x tutti i possibili valori di A.

Semantica classica della logica del prim ordine Definizione di semantica classica della logica del prim ordine. Sia (A, I) un mondo e ξ un ambiente sul mondo. Definiamo per induzione strutturale [[x]] (A,I),ξ = ξ(x) [[f n (t 1,..., t n )]] (A,I),ξ = I(f n )([[t 1 ]] (A,I),ξ,..., [[t n ]] (A,I),ξ ) [[P n (t 1,..., t n )]] (A,I),ξ = I(P n )([[t 1 ]] (A,I),ξ,..., [[t n ]] (A,I),ξ ) [[ ]] (A,I),ξ = 0 [[ ]] (A,I),ξ = 1 [[ P]] (A,I),ξ = 1 [[P]] (A,I),ξ [[P 1 P 2 ]] (A,I),ξ = min{[[p 1 ]] (A,I),ξ, [[P 2 ]] (A,I),ξ } [[P 1 P 2 ]] (A,I),ξ = max{[[p 1 ]] (A,I),ξ, [[P 2 ]] (A,I),ξ } [[P 1 P 2 ]] (A,I),ξ = max{1 [[P 1 ]] (A,I),ξ, [[P 2 ]] (A,I),ξ } [[ x.p]] (A,I),ξ = min{[[p]] (A,I),ξ[x α] α A} [[ x.p]] (A,I),ξ = max{[[p]] (A,I),ξ[x α] α A} dove ξ[x α] associa α a x e ξ(y) a y.

Soddisfacibilità, insoddisfacibilità,... Tutte le definizioni viste per la logica proposizionale classica che facevano riferimento alle nozioni di mondo e semantica rimangono identiche per la logica del prim ordine classica con le nuove definizioni di mondo (e ambiente) e semantica. Esempio: Γ G quando in ogni mondo (A, I) e ambiente ξ si ha che se [[F]] (A,I),ξ = 1 per ogni F Γ allora [[G]] (A,I),ξ = 1.

Semantica intuizionista della logica del prim ordine Accenniamo qui alla semantica intuizionista della logica del prim ordine dando le denotazioni per le proposizioni (ma non per i termini in quanto tali): [[ x.p(x)]]={f f è una funzione che a ogni x associa un programma f (x) [[P(x)]]} Il quantificatore universale corrisponde a una forma di polimorfismo: per esempio, f [[ x.(p(x) Q(x)) quando per ogni x si ha che f (x) è una funzione che associa a ogni input i [[P(x)]] un output o [[Q(x)]], ovvero f è una funzione polimorfa.

Semantica intuizionista della logica del prim ordine Accenniamo qui alla semantica intuizionista della logica del prim ordine dando le denotazioni per le proposizioni (ma non per i termini in quanto tali): [[ x.p(x)]]={ t, q q [[P(t)]]} La semantica del quantificatore esistenziale è l insieme degli elementi t (chiamati testimoni) per i quali la proprietà vale assieme a un evidenza (programma) per il fatto che la proprietà valga. In altre parole: una tautologia intuizionista x. y.p(x, y) ha come semantica programmi che associano a ogni input x un output y con la prova che la coppia input/output soddisfa la specifica data per il programma.

Semantica intuizionista della logica del prim ordine Esempio di specifica per un algoritmo di ordinamento: l.(lista(l) l.(lista(l ) Ordinata(l ) z.(z l z l ))) Ogni prova intuizionista del precedente enunciato ha come semantica a essa associata una funzione che data una lista l restituisce una lista l assieme a un programma che mostra che l e l hanno gli stessi elementi e che l è ordinata. Una dimostrazione intuizionista corrisponde a dare contemporaneamente un implementazione e la dimostrazione di correttezza dell implementazione stessa! Rimandiamo ancora una volta al corso di Fondamenti Logici dell Informatica lo studio di questo approccio alla programmazione.

Equivalenze logiche notevoli Quantificatori dello stesso tipo commutano: x. y.p y. x.p x. y.p y. x.p Quantificatori di tipo diverso NON commutano: x. y.p y. x.p x. y.p y. x.p

Equivalenze logiche notevoli Le seguenti equivalenze possono essere utilizzate per spostare i quantificatori in posizione di testa nelle formule: x.(p Q) ( x.p) ( x.q) x.(p Q) ( x.p) ( x.q) (usata da dx a sx) (usata da dx a sx) x.p P se x FV (P) x.p P se x FV (P) (usata da dx a sx) (usata da dx a sx) x.(p Q) ( x.p) Q se x FV (Q) x.(p Q) ( x.p) Q se x FV (Q) (usata da dx a sx) (usata da dx a sx)

Equivalenze logiche notevoli Le leggi di De Morgan si estendono ai quantificatori universali ed esistenziali (pensati come congiunzioni/disgiunzioni infinite): x.p x. P x. P x.p x.p x. P solo in logica classica in logica intuizionista in logica classica e intuizionista Attenzione: per dimostrare che x.p basta dimostrare che x. P ovvero è sufficiente un controesempio. Ma per dimostrare x.p dobbiamo dimostrare x. P ovvero serve una dimostrazione.

Equivalenze logiche notevoli Sia x FV (Q) (sempre vero per un qualche Q che sia α-convertibile con Q). Si ha ( x.p) Q x.(p Q) x.(p Q) ( x.p) Q ( x.p) Q x.(p Q) Q ( x.p) x.(q P) Q ( x.p) x.(q P) solo in logica classica in logica intuizionista

Forma normale prenessa Definizione: una formula della logica del prim ordine è in forma normale prenessa quando è della forma Q 1 x 1... Q n x n.p dove P non contiene quantificatori e Q {, } per ogni i. Teorema: solo in logica classica esiste un semplice algoritmo per mettere ogni formula data in forma normale prenessa. Dimostrazione (algoritmo): è sufficiente applicare le equivalenze logiche notevoli viste in precedenza sempre da dx a sx fino a quando possibile.

Forma normale prenessa Esempio: (( x.p(x)) ( x.q(x)) x.r(x) (( x.p(x)) ( y.q(y)) z.r(z) ( x. y.(p(x) Q(y)) z.r(z) x.((( y.(p(x) Q(y)) z.r(z))) x. y.(p(x) Q(y) z.r(z))) x. y. z.(p(x) Q(y) R(z)))

Forma normale di Skolem Definizione: una formula della logica del prim ordine è in forma normale di Skolem quando è della forma 1 x 1... n x n.p dove P non contiene quantificatori. Definizione (Skolemizzazione): data una formula Q 1 x 1... Q n x n.p in forma normale prenessa la sua Skolemizzata è la formual ottenuta rimuovendo ogni quantificatore esistenziale x i e sostituendo in P la variabile x i con f i (x n1,..., x ni ) dove f i è un nuovo simbolo di funzione e {x n1,..., x ni } è il sottoinsieme di {x 1,..., x i 1 } contenente solo le variabili quantificate universalmente. Esempio: x. y. z. w.p(x, y, z, w) si skolemizza in y. z.p(c, y, z, f (y, z)).

Forma normale di Skolem L idea alla base della Skolemizzazione è che per dimostrare che una proprietà esistenziale vale posso far riferimento alle variabili universali in scope. Esempio: n. m.m > n è dimostrabile scegliendo come m, per ogni n, il valore n + 1. Sostituendo a quantificatori esistenziali (che dipendono dagli universali in scope) delle funzioni (costanti) applicate alle variabili in scope NON VIENE RISPETTATA L EQUIVALENZA LOGICA. Esempio: n. m.m > n che è soddisfatta nel mondo inteso dell aritmetica sui numeri naturali dove I(f )(n) = n 1 si skolemizza in n.f (n) > n che non è soddisfatta nello stesso mondo.

Forma normale di Skolem Quindi la skolemizzazione non rispetta l equivalenza logica. Tuttavia essa rispetta la soddisfacibilità. Esempio: n. m.m > n che è soddisfatta nel mondo inteso dell aritmetica e si dimostra scegliendo n + 1 per m si skolemizza in n.f (n) > n che è soddisfatta nel mondo dell aritmetica ove I(f )(n) = n + 1.