La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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.

Presentazioni simili


Presentazione sul tema: "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."— Transcript della presentazione:

1 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 unalgebra sono totali, lalgebra si dice totale

2 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 }

3 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 linterpretazione di pop è unoperazione totale.

4 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.

5 Formule Le formule logiche, L (X), sono definite come nel caso della logica del primordine 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)

6 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).

7 Interpretazione e validità La validità delle formule logiche in unalgebra 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 unalgebra A rispetto ad una valutazione V (almeno) delle variabili che vi compaiono in A

8 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

9 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.

10 Validità 1 Sia V: X A una valutazione ed una formula in L (X) vale (o è valida) in A [A soddisfa ] rispetto a V, indicato A | = V se e solo se: – è p(t 1,…,t n ) e (t 1 A,V,…,t n A,V ) p A – è e A | V – è e sia A | = V che A | = V – è e A | = V oppure A | = V – è e A | = V oppure A | V – è x:s. ed esiste V: X A t.c. V(y) = V(y) se yx, tale che A | = V – è x:s. e per ogni V: X A t.c. V(y) = V(y) se yx, A | = V

11 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.

12 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 – è p(t 1,…,t n ) e x occorre libera in t i con 1 i n – è e x occorre libera in – è e x occorre libera in o in – è y:s. ed y x e x occorre libera in

13 Validità 3 Una formula è valida in unalgebra A, indicato A|= –se e solo se A|=V per ogni valutazione delle variabili libere di in A, –cioè se e solo se A|=V { x:s | x X s X occorre libera in z }. (chiusura universale di )

14 Esempio (solita segnatura list ed algebra L) –L | = isEmpty(pop(push(0,l))) ?? –l occore libera nella formula (ed è lunica) –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 ?.

15 Uguaglianza Vogliamo aggiungere il simbolo di uguaglianza alla nostra logica. Per poter esprimere formule di qualsiasi tipo con uguaglianze, basta aggiungere luguaglianza come formula atomica e darne linterpretazione 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 t A,V = t A,V (eventualmente indefiniti entrambi) 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

17 FINE Lezione 2 Martedì 29 Ottobre 11-13


Scaricare ppt "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."

Presentazioni simili


Annunci Google