Definitezza Vogliamo poter richiedere la “definitezza” delle funzioni

Slides:



Advertisements
Presentazioni simili
Calcolo Relazionale.
Advertisements

Appunti di analisi matematica: Integrale Definito
Specifiche Algebriche ESERCIZI Versione 0.0
Conseguenza semantica
Punti Fissi.
2. Introduzione alla probabilità
SPECIFICA INIZIALE DELLE MAPPE FINITE v. 0.0 Gianna Reggio
Sommario Nelle lezioni precedenti abbiamo introdotto tutti gli elementi che formano un particolare tipo di linguaggio logico, denominato linguaggio predicativo.
Specifiche Algebriche
Algebra parziale con predicati
SPECIFICA LOOSE DELLE MAPPE FINITE v. 1.1 Gianna Reggio
Specifiche Algebriche Modello Iniziale Versione 1.0 Gianna Reggio
Intelligenza Artificiale
MATEMATICA PER L’ECONOMIA
Relazione tra due insiemi:
1 2. Introduzione alla probabilità Definizioni preliminari: Prova: è un esperimento il cui esito è aleatorio Spazio degli eventi elementari : è linsieme.
= 2x – 3 x Definizione e caratteristiche
esponente del radicando
(se a = 0 l’equazione bx + c = 0 è di primo grado)
Il ragionamento classico
Introduzione alla Logica Modale.
Semantiche dei linguaggi di programmazione
Iterazione enumerativa (for)
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Elementi di Matematica
Algebra di Boole ed elementi di logica
Processi Aleatori : Introduzione – Parte I
Liceo Scientifico "A.Volta" Reggio Calabria
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Dott.ssa.
LOGICA E MODELLI Logica e modelli nel ragionamento deduttivo A cura di Salvatore MENNITI.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Specifiche Specifiche = descrizione delle caratteristiche di un prodotto Esempio non informatico: la specifica di un detersivo è data da quale quantità.
SPECIFICA DELLE MAPPE FINITE Gianna Reggio
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Semantica di Tarski.
SI DEFINISCE DOMINIO O CAMPO DI ESISTENZA DI UNA FUNZIONE REALE DI VARIABILE REALE, L’INSIEME DEI VALORI ATTRIBUIBILI ALLA VARIABILE INDIPENDENTE X CHE.
Notazioni Asintotiche e Ordini di Grandezza delle funzioni
Corso di Matematica Discreta I Anno
Corso di Matematica Discreta cont. 2
Intelligenza Artificiale
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Conoscenza e ragionamento Logica dei predicati del primo ordine.
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Logica dei predicati del primo ordine.
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Lezione 13 Equazione di Klein-Gordon Equazione di Dirac (prima parte)
Lezione multimediale a cura della prof.ssa Maria Sinagra
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Somma fra frazioni algebriche
Prof. Cerulli – Dott.ssa Gentili
Pippo.
Stabilità per E.D.O. (I): STABILITÀ LINEARIZZATA
Integrale Definito - Calcolo delle Aree
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.
MATEMATIZZAZIONE Con il termine “Matematizzazione” intendiamo quel processo attraverso il quale si tenta di “tradurre” nel formalismo matematico un problema.
Logica F. orilia. Lezz Lunedì 4 Novembre 2013.
La logica Dare un significato preciso alle affermazioni matematiche
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
Semantica dinamica Vogliamo definire una funzione che associ ad ogni termine corretto del mio linguaggio di programmazione un valore. Questa associazione.
Rappresentazione dell'informazione
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Algebra di Boole L’algebra di Boole è un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono assumere.
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
Rappresentazione in virgola mobile (floating-point) Permette di rappresentare numeri con ordini di grandezza molto differenti utilizzando per la rappresentazione.
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
Specifiche Algebriche Specifiche Loose o Property- oriented Versione 1.0 Gianna Reggio
PROBABILITÀ Corsi Abilitanti Speciali Classe 59A III semestre - 2.
7/22/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof. Anna Labella.
LA LOGICA MATEMATICA.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
INSIEMI E LOGICA PARTE QUARTA.
Transcript della presentazione:

