COMPITO di LOGICA PER INFORMATICA (fila 1) 21 settembre 2005

Documenti analoghi
COMPITO di LOGICA PER INFORMATICA (fila 1) 24 giugno 2005

ESAME di LOGICA PER INFORMATICA 24 giugno 2003

Nome: Corso di laurea: Matricola:

Alberi di sequenti per un linguaggio predicativo L 1.

Prima Prova scritta parziale di Logica Matematica maggio Versione A

Elementi di Algebra e Logica Determinare la tavola della verità di ciascuna delle seguenti forme proposizionali:

(Ciascuno dei quiz non ha necessariamente una ed una sola risposta giusta) 1. Sia f : X X una funzione totale e iniettiva e sia R X X definito da

Complementi alle Dispense di Logica Matematica corso A e B

Teorema 1.1. (Teorema di Compattezza) Sia Γ un insieme di formule di un linguaggio proposizionale.

( x 1 )A 2 1 x2, f1 1 (x 1 ) )

Esercitazioni per il corso di Logica Matematica

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

Sistemi di dimostrazione

Esercizi sul Calcolo Proposizionale

Logica proposizionale classica. Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or )

Errata corrige del libro Introduzione alla logica e al linguaggio matematico

Prova scritta di Logica Matematica giugno Formalizzare e studiare la correttezza del seguente ragionamento:

Forma normale prenessa

METODI MATEMATICI PER L INFORMATICA

Esercitazioni per il corso di Logica Matematica

Logica dei Predicati (o Logica del Primo Ordine)

Logica proposizionale

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

401 PREDICATI RICORSIVI PRIMITIVI

COMPITO di LOGICA MATEMATICA (fila 1) 12 gennaio 2006

15. Nozione di modello e verità di un predicato

LOGICA MATEMATICA PER INFORMATICA

NOZIONI DI LOGICA PROPOSIZIONI.

15. Nozione di modello e verità di un predicato

LOGICA PER LA PROGRAMMAZIONE a.a. 2017/18 Terza esercitazione 24/ Soluzioni Proposte

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1

Prova parziale di Logica Matematica - 30 marzo 2009

Prova scritta di Logica Matematica - Giugno 2009

Logica: materiale didattico

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

Corso di Logica I. Modulo sul Calcolo dei Sequenti. Dispensa Lezione III.

METODI MATEMATICI PER L INFORMATICA

Cenni di logica matematica e di teoria degli insiemi. CORSI INTRODUTTIVI Dipartimento di Ingegneria di Perugia a.a. 2016/2017 Paola Rubbioni

Chiarificazione sulla forma delle regole del calcolo LC p

LOGICA E ALGEBRA. 5 febbraio Parte di Logica

Correzioni Compito. Filosofia della Scienza - CdL Biotecnologie, UniVerona December 8, Assegnato il 22 novembre consegnato 1 dicembre.

Cenni di logica matematica e di teoria degli insiemi Paola Rubbioni

Esercitazioni per il corso di Logica Matematica

ALGORITMO DI UNIFICAZIONE E RISOLUZIONE PREDICATIVA

Logica per la Programmazione

Cenni di logica matematica e di teoria degli insiemi Paola Rubbioni

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

ANALISI MATEMATICA I MODULO, I e II MODULO, II MODULO CORSO DI LAUREA IN INFORMATICA

ESERCIZI DI LOGICA MATEMATICA A.A Alessandro Combi

Esercizi di Logica Matematica (parte 2)

Linguaggi. Claudio Sacerdoti Coen 11/04/ : Semantica della logica del prim ordine. Universitá di Bologna

9 Calcolo dei sequenti LC p

Logica Predicativa. 1 Linguaggi predicativi

02 - Logica delle dimostrazioni

Esercizi con i tableaux in logica del primo ordine

NOZIONI DI LOGICA. Premessa

Logica per la Programmazione

Esercizi Logica Matematica

Tot

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

Corso di Laurea in Ingegneria Biomedica ANALISI MATEMATICA 1. Prova scritta del 22 luglio

Cenni di Logica. Hynek Kovarik. Università di Brescia. Analisi Matematica 1

Ragionamenti e metodi di dimostrazione. Liceo Scientifico Statale S. Cannizzaro Prof.re E. Modica

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini

IL CALCOLO DEL PRIMO ORDINE. Corso di Logica per la Programmazione A.A. 2010/11 Andrea Corradini, Paolo Mancarella

14. Nozione di modello e verità di un predicato

Fondamenti dell informatica

Certificati dei problemi in NP

