Specifiche Algebriche Specifiche Loose o Property- oriented Versione 1.0 Gianna Reggio

Slides:



Advertisements
Presentazioni simili
Algebra Relazionale 3 Università degli Studi del Sannio
Advertisements

Definitezza Vogliamo poter richiedere la “definitezza” delle funzioni
Specifiche Algebriche ESERCIZI Versione 0.0
Sistemi dinamici discreti e computabilità intrinseca
Conseguenza semantica
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.
Linguaggi di programmazione
Matematica I: Calcolo differenziale, Algebra lineare, Probabilità e statistica Giovanni Naldi, Lorenzo Pareschi, Giacomo Aletti Copyright © The.
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
Precorsi di Informatica Dott. Antonio Cisternino Settembre 2003
Lez. 121 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Progettazione.
Il ragionamento classico
Introduzione alla Logica Modale.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Iterazione enumerativa (for)
Maria Teresa PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Elementi di Matematica
EQUAZIONI DI PRIMO GRADO
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
-calcolo Vogliamo studiare le problematiche relative al meccanismo di chiamata di funzione (eg differenze fra binding statico e dinamico) in isolamento.
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
1 Esempio : Utile per considerare limportanza delle ALTE FREQUENZE nella ricostruzione del segnale, in particolare dei FRONTI di SALITA e di DISCESA (trailing.
Semantica di Tarski.
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.
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
PROBLEMI RISOLUBILI E COMPUTABILITÀ
LINGUAGGI DI PROGRAMMAZIONE
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Logica Matematica Seconda lezione.
Pierdaniele Giaretta Primi elementi di logica
ESTENSIONI SEMPLICI e TEOREMA DELL’ELEMENTO PRIMITIVO
Corso di logica matematica
MATEMATIZZAZIONE Con il termine “Matematizzazione” intendiamo quel processo attraverso il quale si tenta di “tradurre” nel formalismo matematico un problema.
Algebra di Boole.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
EQUAZIONI di primo grado numeriche intere con una incognita.
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
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
Specifiche Algebriche Introduzione Versione 1.0 Gianna Reggio
Rappresentazione in virgola mobile (floating-point) Permette di rappresentare numeri con ordini di grandezza molto differenti utilizzando per la rappresentazione.
Corso di Matematica Discreta 4
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.
Automi temporizzati.
6. LIMITI Definizione - Funzioni continue - Calcolo dei limiti
Forma normale delle equazioni di 2° grado Definizione. Un'equazione di secondo grado è in forma normale se si presenta nella forma Dove sono numeri.
LA LOGICA MATEMATICA.
Analisi matematica Introduzione ai limiti
Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini III. La logica delle proposizioni.
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
INTRODUZIONE Il progetto è rivolto ad alunni che frequentano il biennio del Liceo Scientifico, gli argomenti affrontati sono di notevole importanza per.
Raccogliamo x al primo membro e 2 al secondo:
Integrali indefiniti.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
INSIEMI E LOGICA PARTE QUARTA.
Transcript della presentazione:

Specifiche Algebriche Specifiche Loose o Property- oriented Versione 1.0 Gianna Reggio

Versione 1.0 Indice Logica del prim’ordine, many-sorted, parziale con uguaglianza –Segnatura many-sorted del prim’ordine –Algebra many-sorted parziali del prim’ordine –Formule –Interpretazione e validità –Sistema deduttivo sound e completo Specifiche loose o property-oriented

Versione 1.0 Segnatura many-sorted del prim’ordine Una segnatura  = (S,F,P) consiste di –un insieme S di nomi dei tipi, o sort –una famiglia F di simboli di funzioni, indiciata su S*  S se f  F s 1 …s n,s indicheremo f: s 1  …  s n  s –una famiglia P di simboli di predicati, indiciata su S* se p  P s 1 …s n indicheremo p: s 1  …  s n

Versione 1.0 Esempio:  list segnatura per le liste di interi S = { int, list } F consiste di –0:  int [zerario, costante] –S: int  int –empty:  list –push: int  list  list –pop: list  list –top: list  int P consiste di –isempty: list –isIn: int  list Esercizio 1: definire  lista aggiungendo a  list la concatenazione di liste e l’operazione che ritorna l’insieme degli elementi di una lista

Versione 1.0 Algebra parziale con predicati Data una segnatura  = (S,F,P) una  - algebra A (parziale con predicati) consiste di –un insieme s A per ogni s  S, detto carrier o supporto di tipo s in A –una funzione parziale f A : s 1 A  …  s n A  s A per ogni f: s 1  …  s n  s  F, detta interpretazione di f in A –un insieme p A  s 1 A  …  s n A per ogni p: s 1  …  s n  P, detto insieme di verità, o interpretazione di p in A Se tutte le funzioni di un’algebra sono totali, l’algebra si dice totale

Versione 1.0 Esempio: L Algebra sulla segnatura  list : –carriers int L = N list L = N* –interpretazione funzioni 0 L = 0 S L (x) = x+1 empty L =  push L (n,l) = n l pop L (n l) = l e pop L (  ) indefinito top L (n l) = n e top L (  ) indefinito –interpretazione predicati isempty L ={  } isIn L ={ (n,x) |  i  [1,|x|]. x(i)=n }

Versione 1.0 Esercizi Esercizio 2: estendere L per ottenere una  lista -algebra (vedere Esercizio 1). Esercizio 3: definire una  list- algebra L2 dove il carrier di int è Z e l’interpretazione di pop è un’operazione totale.

Versione 1.0 Termini su una segnatura Data una segnatura  = (S,F,P) ed una famiglia X indiciata su S di insiemi di variabili –i  -termini sono definiti come per la segnatura (S,F) –precisamente, la famiglia di tali termini, indiciata su S, si indica T  (X), è definita come segue X s  T  (X) s per ogni s  S f(t 1,…,t n )  T  (X) s per ogni f: s 1  …  s n  s  F, t 1  T  (X) s 1,…, t n  T  (X) s n Esercizio 4: dare alcuni esempi di termini corretti su  list e di alcune stringhe che non corrispondono ad alcun termine, precisando le variabili usate.

Versione 1.0 Formule Le formule logiche, L  (X), sono definite come nel caso della logica del prim’ordine sui simboli funzionali F e predicativi P, ovvero per induzione come segue: –p(t 1,…,t n )  L  (X), per ogni p: s 1  …  s n  P, e termini t i  T  (X) s i [formule atomiche] –se  e   L  (X), x  X s, allora ,   ,   ,   ,  x:s.  e  x:s.   L  (X)

Versione 1.0 Esempi di formule su  list isEmpty(pop(push(n,empty)))  x: list. isEmpty(x)  isIn(top(x),x)  isEmpty(l)   isEmpty(pop(l)) Esercizio 5: dare esempi di formule sulla segnatura  lista precisando le variabili usate (vedere Esercizio 1).

Versione 1.0 Interpretazione e validità La validità delle formule logiche in un’algebra parziale con predicati A è definita come nel caso della logica classica, per induzione sulla forma delle formule, basandosi sul concetto di interpretazione t A,V di un termine t in un’algebra A rispetto ad una valutazione V (almeno) delle variabili che vi compaiono in A

Versione 1.0 Interpretazione “nel mondo parziale” Una valutazione V: X  A è una famiglia di funzioni totali V s : X s  s A Data una valutazione V: X  A, l’ interpretazione dei termini, indicata _ A,V : T  (X)  A, è una famiglia di funzioni parziali _ A,V : T  (X) s  s A definita per induzione sui termini come segue –x A,V = V s (x) se x  X s –se t 1 A,V = a 1  s 1 A, …, t n A,V = a n  s n A, f A (a 1,…,a n ) = a  s A, allora f(t 1,…,t n ) A,V = a affinché un termine sia definito e i rispettivi valori devono appartenere al dominio di f devono essere definiti, con tutti i loro sottotermini sono sempre definiti

Versione 1.0 Esempio (solita segnatura  list ed algebra L, V valutazione qualsiasi) –(pop(push(n,empty))) L,V = –pop L ((push(n,empty)) L,V ) = –pop L (push L (n L,V,empty L,V )) = –pop L (push L (V(n),empty L )) = –pop L (push L (V(n),  )) = pop L (V(n)  ) =  Esercizio 6: interpretare i termini introdotti dalle precedenti parti esempio ed esercizi, utulizzando almeno due differenti valutazioni. Esercizio 7: Dare esempi di termini la cui interpretazione risulti indefinita per una data valutazione.

Versione 1.0 Validità 1 Sia V: X  A una valutazione ed F  una formula in L  (X) F vale (o è valida) in A [A soddisfa F] rispetto a V, indicato A | = V F se e solo se: – F è p(t 1,…,t n ) e (t 1 A,V,…,t n A,V )  p A – F è  G e A | ≠ V G – F è G  H e sia A | = V G che A | = V H – F è G  H e A | = V G oppure A | = V H – F è G  H e A | = V H oppure A | ≠ V G – F è  x:s. G ed esiste V’: X  A t.c. V’(y) = V(y) se y≠x, t.c. A | = V’ G – F è  x:s. G e per ogni V’: X  A t.c. V’(y) = V(y) se y≠x, A | = V’ G

Versione 1.0 Esempio (solita segnatura  list ed algebra L, valutazione V qualsiasi) –L | = V isEmpty(pop(push(n,empty))) ?? –pop(push(n,empty)) L,V =  –isempty L = {  } –pertanto isEmpty(pop(push(n,empty))) vale in L rispetto a V ed ad ogni altra valutazione Esercizio 8: Dire se le altre formule usate negli esempi precedenti sono valide in L per una qualche valutazione. Esercizio 9: Dare esempi di formule che siano valide in L per una qualche valutazione e non valide per qualche altra valutazione.

Versione 1.0 Validità 2 x  X occorre libera in t  T  (X ) se e solo se – t è x – t è f(t 1,…,t n ) e x occorre libera in t i con 1 ≤ i ≤ n x  X occorre libera in   L  (X ) se e solo se – F è p(t 1,…,t n ) e x occorre libera in t i con 1 ≤ i ≤ n – F è  G e x occorre libera in G – F è G  H e x occorre libera in G o in H – F è G  H e x occorre libera in G o in H – F è v  H e x occorre libera in G o in H – F è  y:s. G ed y ≠x e x occorre libera in G – F è  y:s. G ed y ≠x e x occorre libera in G

Versione 1.0 Validità 3 Una formula F è valida in un’algebra A, indicato A|= F –se e solo se A|= V F per ogni valutazione delle variabili libere di F in A, –cioè se e solo se A|= V {  x:s | x  X s X occorre libera in z }. F (chiusura universale di F)

Versione 1.0 Esempio (solita segnatura  list ed algebra L) –L | = isEmpty(pop(push(0,l))) ?? –l occore libera nella formula (ed è l’unica) –V1(l) =  L | = V1 isEmpty(pop(push(0,l))) (*) –V2(l) = 0  L | ≠ V2 isEmpty(pop(push(0,l))) (**) –pertanto L | ≠ isEmpty(pop(push(0,l))) Esercizio 10: Dimostrare con tutti i dettagli (*) e (**). Esercizio 11: Esibire una formula valida in L. Esercizio 12: Che cosa manca, secondo voi, alla logica introdotta fino ad ora per esprimere tutte le ragionevoli proprietà dele strutture dati ?

Versione 1.0 Uguaglianza Vogliamo aggiungere il simbolo di uguaglianza alla nostra logica. Per poter esprimere formule di qualsiasi tipo con uguaglianze, basta aggiungere l’uguaglianza come formula atomica e darne l’interpretazione semantica in una generica algebra rispetto ad una valutazione delle formule. Poi essendo sia le formule che la loro validità definita per induzione, si propagheranno senza problemi. Nel caso totale due termini sono uguali se denotano (sono rappresentazioni sintattiche di) lo stesso valore, ovvero se la loro valutazione porta allo stesso risultato.

Versione 1.0 Uguaglianza nel mondo parziale Nel caso parziale, le due frasi non sono più equivalenti perché c’è il caso in cui le due valutazioni portano allo stesso risultato: indefinito. Quindi nel caso parziale ci sono naturalmente due nozioni di uguaglianza t = t’ (uguaglianza forte) A | = V t=t’ se e solo se t A,V =  t’ A,V (cioè entrambi indefiniti, oppure entrambi definiti e rappresentanti lo stesso valore) t = e t’ (uguaglianza esistenziale) A | = V t = e t’ se e solo se esiste a  s A t.c. t A,V = a = t’ A,V

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

Versione 1.0 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 L  (X) e per includere le nuove formule e dare la corrispondente validità.

Versione 1.0 Esempi “nuove” formule su  list 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é data V 1 t.c. V 1 (l) = 0  L |= V 1 * data V 2 t.c. V 2 (l) =  L |≠ V 2 * –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.

Versione 1.0 Strettezza Funzioni (e predicati) in quest’approccio sono stretti, cioè restituiscono un valore (sono veri) solo su argomenti definiti Prop. Fissate una segnatura  = (S,F,P), una S-famiglia X di variabili, dei termini t i  T  (X) s i, una  -algebra A ed una valutazione V: X  A. 1) Per ogni f: s 1  …  s n  s  F, A | = V Def(f(t 1,…,t n )) implica A | = V Def(t i ) 2) Per ogni p: s 1  …  s n  P, A | = V p(t 1,…,t n ) implica A | = V Def(t i ) Prova 1) A | = V Def(f(t 1,…,t n )) se e solo se f(t 1,…,t n ) A,V  s A cioè, per definizione di interpretazione, se e solo se t 1 A,V = a 1  s 1 A,…,t n A,V = a n  s n A e f(t 1,…,t n ) A,V = f A (a 1,…,a n )  s A, allora t i A,V  s i A e quindi A | = V Def(t i ). 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ì.

