Specifiche Algebriche Modello Iniziale Versione 1.0 Gianna Reggio
Versione 1.0 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 sulluso 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 |= implica A |= per ogni A Mod(SP) e per ogni formula
Versione 1.0 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) sicuramente una delle due premesse è vera –Quindi in tutti i modelli sarebbero definiti esattamente gli stessi termini. –Se ripetiamo il ragionamento per luguaglianza 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.0 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 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 unalgebra.
Versione 1.0 Modello Iniziale Unalgebra I è iniziale per una specifica Sp se e solo se –I è un modello di Sp –I è term-generated I GMod(Sp) } –I soddisfa la proprietà del minimo vero e della minima definitezza, cioè I |= implica A |= per ogni A Mod(Sp) ed ogni PAtom( ) dove PAtom( ) = { t = e t | t,t T } { p(t 1,…,t n ) | t i T } Ma un tale I esiste sempre? In generale no. Vedremo dei casi particolari in cui esiste e si può calcolare
Versione 1.0 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 –tipo M = { a, b} –A M = a, B M = 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 –tipo M = { a, b, c } –A M = a, B M = b, C M = c N definito da –tipo N = { a } –A N = B N = C N = a P definito da –tipo P = { a, b } –A P = a, B P = C P = b M è il modello iniziale
Versione 1.0 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 –tipo M = { a, b } –A M = a, B M = b N definito da –tipo N = { a } –A N = a, B N indefinito P definito da –tipo P = { a } –A P indefinito, B P = a Non esiste il modello iniziale, poichè A non è definito o indefinito in tutti i modelli 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 –tipo N = { a } –A M = B M = C M = a P definito da –tipo P = { a, b } –A M = a, B M = C M = b M definito da –tipo M = { a, b } –A M = B M = a, C M = b Non esiste il modello iniziale, poichè A = B [AB] non vale in tutti i modelli
Versione 1.0 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 dequivalenza, ed inoltre occorre definire la verità dei predicati. Sia = (S,F,P) una segnatura ~ = ({~ s } s S, {~ p } p P ), dove per ogni s ~ s T (X) s T (X) s e per ogni p ~ p T (X) s, è una congruenza sulla famiglia T (X) se –per ogni s S, ~ s è simmetrica e transitiva (ma non necessariamente riflessiva) –per ogni f F, t i ~ s i t i per i =1,…,n e f(t 1,…,t n ) ~ s f(t 1,…,t n ) implica f(t 1,…,t n ) ~ s f(t 1,…,t n ) –per ogni p P, t i ~ s i t i per i =1,…,n e (t 1,…,t n ) ~ p implica (t 1,…,t n ) ~ p Questa definizione è un caso particolare di congruenza su unalgebra A
Versione 1.0 Quozienti Data una congruenza su (X) si definisce lalgebra (X) /~ come segue [ (X) /~ indicata da Q in questa slide] –per ogni s S, s Q = { [t] T (X) s /~ s | t ~ s t } –per ogni f F, f Q ([t 1 ],…,[t n ]) = [f(t 1,…,t n )] se f(t 1,…,t n )~ s f(t 1,…,t n ), indefinita altrimenti –per ogni p P, p Q = { ([t 1 ],…,[t n ]) | ( t 1,…,t n ) ~ 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 f Q e p Q. Esercizio 40: Provare dettagliatamente che Q è ben definita.
Versione 1.0 Costruzione del modello iniziale (1) Data una specifica Sp = (,Ax) si definisce ~ Sp come segue [ ~ Sp indicata da in questa slide] =( { s T s T s | s S }, { p T s1 … T sn | p P }) –t t se e solo se per ogni A Mod(Sp) A|= t = e t –(t 1,…,t n ) p se e solo se per ogni A Mod(Sp) A|= p(t 1,…,t n ) ~ Sp è una congruenza Esercizio 41: Verificarlo [consiglio: usare il sistema deduttivo].
Versione 1.0 Costruzione del modello iniziale (2) Prop. Sia I(Sp) = T /~ 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 se e solo se I(Sp) |= V [t x /x | x X] dove t x V(x) Esercizio 42: Completare la prova con tutti i dettagli.
Versione 1.0 Lalgebra I(Sp) può non essere un modello Spec SP3 = Sort tipo Opns A, B : tipo Axioms A B I(SP3) definito da –tipo I(SP3) = –A I(SP3) indefinito –B I(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 –tipo I(SP4) = { a, b,c } –A I(SP4) = a –B I(SP4) = b –C I(SP4) = c Non è un modello, infatti I(SP4) | A B B = C
Versione 1.0 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 SP6 = Sort tipo Opns A, B, C : tipo Axioms Def(A) A = B Spec SP7 = Sort tipo Opns A, B, C : tipo Preds p: Tipo Axioms p(x) Spec SP8 = Sort tipo Opns A, B, C : tipo Preds p, q: Tipo Axioms p(x) q(x)
Versione 1.0 Esistenza modello iniziale Teorema : Se Sp = (,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( ), dove PCond( ) = { i=1,…,n i n+1 | i PAtom( ), i =1,…,n+1} 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.0 Sistema di Birkhoff Il sistema di Birkhoff è un sistema deduttivo per la logica equazionale, omogenea e totale. Sia Sp = (,Ax) F ___ F Ax Assiomi propri Riflesività t = t ____ Simmetria t 1 = t 2 _____ t 2 = t 1 Transitività t 1 = t 3 __________ t 1 = t 2 t 2 = t 3 Congruenza f(t 1, …, t n ) = f(t 1 … t n ____________________ t 1 = t 1 … t n = t n p(t 1, …, t n ______________________ p(t 1, …, t n ) t 1 = t 1 … t n = t n Istanziazione F _______ F sostituzione, F L (X)
Versione 1.0 Sistema di Birkhoff generalizzato (1) Vogliamo estendere Birkhoff al caso parziale, eterogeneo e condizionale parziale e eterogeneo già visto per il primordine Condizionale = vogliamo che gli assiomi propri ed eventualmente I passi intermedi della computazione siano positivi condizionali Aggiungiamo le seguenti regole
Versione 1.0 Sistema di Birkhoff generalizzato (2) Modus Ponens Uguaglianza esistenziale (no riflessività) Simmetria t 1 = e t 2 _____ t 2 = e t 1 Transitività t 1 = e t 3 ____________ t 1 = e t 2 t 2 = e t 3 Relazioni tra uguaglianza forte ed esistenziale t = t _____ t = e t ________ t = e t t = t t = e t ________ t = e t t = t Strettezza t 1 = e t 1 … t n = e t n _________________ f(t 1, …, t n ) = e f(t 1, …, t n t 1 = e t 1 … t n = e t n ______________ p(t 1, …, t n ) Istanziazione F[t/x] _______ F t = e t Definitezza delle variabili x = e x _______ 1 … i-1 i+1 … n _________________________ 1 … n i
Versione 1.0 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 = Sort tipo Opns A,B: tipo Questinstanziazione della regola della transitività non è sound Infatti le premessse valgono in tutte le -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 nellalgebra vuota (poichè non ci sono valutazioni delle variabili) Le soluzioni possibili a questo problema sono: –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 tranne che con listanziazione A = e B _________ A = e x x = e B noi
Versione 1.0 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 x 1 = e x 1 … x n = e x n con un atomo positivo. Per ottenere un sistema completa rispetto a formule del tipo x 1 = e x 1 … x n = e x n c on 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.