INSIEMI. DEF. Un INSIEME è una qualsiasi collezione di oggetti.

Soluzioni della prova scritta di Geometria 1 del 27 giugno 2019 (versione I)

API. Ripasso di logica. Davide Martinenghi. Politecnico di Milano. API Davide Martinenghi (1/30)

Esercizio 2. Spiegare perché è falsa la seguente affermazione: Se n è un numero negativo, allora anche n + 3 è negativo.

Fondamenti dell Informatica. Esercizi di preparazione al secondo compitino

NOZIONI DI LOGICA. Premessa

Logica per la Programmazione

ANALISI MATEMATICA PER IL CdL IN INFORMATICA ESERCIZI SULLE DISEQUAZIONI

Prima prova in itinere per Matematica Discreta e Logica primo appello FILA A

1 Ampliamento del piano e coordinate omogenee

In Prolog predicati (programmi) e termini (dati) hanno la stessa struttura e possono essere utilizzati in modo interscambiabile

25 - Funzioni di più Variabili Introduzione

C1: L C1 C2: L C2 C: C1 C2

Dispensa di Informatica Teorica (Elementi) - Teorema di Cook

Logica per la Programmazione

Elementi di logica. SCOPO: introdurre nozioni di logica & vocabolario per una corretta interpretazione delle dimostrazioni.

LEZIONI DI LOGICA MATEMATICA DEL 6 E 9 OTTOBRE 2008:LOGICA PROPOSIZIONALE

Esercizi di Logica Matematica

LOGICA a.a Esempio di domande 2 prof.ssa Giovanna Corsi

Forme normali, clausole e Calcolo con regola di Risoluzione

13. Nozione di modello e verità di un predicato

LEZIONI 30/09/09-2/10/09

Esame dell insegnamento di METODI MATEMATICI - Canale A L - FILA A. (Ciascuno dei quiz non ha necessariamente una ed una sola risposta giusta)

Logica per la Programmazione

Corso di Laurea in Ingegneria Informatica e Automatica (A-O) Università di Roma La Sapienza

Capitolo 1 ANALISI COMPLESSA

LOGICA E ALGEBRA. 8 settembre 2014 PARTE DI ALGEBRA. (m,n) R (p,q) se e solo m q = n p

Rappresentazione della conoscenza. Lezione 5. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 5 0

Logica per la Programmazione

LOGICA MATEMATICA. Sonia L Innocente. Corso di Laurea. Informatica e Tecnologie/Informatica Industriale

Transcript:

COMPITO di LOGICA PER INFORMATICA (fila 1) 21 settembre 2005 Nome: Matricola: Esercizio 1.1 Si consideri la seguente scrittura ( ((x) ((y) P (x)(y))))( ((y) ((x) P (y)(x)))) Supponendo fissate le arietà per : 0 (0 0), : (0 0) 0 e : (0 0) 0, determinare le arietà delle variabili x e y e della costante P in modo che ne risulti una espressione corretta che denoti una formula nel linguaggio del primo ordine. Si determini poi una interpretazione che falsifichi la formula così ottenuta. Soluzione. Affinchè la scrittura considerata risulti una formula è necessario che si tratti di una espressione di arietà 0. Vista l arietà di questo si verifica se e solo se ((x) ((y) P (x)(y))) e ((y) ((x) P (y)(x))) sono entrambe espressioni di arietà 0. Ora affinchè ((x) ((y) P (x)(y))) sia una espressione di arietà 0 bisogna che (x) ((y) P (x)(y)) sia una espressione di arietà 0 0 e quindi x deve essere una variabile di arietà 0 e ((y) P (x)(y)) deve essere una espressione di arietà 0; ma allora (y) P (x)(y) deve essere una espressione di arietà 0 0 e quindi y deve essere una variabile di arietà 0 e P (x)(y) deve essere una espressione di arietà 0 e, vista la scelta fatta per le arietà di x e di y, questo accade se e solo se P è una costante di arietà 0 (0 0). Per concludere basta ora verificare che con le scelte fatte per le arietà di P, x e y succeda che anche ((y) ((x) P (y)(x))) sia una espressione di arietà 0, ma questo è immediato. La scrittura che abbiamo studiato denota quindi la formula ( x. y.p (x, y)) ( y. x.p (y, x)) Vediamo ora una struttura ed una interpretazione che la falsifica. Consideriamo un insieme U {0, 1} costituito di due elementi e la relazione R { 0, 1, 1, 1 } ed interpretiamo il segno predicativo nella relazione R. Allora l antecedente della implicazione viene interpretato in vero mentre il conseguente viene interpretato in falso e quindi l implicazione risulta falsificata. 1