Versione 1.0 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)

Versione 1.0 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)

Versione 1.0 Specifiche Una specifica Sp è una coppia ( ,Ax), dove Ax  L  (X) –gli elementi di Ax sono detti assiomi di Sp I modelli di Sp (semantica di Sp) sono tutte le  - algebre che soddisfano tutti gli assiomi di Sp, cioè Mod(Sp) = {A | A  -algebra e A | = ax per ogni ax  Ax} Questo approccio è detto –LOOSE nessuna restrizione/costrizione sui modelli della specifica (si prendono tutti) –o PROPERTY-ORIENTED specificare = dare tutte e sole le proprietà

Versione 1.0 Esempio: specifica di “liste di interi”1 Sp list =(  list,PROP list )  list PROP list –Def(0), Def(succ(x)) -- 0, succ totali –0 ≠ succ(x), x ≠ succ(x) t1 ≠ t2 equiv. a  t1 = t2 Ci sono assiomi inutili ? * * è una proprietà di ogni funzione –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

Versione 1.0 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 Esercizio 17: dare un ulteriore insieme di assiomi/ proprietà che riguardino isEmpty. Esercizio 18: dare tutte le proprietà del predicato isIn. Esercizio 18bis: definire ulteriori combinatori logici derivati che si pensa possano essere utili. C)  isEmpty(l)  l ≠ empty Sono equivalenti le tre definizioni ? –B e C yes –A e B no In una  list -algebra esistono elementi che non sono rappresentati nè da empty nè da push(x,l)

