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}sS, {~p}pP), 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, aAtom(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