Definitezza Vogliamo poter richiedere la “definitezza” delle funzioni introduciamo nuovi atomi Def(t) con t  TS(X) la cui validità vuol dire che t è definito in A rispetto a V, cioè tA,V  sA Oppure per ogni sort s  S introduciamo un predicato standard Defs:s con interpretazione fissa e coincidente con tutto il carrier di s Si ha che t1 =e t2 equivalente a t1 = t2  Def(t1) Def(t) equivalente a t =e t Esercizio 13: Precisare cosa significa l’“equivalente” usato sopra. Provare poi le due affermazioni.

La logica Completiamo la nostra logica con l’uguaglianza esistenziale. Come derivati abbiamo l’uguaglianza forte e atomi per richiedere la definitezza dei termini Esercizio 14: Completare la definizione di LS(X) e per includere le nuove formule e dare la corrispondente validità.

Esempi “nuove” formule su Slist e X = {x: int, l: list} Def(0), Def(empty) top(push(x,l)) = x top(push(x,l)) =e x top(empty) = 0, pop(empty) = empty push(top(l),pop(l)) = l (*) * è valida in L (L |= * ) ? No, poiché V1 t.c. V1(l) = 0 L L |=V1 * V2 t.c. V2(l) = L L |≠V2 * Invece  isEmpty(l)  push(top(l),pop(l)) = l è valida in L Esercizio 15: dettagliare le affermazioni precedenti. Esercizio 16: Esibire delle formula con ugualianza e definitezza valide e non valide in L.

Strettezza Funzioni (e predicati) in quest’approccio sono stretti, cioè restituiscono un valore (sono veri) solo su argomenti definiti Prop. Fissate una segnatura S = (S,F,P), una S-famiglia X di variabili, termini ti  TS(X)si, una S-algebra A e una valutazione V: XA. 1) Per ogni f: s1  …  sn s  F, A|=V Def(f(t1,…,tn)) implica A|=V Def(ti) 2) Per ogni p: s1  … sn  P, A|=V p(t1,…,tn) implica A |=V Def(ti) Prova 1) A|=V Def(f(t1,…,tn)) se e solo se f(t1,…,tn)A,V sA cioè, per definizione di interpretazione, se e solo se t1A,V= a1s1A,…,tnA,V = ansnA e f(t1,…,tn)A,V = f A(a1,…,an)sA, allora tiA,VsiA e quindi A|=V Def(ti). 2) Analogamente (per esercizio) Quindi l’uguaglianza forte (che vale anche quando entrambi i lati non sono definiti) non può essere un predicato, mentre l’uguaglianza esistenziale sì.

Osservazioni La logica parziale del prim’ordine ha lo stesso potere espressivo di quella totale. Nel definire la validità di una formula abbiamo scelto di allontanarci il meno possibile dalla logica classica (totale). Per questo non abbiamo cambiato il dominio di valutazione delle formule, che possono essere solo vere o false: Logica a due valori Quindi abbiamo scelto che un’applicazione di predicato ad un termine indefinito valesse falso. Attenzione: questo non vuol dire che tutte le formule in cui compare un termine indefinito sono false, per esempio A|≠V Def(t) implica A|=V Def(t)

Logiche a tre valori Una scelta più radicale sarebbe stata passare ad una logica a 3 valori, in cui una formula può essere vera, falsa o indefinita. Logiche a 3 valori permettono di discriminare situazioni che le logiche a 2 valori inevitabilmente identificano. Però ai fini delle specifiche del sw funzionale e sequenziale, non sono strettamente necessarie (e quindi non le facciamo)

Specifiche Una specifica Sp è una coppia (S,Ax), dove Ax  LS(X), detti assiomi di Sp. I modelli di Sp (semantica di Sp) sono tutte le S-algebre che soddisfano tutti gli assiomi di Sp, cioè Mod(Sp) = {A | A S-algebra e A|= ax per ogni ax  Ax}