Versione 1.0 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  -algebra A è detta term-generated se _ A,  : T  (  )  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

Versione 1.0 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) Sistemi deduttivi Trovare le proprietà di una struttura dati (assiomi di una specifica) ? guidelines

Versione 1.0 Esercizi Si consideri la solita segnatura  list Assumendo che i predicati isEmpty ed isIn rappresentino le due ovvie condizioni sulle liste –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

Versione 1.0 Model-checking Data una specifica Sp = ( ,Ax), ed una  - 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

Versione 1.0 Esempio solita segnatura  list 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 (x L,V,l L,V )  isIn L 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))

Versione 1.0 Conseguenza semantica Quando dalla soddisfazione di un insieme di formule consegue la soddisfazione di un’altra formula Siano   L  (X) e F   L  (X), –   = F  (F  segue da   ) ses per ogni  -algebra A e per ogni valutazione v di X in A ( A  = V G  per ogni  G    ) implica A  = V F Esercizio 23: Dire se è equivalente definire la conseguenza semantica come “   = F  ses(per ogni  -algebra A A  =  per ogni    ) implica (per ogni  -algebra A A  =  )”

Versione 1.0 Sistemi deduttivi Un sistema deduttivo è una relazione fra insiemi di formule  (gli assiomi assunti veri) e formule  (le formule dedotte a partire dagli assiomi) indicato    F Un sistema deduttivo per la nostra logica è sound (corretto) se    F implica  | = F. Un sistema deduttivo è completo rispetto ad una classe di formule  se  | = F implica    F per ogni F  Perché abbia un’utilità pratica un sistema deduttivo deve essere: Sound (non vogliamo dedurre falsità) Completo rispetto ad una classe ragionevolmente ampia di formule Descritto in modo effettivo, cioè in modo da poter essere usato come mezzo di calcolo *Di solito un sistema deduttivo si presenta mediante un insieme di regole di inferenza

