Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Algebra parziale con predicati
Data una segnatura S = (S,F,P) una S-algebra A (parziale con predicati) consiste di un insieme sA per ogni s S, detto carrier o supporto di tipo s in A una funzione parziale fA: s1A…snAsA per ogni f: s1…sns F, detta interpretazione di f in A un insieme pA s1A…snA per ogni p: s1…sn 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
2
Esempio: L Algebra sulla segnatura Slist: carriers
intL = N listL = N* interpretazione funzioni 0L = 0 SL(x) = x+1 emptyL = L pushL(n,l) = n l popL(n l) = l e popL(L) indefinito topL(n l) = n e topL(L) indefinito interpretazione predicati isemptyL ={L} isInL ={ (n,x) | i [1,|x|] . x(i)=n }
3
Esercizi Esercizio 2: estendere L per ottenere una Slista-algebra (vedere Esercizio 1). Esercizio 3: definire una Slist- algebra L2 dove il carrier di int è Z e l’interpretazione di pop è un’operazione totale.
4
Termini su una segnatura
Data una segnatura S = (S,F,P) ed una famiglia X indiciata su S di insiemi di variabili i S-termini sono definiti come per la segnatura (S,F) precisamente, la famiglia di tali termini, indiciata su S, si indica TS(X), è definita come segue Xs TS(X)s per ogni s S f(t1,…,tn) TS(X)s per ogni f: s1…sns F, t1 TS(X)s1,…, tn TS(X)sn Esercizio 4: dare alcuni esempi di termini corretti su Slist e di alcune stringhe che non corrispondono ad alcun termine, precisando le variabili usate.
5
Formule Le formule logiche, LS(X), sono definite come nel caso della logica del prim’ordine sui simboli funzionali F e predicativi P, ovvero per induzione come segue: p(t1,…,tn) LS(X), per ogni p: s1…sn P, e termini ti TS(X)si [formule atomiche] se e LS(X), x Xs , allora , , , , x:s. e x:s. LS(X)
6
Esempi di formule su Slist
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 Slista precisando le variabili usate (vedere Esercizio 1).
7
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 tA,V di un termine t in un’algebra A rispetto ad una valutazione V (almeno) delle variabili che vi compaiono in A
8
Interpretazione “nel mondo parziale”
Una valutazione V: XA è una famiglia di funzioni totali Vs: Xs sA Data una valutazione V: XA, l’ interpretazione dei termini, indicata _A,V: TS(X) A, è una famiglia di funzioni parziali _A,V: TS(X)s sA definita per induzione sui termini come segue xA,V = Vs(x) se x Xs se t1A,V= a1 s1A, …, tnA,V = an snA, fA(a1,…,an) = a sA, allora f(t1,…,tn)A,V = a sono sempre definiti e i rispettivi valori devono appartenere al dominio di f devono essere definiti, con tutti i loro sottotermini affinché un termine sia definito
9
Esempio (solita segnatura Slist ed algebra L, V valutazione qualsiasi) (pop(push(n,empty)))L,V = popL((push(n,empty))L,V) = popL(pushL(nL,V,emptyL,V)) = popL(pushL(V(n),emptyL)) = popL(pushL(V(n), L)) = popL(V(n) L) = L 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.
10
Validità 1 Sia V: XA una valutazione ed z una formula in LS(X) z vale (o è valida) in A [A soddisfa z] rispetto a V, indicato A|=V z se e solo se: z è p(t1,…,tn) e (t1A,V,…,tnA,V) pA z è e A|≠V z è e sia A|=V che A|=V z è e A|=V oppure A|=V z è e A|=V oppure A|≠V z è x:s. ed esiste V’: X A t.c. V’(y) = V(y) se y≠x, tale che A|=V’ z è x:s. e per ogni V’: X A t.c. V’(y) = V(y) se y≠x, A|=V’
11
Esempio (solita segnatura Slist ed algebra L, valutazione V qualsiasi) L |=V isEmpty(pop(push(n,empty))) ?? pop(push(n,empty))L,V = L isemptyL = { 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.
12
Validità 2 x X occorre libera in t TS(X) se e solo se t è x
t è f(t1,…,tn) e x occorre libera in ti con 1 ≤ i ≤ n x X occorre libera in z LS(X) se e solo se z è p(t1,…,tn) e x occorre libera in ti con 1 ≤ i ≤ n z è e x occorre libera in z è e x occorre libera in o in z è e x occorre libera in o in z è e x occorre libera in o in z è y:s. ed y ≠x e x occorre libera in z è y:s. ed y ≠x e x occorre libera in
13
Validità 3 Una formula z è valida in un’algebra A, indicato A|= z
se e solo se A|=V z per ogni valutazione delle variabili libere di z in A, cioè se e solo se A|=V { x:s | x Xs X occorre libera in z } . z (chiusura universale di z)
14
Esempio Esercizio 10: Dimostrare con tutti i dettagli (*) e (**).
(solita segnatura Slist ed algebra L) L |= isEmpty(pop(push(0,l))) ?? l occore libera nella formula (ed è l’unica) V1(l) = L L |=V1 isEmpty(pop(push(0,l))) (*) V2(l) = 0 L 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 ?.
15
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.
16
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 tA,V = t’A,V (eventualmente indefiniti entrambi) t =e t’ (uguaglianza esistenziale) A|=V t =e t’ se e solo se esiste a sA t.c. tA,V = a = t’A,V
17
FINE Lezione 2 Martedì 29 Ottobre
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.