Esempio: specifica di “liste di interi”1 Splist =(Slist,PROPlist) PROPlist Def(0), Def(succ(x)) -- 0, succ totali 0 ≠ succ(x), x ≠ succ(x) t1 ≠ t2 equiv. a  t1 = t2 x = y  succ(x) = succ(y) x ≠ y  succ(x) ≠ succ(y) -- succ iniettiva Def(empty), Def(push(x,l)) -- empty, push totali -- pop e top parziali l ≠ empty  Def(pop(l))  Def(top(l))  Def(pop(empty))   Def(top(empty)) pop(push(x,l)) = l  top(push(x,l)) = x * Proprietà di ogni funzione Ci sono assiomi inutili ?

Esempio: specifica di “liste di interi” 2 Definizione di isEmpty A) isEmpty(empty),  isEmpty(push(x,l)) B) isEmpty(l) <=> l = empty F1 <=> F2 equiv. a F1  F2  F2  F1 C)  isEmpty(l) <=> l ≠ empty Sono equivalenti le tre definizioni ? B e C yes A e B no In una Slist-algebra esistono elementi che non sono rappresentati nè da empty nè da push(x,l) Esercizio 17: dare un ulteriore insieme di assiomi che definisca isEmpty. Esercizio 18: definire il predicato isIn. Esercizio 18bis: definire ulteriori combinatori derivati che si pensa possano essere utili.

Modelli term-generated Fra i modelli di una specifica sono particolarmente interessanti i modelli term-generated (generati dai termini), cioè quei modelli in cui ogni elemento dei carrier è interpretazione di un termine senza variabili. Una S-algebra A è detta term-generated se _A,: TS()A surgettiva GMod(Sp) = { A | A Mod(Sp) e A è term-generated } Ci sono solo gli elementi necessari per interpretare le asserzioni sull segnatura Viceversa, ogni elemento in tali modelli è rappresentabile utilizzando la segnatura Permettono di utilizzare tecniche induttive

Occorre saper Leggere/comprendere una specifica ? Padronanza della semantica Controllare se un’algebra è un modello di una specifica model-checking Ragionare sulle formule Proprietà derivate Se un’algebra soddisfa una formula, allora deve soddisfare anche altre formule Assiomi della logica formule che valgono in ogni algebra Sistemi deduttivi Controllare se una specifica verifica una certa proprietà (tutti i suoi modelli la verificano) Trovare le proprietà di una struttura dati (assiomi di una specifica) ? guidelines

Esercizi solita segnatura Slist Assumendo che I predicati isEmpty ed isIn rappresentino le due ovvie condizioni Dire usando la lingua italiana/inglese che proprietà sulle liste esprimono le seguenti formule isEmpty(l) ˚ isIn(x,l) isEmpty(l) ˚ x:int . isIn(x,l) x:int . (isEmpty(l) ˚ isIn(x,l)) isEmpty(l) ˚ $ x:int . isIn(x,l) Dare una formula che richieda che se un numero diverso da zero appartenesse ad una lista, allora anche 0 apparterebbe alla medesima lista il top di una lista appartenga alla lista stessa Se un numero appartiene ad una lista, allora esiste una lista il cui top è proprio tale numero

Model-checking Data una specifica Sp = (S,Ax), ed una S-algebra A come si fa a verificare se A è un modello di Sp? Basta usare la definizione Si controlla se ogni assioma in Ax è valido in A Controllando se è valido per ogni valutazione delle sue variabili libere

Esempio L |= isIn(x,l)  isIn(x,push(y,l)) solita segnatura Slist ed algebra L L |= isIn(x,l)  isIn(x,push(y,l)) Le variabili libere sono FV ={ x,y:int, l:list } Si fissa una valutazione V per FV in A Siano V(x), V(y)  N e V(l)  N* Si applica la definizione di validità e di interpretazione un passo alla volta L |=V isIn(x,l)  isIn(x,push(y,l)) sse L |≠V isIn(x,l) o L |=V isIn(x,push(y,l)) L |≠V isIn(x,l) sse (xL,V,lL,V)  isInL sse ….. Esercizio 19: completare la verifica della validità della formula. Esercizio 20: L |= isIn(y,l)  isIn(y,push(x,l)) Esercizio 21: L |= isIn(x,l)  isIn(x,push(x,l))