Versione 1.0 Un sistema deduttivo per la nostra logica stile deduzione naturale non considera i combinatori derivati Esercizio 23 bis: trovare un insieme di combinatori minimali per la nostra logica. sound e completo, se consideriamo algebre con carriers non vuoti preliminari –sostizuzione (di variabili con termini)  : X  T  (Y) –applicare una sostituzione t  T  (X), t[  ]  T  (Y) F  L  (X), F[  ]  L  (Y) potrebbe essere indefinito, nei casi in cui una variabile libera diventi legata ( ,  ) Esercizio 24: definire t[  ] e  [  ] indicando quando quest’ultima non è definita.

Versione 1.0 Il sistema   (1)    F _______ F         F  G _____________      F      G    F _______    F  G    G _______    F  G        G _____________________________    F    G    F  false    G Assumption  -introduction  -left elimination  -right elimination Tertium non datur false formula atomica sempre falsa

Versione 1.0 Il sistema   (2)        G 1  …  G i-1  F 1  …  F n  G i+1  …  G k  H ___________________________________________      F 1  …  F n  G i      G 1  …  G k  H Absurdity Cut    F _________    false    F 1  …  F n  G __________________  F 1, …, F n    G  -introduction    F _________    x. F  -elimination  -introduction    x. F _________    F se x non occorre libero in 