Esercizio 1.2 Si supponga che Dimostrare che 1. A 1 B 1,..., A n B n,... C A 1, B 2,..., A 2n+1, B 2(n+1),... C 2. esiste un numero naturale n tale che A 1, B 2,..., A 2n+1, B 2(n+1) C Soluzione. Per risolvere la prima parte dell esercizio cominciamo notando che A 1 B 1,..., A n B n,... C vale se e solo se l insieme {A 1 B 1,..., A n B n,..., C} è non soddisfacibile, vale a dire che per ogni interpretazione σ accade che almeno uno delle formule di tale insieme viene interpretata da σ in falso. Ora se si tratta della formula C l insieme {A 1, B 2,..., A 2n+1, B 2(n+1),..., C} è chiaramente non soddisfatto da σ e d altra parte se si tratta di una disgiunzione A 2n+1 B 2n+1 di posto dispari nella lista di formule considerata allora (A 2n+1 B 2n+1 ) σ = e quindi anche (A 2n+1 ) σ = e, analogamente, se si tratta di una disgiunzione A 2(n+1) B 2(n+1) di posto pari nella lista allora (A 2(n+1) B 2(n+1) ) σ = e quindi anche (B 2(n+1) ) σ = e quindi anche in questi due casi l insieme {A 1, B 2,..., A 2n+1, B 2(n+1),..., C} non è soddisfatto da σ. Abbiamo quindi dimostrato che non esiste nessuna interpretazione che soddisfa l insieme {A 1, B 2,..., A 2n+1, B 2(n+1),..., C} e quindi A 1, B 2,..., A 2n+1, B 2(n+1),... C. Per risolvere ora la seconda parte dell esercizio basta ora una semplice applicazione del teorema di compattezza, in quanto, in virtù di tale teorema, dal fatto che l insieme {A 1, B 2,..., A 2n+1, B 2(n+1),..., C} sia non soddisfacibile si ottiene che esiste un numero naturale n tale che l insieme {A 1, B 2,..., A 2n+1, B 2(n+1), C} è non soddisfacibile che porta subito a A 1, B 2,..., A 2n+1, B 2(n+1) C. 2

