Specifiche Algebriche Modello Iniziale Versione 1.1 Gianna Reggio [email protected] Modelli Rappresentativi (1) • Fra tutti i modelli di una specifica ci interessa individuarne uno che rappresenti, per quanto possibile, tutta la classe dei modelli. Visto che siamo focalizzati sull’uso della logica, questo vuol dire un modello che ci dia informazioni sulla validità delle formule anche negli altri modelli. • Se possibile, data una specifica SP ci piacerebbe avere un modello B Mod(SP) (B per Best) tale che # B |= j implica A |= j per ogni A Mod(SP) e per ogni formula j Versione 1.1 Modelli Rappresentativi (2) • Supponiamo che esista un tale modello B. – Allora per ogni termine (senza variabili) t si avrebbe • B|= Def(t) implica A|= Def(t) • B|= Def(t) implica A|= Def(t) • sicuramente una delle due premesse è vera – Quindi in tutti i modelli sarebbero definiti esattamente gli stessi termini. – Se ripetiamo il ragionamento per l’uguaglianza e per le applicazioni di predicato, otteniamo che in tutti i modelli valgono le stesse identità e che i predicati sono interpretati allo stesso modo, cioè che tutti i modelli sono indistinguibili dal punto di vista della logica. • Nomenclatura: una specifica i cui modelli sono tutti isomorfi fra loro si dice monomorfa • Il problema nasce dal fatto che richiedere # per tutte le formule (incluse le negazioni) è troppo forte. Versione 1.1 Modelli Rappresentativi (3) • Il problema che è emerso dal lucido precedente è la negazione. • Escludere le formule che contengono un not non è però sufficiente, perché problematiche analoghe nascono dai not “nascosti”, es. F G F G t = t’ t =e t’ (Def(t) Def(t’)) • Restringiamo drasticamente il tipo di formule ai soli atomi positivi, cioè applicazioni di predicati e uguaglianze esistenziali, che sono sufficienti per caratterizzare un’algebra. Versione 1.1 Modello Iniziale • Un’algebra I è iniziale per una specifica Sp se e solo se – I è un modello di Sp I GMod(Sp) – I è term-generated – I soddisfa la proprietà del minimo vero e della minima definitezza, cioè } I |= a implica A |= a per ogni A Mod(Sp) ed ogni a PAtom(S) dove PAtom(S) = { t =e t’ | t,t’ TS } { p(t1,…,tn) | ti TS } • Ma un tale I esiste sempre? • In generale no. Vedremo dei casi particolari in cui esiste e si può calcolare Versione 1.1 Esempi di esistenza modello iniziale Spec SP1 = Sort tipo Opns A, B: tipo Axioms Def(A) Def(B) A ≠ B • Gmod(SP1) =/iso { M } • M definito da – tipoM = { a, b} – AM = a, BM = b • =/iso significa tutti i modelli sono isomorfi a M, cioè differiscono solo per quali elementi sono usati per rappresentare A e B • M è il modello iniziale Spec SP2 = Sort tipo Opns A, B, C: tipo Axioms Def(A),Def(B),Def(C) A = B B = C • Gmod(SP2) =/iso { M,N,P } • M definito da – tipoM = { a, b, c } – AM = a, BM = b, CM = c • N definito da – tipoN = { a } – AN = BN = CN = a • P definito da – tipoP = { a, b } – AP = a, BP = CP = b • M è il modello inizialeVersione 1.1 Esempi di non esistenza modello iniziale Spec SP3 = Sort tipo Opns A, B: tipo Axioms A ≠ B • Gmod(SP3) =/iso { M, N, P } • • • M definito da – tipoM = { a, b } – AM = a, BM = b N definito da – tipoN = { a } – AN = a, BN indefinito P definito da – tipoP = { a } – AP indefinito, BP = a Spec SP4 = Sort tipo Opns A, B, C: tipo Axioms Def(A), Def(B), Def(C) A ≠ B B = C • Gmod(SP4) =/iso { N,P,M } • N definito da – tipoN = { a } – AM = BM = CM = a • P definito da – tipoP = { a, b } – AM = a, BM = CM = b • M definito da – tipoM = { a, b } – AM = BM = a, CM = b • Non esiste il modello iniziale, poichè A non è definito o indefinito • Non esiste il modello iniziale, poichè A = B [A≠B] non vale in in tutti i modelli Versione 1.1 tutti i modelli Congruenze Visto che vogliamo costruire un modello term-generated cerchiamo di costruire i carrier come quozienti di termini. Siccome poi dobbiamo dotare i carrier di struttura algebrica per fare il quoziente non ci basta una qualsiasi relazione d’equivalenza, ed inoltre occorre “definire” la verità dei predicati. • Sia S = (S,F,P) una segnatura • ~ = ({~s}sS, {~p}pP), dove per ogni s ~s TS(X)s TS(X)s e per ogni p ~p TS(X)s, è una congruenza sulla famiglia TS(X) se – per ogni s S, ~s è simmetrica e transitiva (ma non necessariamente riflessiva) – per ogni f F, ti ~si t’i per i =1,…,n e f(t1,…,tn) ~s f(t1,…,tn) implica f(t1,…,tn) ~s f(t’1,…,t’n) – per ogni p P, ti ~si t’i per i =1,…,n e (t1,…,tn) ~p implica (t’1,…,t’n) ~p Versione • Questa definizione è un caso particolare di congruenza su un’algebra A 1.1 Quozienti • Data una congruenza su TS(X) si definisce l’algebra TS(X)/~ come segue [TS(X)/~ indicata da Q in questa slide] – per ogni s S, sQ = { [t] TS(X)s/~s | t ~s t } – per ogni f F, fQ([t1],…,[tn]) = [f(t1,…,tn)] se f(t1,…,tn)~s f(t1,…,tn), indefinita altrimenti – per ogni p P, pQ= { ([t1],…,[tn]) | (t1,…,tn) ~p } • Q è ben definita? – Sì perché simmetria e transitività permettono di parlare di classi di equivalenza e la proprietà sulle funzioni e sui predicati garantisce la correttezza della definizione di fQ e pQ . • Esercizio 40: definita. Provare dettagliatamente che Q è ben Versione 1.1 Costruzione del modello iniziale (1) • Data una specifica Sp = (S,Ax) si definisce ~Sp come segue [~Sp indicata da in questa slide] =( {s TSs TSs | s S }, { p TSs1 … TSsn | p P }) – t t’ se e solo se per ogni A Mod(Sp) A|= t =e t’ – (t1,…,tn) p se e solo se per ogni A Mod(Sp) A|= p(t1,…,tn) • ~Sp è una congruenza • Esercizio 41: Verificarlo [consiglio: usare il sistema deduttivo]. Versione 1.1 Costruzione del modello iniziale (2) Prop. Sia I(Sp) = TS /~Sp 1) I(Sp) è ben definita 2) Se I(Sp) Mod(Sp) allora è il modello iniziale di Sp Prova 1) è banale 2) si basa sul lemma seguente – Data una valutazione V: X I(Sp), I(Sp) |=V j se e solo se I(Sp) |=V j[tx/x | x X] dove tx V(x) • Esercizio 42: Completare la prova con tutti i dettagli. Versione 1.1 L’algebra I(Sp) può non essere un modello Spec SP3 = Sort tipo Opns A, B : tipo Axioms A ≠ B • I(SP3) definito da – tipoI(SP3) = – AI(SP3) indefinito – BI(SP3) indefinito • Non è un modello, infatti I(SP3) |= A = B Spec SP4 = Sort tipo Opns A, B, C : tipo Axioms Def(A), Def(B), Def(C) A ≠ B B = C • I(SP4) definito da – tipoI(SP4) = { a, b,c } – AI(SP4) = a – BI(SP4) = b – CI(SP4) = c • Non è un modello, infatti I(SP4) |≠ A ≠ B B = C Versione 1.1 Esercizio 43 • Dire se esiste il modello iniziale delle seguenti specifiche. Spec SP5 = Sort tipo Opns A, B : tipo Axioms Def(A) Def(B) Spec SP7 = Sort tipo Opns A, B, C : tipo Preds p: Tipo Axioms p(x) Spec SP6 = Sort tipo Opns A, B, C : tipo Axioms Def(A) A = B Spec SP8 = Sort tipo Opns A, B, C : tipo Preds p, q: Tipo Axioms p(x) q(x) Versione 1.1 Esistenza modello iniziale Teorema: Se Sp = (S,AX) è una specifica positiva condizionale, allora ammette modello iniziale. • Dove una specifica è positiva condizionale se e solo se è logicamente equivalente (cioè hanno gli stessi modelli) ad una i cui assiomi sono tutti positivi condizionali, cioè appartengono a PCond(S), dove PCond(S) = {i=1,…,nai a | ai PAtom(S), i =1,…,n, aAtom(S)} • Le specifiche p.c. sono particolarmente interessanti perché corrispondono metodologicamente a definizioni ricorsive (induttive) e soprattutto perché esiste un sistema automatico per costruire I(Sp) (è semidecidibile se t~Sp t’). Versione 1.1 Sistema di Birkhoff • Il sistema di Birkhoff è un sistema deduttivo per la logica equazionale, omogenea e totale. • Sia Sp = (S,Ax) ___ • Assiomi propri F Ax F • Riflesività ____ t=t • Simmetria t2 = t1 _____ • t1 = t2 t1 = t’1 … tn = t’n ____________________ • Congruenza f(t1, …, tn) = f(t’1, …, t’n) Transitività t1 = t2 t2 = t3 __________ t1 = t3 p(t1, …, tn) t1 = t’1 … tn = t’n ______________________ p(t’1, …, t’n) • Istanziazione F _______ F[q] q sostituzione, F LS(X) Versione 1.1 Sistema di Birkhoff generalizzato (1) • Vogliamo estendere Birkhoff al caso parziale, eterogeneo e condizionale • parziale e eterogeneo già visto per il prim’ordine • Condizionale = vogliamo che gli assiomi propri ed eventualmente I passi intermedi della computazione siano positivi condizionali • Aggiungiamo le seguenti regole Versione 1.1 Sistema di Birkhoff generalizzato (2) • Modus Ponens a1 … an a ai _________________________ a1 … ai-1 ai+1 … an a Uguaglianza esistenziale (no riflessività) • t 2 =e t 1 _____ Simmetria t 1 =e t 2 • Transitività t 1 =e t 2 t 2 =e t 3 ____________ t 1 =e t 3 • Relazioni tra uguaglianza forte ed esistenziale t =e t’ _____ t =e t t = t’ ________ t =e t t = t’ ________ t =e t’ t’ =e t’ f(t1, …, tn) = e f(t1, …, tn) • Strettezza _________________ t 1 =e t 1 … t n =e t n t = t’ • Istanziazione F t =e t _______ F[t/x] p(t1, …, tn) ______________ t 1 =e t 1 … t n = e t n • Definitezza delle variabili _______ x=ex Versione 1.1 Soundness • Ma il sistema di Birkhoff generalizzato è sound e completo rispetto agli atomi positivi ground (=senza variabili)? Se sì lo possiamo usare come “algoritmo” di calcolo per ~Sp. Nella forma data NON è sound. • Controesempio: sia S = Sort tipo Opns A,B: tipo Quest’instanziazione della regola della transitività non è sound A = e x x =e B _________ A =e B Infatti le premessse valgono in tutte le S-algebre in cui o A o B è indefinito, ma la conseguenza non vale certamente in tali algebre Il problema è dovuto al fatto che le premesse sono da intendere x:tipo. A =e x e x:tipo. x =e B, da cui si dovrebbe dedurre correttamente x:tipo. A =e B, che vale anche nell’algebra vuota (poichè non ci sono valutazioni delle variabili) • Le soluzioni possibili a questo problema sono: noi – 1 escludere i modelli con carrier vuoto – 2 quantificare universalmente le variabili in maniera esplicita – 3 modificare le regole in modo da non diminuire mai le variabili Versione 1.1 tranne che con l’istanziazione Completeness • Teorema: Il sistema di Birkhoff generalizzato è completo rispetto agli atomi positivi ground (=senza variabili). • In realtà in una forma lievemente diversa è completo anche per gli assiomi della forma x1 =e x1 … xn =e xn a con a un atomo positivo. • Per ottenere un sistema completa rispetto a formule del tipo x1 =ex1 … xn =exn a c on a un atomo qualunque invece bisogna lavorare un po’. • Sistemi completi per altre classi di formule sono poco studiati nel contesto delle specifiche algebriche perché non hanno applicazioni pratiche. Versione 1.1