Versione 1.0 Il sistema   (3) Reflexivity Congruence    x = e x _________ per x  X    (  x in F x = e  (x))  F[  ] ____________________    F  sostituzione, F[  ] definito Function strictness    Def(t 1 ) ___________    Def(t) t 1 sottotermine di t Predicate strictness    Def(t i ) ______________    p(t 1,…, t n ) 1 ≤ I ≤ n Substitution  [  ]    (  x in F Def(  (x)))  F[  ] ________________________    F  sostituzione, F[  ] e  [  ]  definiti

Versione 1.0 Teorema Assumendo che le algebre considerate abbiano carriers non vuoti dati   L  (X) e F   L  (X),   = F  ses    F può essere provato utilizzando il sistema deduttivo presentato nelle slide precedenti Dimostrazione in M. Cerioli, T. Mossakowski, H, Reichel From total equational to partial first-order logic in Algebraic Foundations of Systems Specification a cura di E.Astesiano, H.-J. Kreowski, B. Krieg-Bruckner IFIP State of the Art Reports,Springer 1999

Versione 1.0 Estensione per uguaglianza forte regole derivate Reflexivity    t = t _________ per t  T  (X) Equality 1    t 1 = t 2 __________    t 1 = e t 2 Equality 2    t 1 = e t 2 ___________________    Def(t 1 )    t 1 = t 2 Equality 3    t 1 = t 2 ________________________________    Def(t 1 )  false    Def(t 2 )  false Congruence    (  x in F x =  (x))  F[  ] ____________________    F  sostituzione, F[  ] definito

Versione 1.0 Notare il sistema è importante per aiutarvi a ragionare sulle formule niente esercizi che richiedino di fare una prova completa esistono tools per aiutare a fare/automatizzare le prove (chiedere se interessati)