Esercizio 1.3 Si considerino le seguenti formule 1. y.( x.(r(x, y) P (x)) P (y)) 2. x.(( z.r(z, x)) P (x)) 3. x. z.((r(z, x) w. R(w, z)) Si dimostri dapprima semanticamente che le prime due tra esse non sono sufficienti per dimostrare la formula w.p (w) (sugg.: si trovi un modello per l insieme costituito da tali formule e w. P (w)). Si dimostri poi sintatticamente, utilzzando il metodo di risoluzione o gli alberi di confutazione, che l insieme costituito da tutte e tre le formule è sufficiente per dimostrare w.p (w). Soluzione. Per risolvere la prima parte dell esercizio seguendo il suggerimento dato, basta considerare una struttura costituita da un solo elemento U { } e interpretare il segno predicativo R nella relazione totale R {, } e il segno predicativo P nel sottoinsieme vuoto di U, vale a dire in modo che esso risulti sempre falso. Allora chiaramente w. P (w) viene interpretata in vero; inoltre y.( x.(r(x, y) P (x)) P (y)) viene interpretata in vero visto che, per qualsiasi interpretazione della variabile y, x.(r(x, y) P (x)) viene interpretato in falso, e x.(( z.r(z, x)) P (x)) viene interpretato in vero visto, che per ogni interpretazione della variabile x, z.r(z, x) viene interpretato in falso. Per quanto riguarda invece la seconda parte dell esercizio possiamo utilizzare il metodo di risoluzione per verificare che l insieme costituito dalle formule { y.( x.(r(x, y) P (x)) P (y)), x.(( z.r(z, x)) P (x)), x. z.((r(z, x) w. R(w, z)), w.p (w)} è non soddisfacibile. Dopo l opportuna trasformazione otteniamo il seguente insieme di clasuole in cui come al solito non scriviamo i quantificatori universali e sostituiamo i quantificatori esistenziali con opportune costanti o funzioni di scelta (1) {R(f(y), y) P (y), (2) P (f(y)) P (y), (3) R(h(x), x) P (x), (4) R(z, x) R(w, z) (5) P (a)} Per ottenere la clausola vuota possiamo ora procedere così: (a) R(f(a), a) P (a) istanza della clausola 1 con y := a (b) R(f(a), a) risoluzione con clausola 5 (c) R(h(f(a)), a) risoluzione con clausola 4 con z := f(a), x := a, w := h(f(a)) (d) P (f(a)) risoluzione con clausola 3 con x := f(a) (e) P (a) risoluzione con clausola 2 con y := a (f) risoluzione con clausola 5 3

Esercizio 1.4 Si trovi una funzione recursiva and che quando applicata a due argomenti dia come risultato 0 se e solo se almeno uno dei due argomenti vale 0 e se ne costruisca il nome utilizzando i costrutti Z, S, P, C e R. Si trasformi poi tale nome in un programma PROLOG. Soluzione. Una possibile definizione per la funzione and è la seguente definizione ricorsiva { and(0, y) = 0 = Z 1 (y) and(x + 1, y) = y = P 3 2(x, y, and(x, y)) per cui otteniamo che and R[Z, P 3 2]. Se utilizziamo ora la traduzione automatica otteniamo il seguente programma PROLOG: AND(0, y, z) Z(y, z) AND(s(x), y, z) AND(x, y, w), P 3 2(x, y, w, z) Z(y, 0) P 3 2(x, y, z, y) che si può semplificare in AND(0, y, 0) AND(s(x), y, y) 4

COMPITO di LOGICA PER INFORMATICA (fila 2) 21 settembre 2005 Nome: Matricola: Esercizio 2.1 Si consideri la seguente scrittura ( ((x) P (f(x))))( ((x) P (x))) Supponendo fissate le arietà per : 0 (0 0) e : (0 0) 0, determinare le arietà della variabile x e delle costanti f e P in modo che ne risulti una espressione corretta che denoti una formula nel linguaggio del primo ordine. Si determini poi una interpretazione che falsifichi la formula così ottenuta. Soluzione. Affinchè la scrittura considerata risulti una formula è necessario che si tratti di una espressione di arietà 0. Vista l arietà di questo si verifica se e solo se ((x) P (f(x))) e ((x) P (x)) sono entrambe espressioni di arietà 0. Ora affinchè ((x) P (f(x))) sia una espressione di arietà 0 bisogna che (x) P (f(x)) sia una espressione di arietà 0 0 e quindi x deve essere una variabile di arietà 0 e P (f(x)) deve essere una espressione di arietà 0; ma allora, vista la scelta fatta per le arietà di x, affinchè questo accada bisogna che f sia una costante di arietà 0 α e P sia una costante di arietà α 0 per qualche arietà α. Per concludere basta ora verificare che esista una qualche arietà α che fa si che anche ((x) P (x)) sia una espressione di arietà 0. Affinchè questo accada bisogna che (x) P (x) sia una espressione di arietà 0 0 e quindi, avendo noi già determinato l arietà di x bisogna semplicemente che richiediamo che α sia 0. La scrittura che abbiamo studiato denota quindi la formula ( x.p (f(x)) ( x.p (x)) Vediamo ora una struttura ed una interpretazione che la falsifica. Consideriamo un insieme U {0, 1} costituito di due elementi, la funzione F { 0, 1, 1, 1 } in cui interpretiamo il segno funzionale f e il sottoinsieme R {1} di U in cui interpretiamo il segno di predicato P. Allora l antecedente della implicazione viene interpretato in vero, visto che la funzione F manda ogni elemento in 1 e su tale valore il predicato P viene interpretato in vero, mentre il conseguente viene interpretato in falso, visto che l interpretazione di P non vale su 0, e quindi l implicazione risulta falsificata. 5

Esercizio 2.2 Si supponga che Dimostrare che 1. A 1 B 1,..., A n B n,... C B 1, A 2,..., B 2n+1, A 2(n+1),... C 2. esiste un numero naturale n tale che B 1, A 2,..., B 2n+1, A 2(n+1) C Soluzione. Per risolvere la prima parte dell esercizio cominciamo notando che A 1 B 1,..., A n B n,... C vale se e solo se l insieme {A 1 B 1,..., A n B n,..., C} è non soddisfacibile, vale a dire che per ogni interpretazione σ accade che almeno uno delle formule di tale insieme viene interpretata da σ in falso. Ora se si tratta della formula C l insieme {B 1, A 2,..., B 2n+1, A 2(n+1),..., C} è chiaramente non soddisfatto da σ e d altra parte se si tratta di una disgiunzione A 2n+1 B 2n+1 di posto dispari nella lista di formule considerata allora (A 2n+1 B 2n+1 ) σ = e quindi anche (B 2n+1 ) σ = e, analogamente, se si tratta di una disgiunzione A 2(n+1) B 2(n+1) di posto pari nella lista allora (A 2(n+1) B 2(n+1) ) σ = e quindi anche (A 2(n+1) ) σ = e quindi anche in questi due casi l insieme {B 1, A 2,..., B 2n+1, A 2(n+1),..., C} non è soddisfatto da σ. Abbiamo quindi dimostrato che non esiste nessuna interpretazione che soddisfa l insieme {B 1, A 2,..., B 2n+1, A 2(n+1),..., C} e quindi B 1, A 2,..., B 2n+1, A 2(n+1),... C. Per risolvere ora la seconda parte dell esercizio basta ora una semplice applicazione del teorema di compattezza, in quanto, in virtù di tale teorema, dal fatto che l insieme {B 1, A 2,..., B 2n+1, A 2(n+1),..., C} sia non soddisfacibile si ottiene che esiste un numero naturale n tale che l insieme {B 1, A 2,..., B 2n+1, A 2(n+1), C} è non soddisfacibile che porta subito a B 1, A 2,..., B 2n+1, A 2(n+1) C. 6

Esercizio 2.3 Si considerino le seguenti formule 1. y.(q(y) z.r(z, y)) 2. x.(q(x) z.(r(z, x) & Q(z))) 3. x. z.((r(z, x) w. R(w, z)) Si dimostri dapprima semanticamente che le prime due tra esse non sono sufficienti per dimostrare la formula w.q(w) (sugg.: si trovi un modello per l insieme costituito da tali formule e w.q(w)). Si dimostri poi sintatticamente, utilzzando il metodo di risoluzione o gli alberi di confutazione, che l insieme costituito da tutte e tre le formule è sufficiente per dimostrare w.q(w). Soluzione. Per risolvere la prima parte dell esercizio seguendo il suggerimento dato, basta considerare una struttura costituita da un solo elemento U { } e interpretare il segno predicativo R nella relazione totale R {, } e il segno predicativo Q nell intero set U, vale a dire in modo che esso risulti sempre vero. Allora chiaramente w.q(w) viene interpretata in vero; inoltre y.(q(y) z.r(z, y)) viene interpretata in vero visto che, per qualsiasi interpretazione della variabile y, z.r(z, y) viene interpretato in vero, e x.(q(x) z.(r(z, x) & Q(z))) viene interpretato in vero visto, che per ogni interpretazione della variabile x, z.(r(z, x) & Q(z)) viene interpretato in vero. Per quanto riguarda invece la seconda parte dell esercizio possiamo utilizzare il metodo di risoluzione per verificare che l insieme costituito dalle formule { y.(q(y) z.r(z, y)), x.(q(x) z.(r(z, x) & Q(z))), x. z.((r(z, x) w. R(w, z)), w.q(w)} è non soddisfacibile. Dopo l opportuna trasformazione otteniamo il seguente insieme di clasuole in cui come al solito non scriviamo i quantificatori universali e sostituiamo i quantificatori esistenziali con opportune costanti o funzioni di scelta (1) { Q(y) R(h(y), y), (2) Q(x) R(f(x), x), (3) Q(x) Q(f(x)), (4) R(z, x) R(w, z) (5) Q(a)} Per ottenere la clausola vuota possiamo ora procedere così: (a) Q(a) R(f(a), a) istanza della clausola 2 con x := a (b) R(f(a), a) risoluzione con clausola 5 (c) R(h(f(a)), f(a)) risoluzione con clausola 4 con z := f(a), x := a, w := h(f(a)) (d) Q(f(a)) risoluzione con clausola 1 con y := f(a) (e) Q(a) risoluzione con clausola 3 con x := a (f) risoluzione con clausola 5 7

Esercizio 2.4 Si trovi una funzione recursiva or che quando applicata a due argomenti dia come risultato 0 se e solo se entrambi i due argomenti valgono 0 e se ne costruisca il nome utilizzando i costrutti Z, S, P, C e R. Si trasformi poi tale nome in un programma PROLOG. Soluzione. Una possibile definizione per la funzione or è la seguente definizione ricorsiva { or(0, y) = y = P 1 1 (y) or(x + 1, y) = x + 1 = C[S, P 3 1](x, y, or(x, y)) per cui otteniamo che or R[P 1 1, C[S, P 3 1]]. Se utilizziamo ora la traduzione automatica otteniamo il seguente programma PROLOG: OR(0, y, z) P 1 1(y, z) OR(s(x), y, z) OR(x, y, w), P 3 1(x, y, w, t), S(t, z) S(x, s(x)) P 1 1(y, y) P 3 1(x, y, z, x) che si può semplificare in OR(0, y, y) OR(s(x), y, s(x)) 8